Cheb's Game Engine

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Cheb's Game Engine

Сообщение tema » 20.12.2016 12:47:30

Код: Выделить всё
$ wine debug-chentrah-x86_64.exe
fixme:service:scmdatabase_autostart_services Auto-start service L"MountMgr" failed to start: 2

Creating temporary main INI file based on the string embedded in the executable...
Creating temporary fake user INI file to avoid crashing on writes to config...
Detecting operating system...
  Trying to detect Wine...
    ..system directory is C:\windows\system32
    ..trying to open C:\windows\system32\kernel32.dll for read...
    ..scanning for signature string "Wine placeholder DLL"...
    ..FOUND at offset 65!
    ..detected = True
    Detecting Wine version. Loading NTDLL.DLL ...
    ..whoops.

ERangeError: Range check error
  cl_winedetect.pas:123 (RUNNINGINWINE)  in debug-chentrah-x86_64.exe


Call stack:
  cl_winedetect.pas:141 (RUNNINGINWINE)  in debug-chentrah-x86_64.exe
  cge.pp:1434 (DETECTOSTYPE)  in debug-chentrah-x86_64.exe
  cl_main.inc:86 (RUN)  in debug-chentrah-x86_64.exe
  chentrah.lpr:107 (main)  in debug-chentrah-x86_64.exe: %1
    Detecting Linux version. Trying to access /etc/issue assuming Z:\ points to / ...
    .. z:\etc\issue not found.
  Local app data directory is C:\users\tema\Application Data\
Opening the real main INI file C:\temp\chentrah\chentrah.ini ...
  Reading from config [debugging].stop_on_opengl_errors ...
    .. = "1", found in the main INI file C:\temp\chentrah\chentrah.ini
    .. = 1err:ntdll:RtlpWaitForCriticalSection section 0x38978 "?" wait timed out in thread 001d, blocked by 0000, retrying (60 sec)
tema
постоялец
 
Сообщения: 302
Зарегистрирован: 24.03.2011 20:19:27

Re: Cheb's Game Engine

Сообщение Cheb » 21.12.2016 01:26:00

Чёрт, не заметил вопрос.
А куда прога пишет лог? У меня не создалось никакого файла в папке запуска :(

Под себя, т.е. в той же папке должен создасться LOG.txt
Вообще, ситуация странная: файл журнала гарантрованно создаётся ДО создания окошка "Чентра Loading..."
Что-то серьёзно не так.
Что конкретно?.. Результат запуска debug-версии - в студию!

Добавлено спустя 6 минут 28 секунд:
А, стойте, *сначала* создаётся сплэш-окошко, потом читаются файлы настроек, а потом только создаётся файл журнала и в него сбрасываются накопившиеся строки.
Как пример:
Код: Выделить всё
Creating temporary main INI file based on the string embedded in the executable...

Creating temporary fake user INI file to avoid crashing on writes to config...

Dynamically loading Win32 API functions to ensure compatibility with vanilla Windows 98 SE...

  loading shell32.dll...

    SHGetFolderPathA() at 75A97334h in C:windowssyswow64shell32.dll

  loading kernel32.dll...

    TerminateProcess() at 7748D812h in C:windowssyswow64kernel32.dll

  loading user32.dll...

    MonitorFromRect() at 7733E7C0h in C:windowssyswow64USER32.dll

    GetMonitorInfoA() at 77324423h in C:windowssyswow64USER32.dll

    CreateWindowExW() at 77318A39h in C:windowssyswow64USER32.dll

    SetWindowTextW() at 773220FCh in C:windowssyswow64USER32.dll

Detecting operating system...

  Trying to detect Wine...

    ..system directory is C:windowssystem32

    ..trying to open C:windowssystem32kernel32.dll for read...

    ..scanning for signature string "Wine placeholder DLL"...

    ..detected = False

  It's Windows NT 6.1.

  Testing Windows NT version...

    loading kernel32.dll...

      VerifyVersionInfoA() at 7748F813h in C:windowssyswow64kernel32.dll

      VerSetConditionMask() at 77D66042h in C:windowsSysWOW64ntdll.dll

    5.1 or greater: True

    6.0 or greater: True

    6.1 or greater: True

    6.2 or greater: False

    6.3 or greater: False

    10.0 or greater: False

    Result: ostWin7

  Local app data directory is C:UsersAsusAppDataRoaming

[color=#FF4000]Creating splash window... - этого в выложенной версии пока нет[/color]

Opening the real main INI file D:chentrahchentrah.ini ...

  Reading from config [debugging].stop_on_opengl_errors ...

    .. = "1", found in the main INI file D:chentrahchentrah.ini

    .. = 1

  Reading from config [debugging].disable_module_multithreading ...

    .. = "0", found in the main INI file D:chentrahchentrah.ini

    .. = 0

Determining the home path...

  Reading from config [ostwin7].save-path ...

    .. = "{$CSIDL_APPDATA}chentrah", found in the main INI file D:chentrahchentrah.ini

    .. = "C:UsersAsusAppDataRoamingchentrah"

  Reading from config [main].portable ...

    .. = "1", found in the main INI file D:chentrahchentrah.ini

    .. = 1

  Reading from config [ostwin7].try-program-dir-first ...

    .. = "0", found in the main INI file D:chentrahchentrah.ini

    .. = 0

  ..trying the install path...

  Validating that path is writeable: D:chentrah

    Path split to 2 directories.

    Creating temporary file D:chentrahdelete-me-im-a-temporary-file-

    Result = True

  Checking if file is writeable: D:chentrahconfconf.ini

    Result = True

Attaching or creating the user INI file D:chentrahconfconf.ini ...

  Validating that path is writeable: D:chentrahconf

    Path split to 3 directories.

    Creating temporary file D:chentrahconfdelete-me-im-a-temporary-file-

    Result = True

  Reading from config [modules].basepath ...

    .. not found.

    .. = ""

  Reading from config [language].list ...

    .. = "ru_RU,en_US", found in the main INI file D:chentrahchentrah.ini

  Reading from config [language].chosen ...

    .. = "RU_RU", found in the user INI file D:chentrahconfconf.ini


Loading translations for language id="ru_RU,en_US"...

  ..lang. file "D:chentrahmoduleschentrahtranslationschepersy.chla"..

  ..lang. file "D:chentrahmoduleschentrahtranslationsexceptions.chla"..

  ..lang. file "D:chentrahmoduleschentrahtranslationsopenal.chla"..

  ..lang. file "D:chentrahmoduleschentrahtranslationsmessages.chla"..

  ..lang. file "D:chentrahmoduleschentrahtranslationsquestions.chla"..Ok

Выполнена запись кешированных 74 строк журнала в файл при первой возможности.



First Stage Init took 00.079 seconds.


Добавлено спустя 10 часов 37 минут 12 секунд:
[тормоз]Чёрт, опять не заметил твой пост, надо чаще обновлять страницу :( [/тормоз]
.. = 1err:ntdll:RtlpWaitForCriticalSection section 0x38978 "?" wait timed out in thread 001d, blocked by 0000, retrying (60 sec)

Вот же ж... Критическую секцию заклинило почему-то. Вечно с ними проблемы!
Я уверен, что разберусь, но уверен, что не скоро.

P.S. Исправил одну глупость, перезалил. Попробуй снова, может помогло?
Кто-нибудь знает, если выполнить Exit() изнутри блока try...finally, то секция finally срабатывает или нет? Если да, то я - дятел, и выходил из критической секции два раза. Винда жрала и не давилась, а вот вайн... :oops:

Добавлено спустя 2 часа 42 секунды:
Окей, дятел я, дятел. :oops:
Код: Выделить всё
{$mode objfpc}
{$apptype console}

program finally_eh;


var i: integer;
label b;

procedure a;
begin
  try
    WriteLn('exit...');
    Exit();
  finally
    WriteLn('finally');
  end;
end;

begin

  a;

  for i:= 1 to 1 do begin
    try
      WriteLn('break...');
      break;
    finally
      WriteLn('finally');
    end;
  end;

//allright, this one no go:
//finally.lpr(35,5) Error: Jump in or outside of an exception block
{
  try
    WriteLn('goto...');
    goto b;
  finally
    WriteLn('finally');
  end;
b:
}

{$ifdef windows}
  WriteLn('Press Enter to close');
  ReadLn;
{$endif}

end.


Код: Выделить всё
exit...
finally
break...
finally
Press Enter to close
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение tema » 23.12.2016 00:14:11

Работает!
Кнопки тоже работают и захват мыши работает :)
tema
постоялец
 
Сообщения: 302
Зарегистрирован: 24.03.2011 20:19:27

Re: Cheb's Game Engine

Сообщение Cheb » 15.01.2017 00:31:27

По ходу разгрёб отображение текста. Теперь класс TTextRect умеет сам на лету переносить строки, не нужно вручную их разбивать для матки или костылём для модуля.
Иногда даже разбивает текст на кнопках на две строки, если их сильно плющить.
Всё это войдёт в следующее обновление.

Насчёт мультитекстурирования - воз и ныне там :(
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 16.01.2017 20:06:23

Осознал, что забыл поддержку 4-й и 5-й кнопок мыши. Добавил.
Попутно оказалось, что больше 5 кнопок ни выньапи, ни иксы не умеют.

Осознал, что, добавив поддержку захвата мыши в winapi фреймворк, забыл это для x11 фреймворка. Иными словами, опять сломал поддержку линукса.
Печалька. :(
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 23.01.2017 19:19:35

Голубь таки номиновался на Дарвина. Он шёл к этому 12 лет, упорно и творчески - и, в конце концов, добился успеха. Как-то пусто теперь. :cry:

По проекту сейчас - на работе !внезапный! аврал, где-то до середины февраля минимум.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Лекс Айрин » 23.01.2017 20:14:11

Cheb писал(а):Как-то пусто теперь. :cry:


У меня такое было когда я свое первое произведение написал... это быстро пройдет.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3239
Зарегистрирован: 19.02.2013 16:54:51

Re: Cheb's Game Engine

Сообщение runewalsh » 26.01.2017 03:44:20

Соболезную :( (всегда интересовало, куда он нужду справляет, что, реально к лотку там приучить какому?)

Не в тему, но я (и не только, http://stackoverflow.com/a/27642538) сари какую штуку придумал, есть смысл встроить множественное число в функцию форматирования, т. к. в ней это очень часто пригождается, синтаксис может быть вроде такого:
Код: Выделить всё
Format('Принеси мне {0} душ{0.pl:у/и/} дракон{0.pl:а/а/ов}, плизик.', [souls])
(через слэши один/два-четыре/много), souls = 5 ⇒
Код: Выделить всё
Принеси мне 5 душ драконов, плизик.
Обычно для этого отдельную функцию выделяют, но если подумать, у Format и «FormatPlural» обширный общий юзкейс (представление человеку), так что есть смысл объединить, чтобы одной строкой обойтись. Правило, естественно, будет зависеть от языка, но строка и так на определённом языке.
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 308
Зарегистрирован: 27.04.2010 00:15:25

Re: Cheb's Game Engine

Сообщение скалогрыз » 26.01.2017 04:26:47

runewalsh писал(а):Соболезную :(

D: так это настоящий голубь был? :(

runewalsh писал(а):синтаксис может быть вроде такого

не слишком ли тупо те же самые правила раз за разом переписывать?
"Принеси мне {0} душ{0.pl:у/и/} дракон{0.pl:а/а/ов}, плизик."
"Принеси мне {0} душ{0.pl:у/и/} орк{0.pl:а/а/ов}, плизик."
может просто указывать [язык/]род/падеж/окончание слова?

"Принеси мне {0} душ{0.pl:ж/вн} дракон{0.pl:м/вн}, плизик."
"Принеси мне {0} душ{0.pl:ж/вн} дракон{0.pl:м/вн}, плизик."

а FormatPlural() сам подберёт по цифре? ведь набор окончаний ограничен

...даже так:
"{lang:ru}Принеси мне {0} душ{0.pl:acc/f} дракон{0.pl:acc/m}, уж будь добр."

Сразу спрошу а почему FormatPlural() и ".pl"? такое чувство, что ты сразу хотел FormatLang() сделать и акромя .pl ещё всяких склонений поддержать, не? ;)
скалогрыз
долгожитель
 
Сообщения: 1626
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение runewalsh » 26.01.2017 06:59:00

Да, http://chebmaster.ru/dogs/past.html.

Не пробовал додумывать, вряд ли это удобнее, коль скоро как минимум падеж придётся подсказать всё равно (а автору строки формата всё это в голове держать...).

Ну нет, множественное число вполне общий случай: «найден{о/ы/о} {N} совпадени{е/я/й}» etc., те же gettext и ему подобные предусматривают. Чтобы склонения юзать или ещё что-то навороченное, ты должен не знать, о чём говоришь, это явно не для универсального и относительно простого Format.
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 308
Зарегистрирован: 27.04.2010 00:15:25

Re: Cheb's Game Engine

Сообщение Cheb » 27.01.2017 02:08:18

встроить множественное число в функцию форматирования,

Уже запланировано на будущее.
У меня сейчас ф-я PervertedFormat принимает места для аргументов как %0..%9 - поскольку языки разные, и разница в синтаксисе иногда меняет *порядок* их включения. Простая %s не катит.

#ru_RU#USING_I
Сохранение будет производиться не в стандартную для %2 папку, %0 а в папку программы, %1

#en_US#USING_I
The program folder %1 will be used for saving instead of the standard folder for %2, %0

Будет что-то типа
Принеси мне %0 медьвежь%(0/ю/и/их) задни%(0/цу/ци/ц) и %1 зелён%(1/ого/ых/ых) крокодил%(1/а/ов/ов)
Bring me %0 bear ass%(0//es) and %1 valen%(1/ok/ki)
(есть такая хитрая фича, что в английском иностранные слова сохраняют единственное/множественное число своего языка - особенно бросается в глаза на примере латинских слов всяких)


Чтобы склонения юзать или ещё что-то навороченное, ты должен не знать, о чём говоришь,

Воистину.


D: так это настоящий голубь был?

Да.
Причём, ключевое слово - "был" :(...
https://www.youtube.com/watch?v=hQvkW2efjEY
Я когда крышку гроба закрыл - она робко так лапкой поскребла, мол, что там сидишь, выходи - и потом дня два ходила грустная, всё нюхала - вдруг, он в шкафу где заперт оказался? Друг детства. Это остальным двум кошкам по барабану.

[...], реально к лотку там приучить какому?

Там, где сидел.
Нереально.
Американцы своим специальные подгузники одевают.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение скалогрыз » 27.01.2017 05:51:55

Cheb писал(а):Будет что-то типа
Принеси мне %0 медьвежь%(0/ю/и/их) задни%(0/цу/ци/ц) и %1 зелён%(1/ого/ых/ых) крокодил%(1/а/ов/ов)
Bring me %0 bear ass%(0//es) and %1 valen%(1/ok/ki)
(есть такая хитрая фича, что в английском иностранные слова сохраняют единственное/множественное число своего языка - особенно бросается в глаза на примере латинских слов всяких)

это вообще как сочетать-то? особенно "valenki"?
как минимум не хватает указать контекст яызка.
это в русском деление идёт, как
x1 (валенок)
x2-x4 (валенка)
x5-x0,11-19 (валенков)

а в английском такого нет. Если больше, чем 1 то добавь "s". конечно, если есть единственное число (там где нет, это "news","scissors")
т.е. формат {1/2-4/остальное} не особо смысл имеет для английского... и других.
скалогрыз
долгожитель
 
Сообщения: 1626
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение Cheb » 27.01.2017 08:57:31

а в английском такого нет. Если больше, чем 1 то добавь "s".

В том-то и дело, что нет. В английском, если грамотно, то единственное число - valenok, множественное - valenki.
"Просто добавь s" - это никакое не правило. Это закономерность, из которой бывают исключения (это если не считать es).
Ещё пример, из нашей области: index - indices.
См. http://grammar.about.com/od/fh/g/Foreign-Plural.htm
Хотя да, в подавляющем большинстве случаев будет 'ass%(0//es)'
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 06.02.2017 15:07:59

Потыкал палкой исходники ZenGL. Понял, что захват мыши под X11 - это фантастически просто. А может, и поддержку игрового контроллера приделать смогу.

Когда-нибудь потом, когда на работе аврал разгребу :x
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 512
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение hinst » 08.02.2017 13:59:57

Почему на сайте нет ссылки на репозиторий? это не Open-Source?
Работают ли сейчас части движка отвечающие за 2D ? могут ли они быть использованы?
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru