Cheb's Game Engine

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

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

Re: Cheb's Game Engine

Сообщение Alex2013 » 07.11.2019 21:59:26

Кстати, память на моём любимом ноуте, самом быстром из моих компов, недалеко ушла: PC3-10600.

У мну самая быстрая DDR3‑1600 и я в принципе ей доволен ... с учетом прочего железа это даже немного с запасом получается.
Зы
А что касается прочего так я убедился при работе с реальными заказчиками не в коем случае не стоит строить проект так что до самого финала показать нечего.(Да даже проекты "для души" куда интереснее вести если каждый мелкий этап сопровождается чем-то что зримо работает *... иногда это требует написания специальной дополнительной "платформы-стенда" но в принципе и он себя оправдывает :idea: )
ЗЫ
*(вчера например(не прими за "рекламу" ) прикрутил в окно "цифровые эффекты" загрузку 3д-модели и ее предварительный "решетчатый показ" на "чистом софте" и пока это что-то вроде рутинного повторения пройденного (решетчатый "софт-рендер" в программе уже был... но в ещё более далеком от возможности практического использования виде). Да, эта "итерация иерихона" 100% ДАЛЕКО не последняя, однако, ее можно УВИДЕТЬ .)
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 08.11.2019 13:24:04

Да даже проекты "для души" куда интереснее вести если каждый мелкий этап сопровождается чем-то что зримо работает

Вот из-за этого у меня затык и вышел: дошёл до места, где надо дохрена пахать в стол, без видимых результатов. И встрял.

[цепочка ползущих муравьёв]

[берёт лупу]
Гы :lol:
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 08.11.2019 14:17:57

Cheb писал(а):[цепочка ползущих муравьёв]

Это я так "скромно хвастаюсь"... :wink: (Сегодня надеюсь и свой "типа ОпёнГл" туда же докрутить )

Вот из-за этого у меня затык и вышел: дошёл до места, где надо дохрена пахать в стол, без видимых результатов. И встрял.

Угу, знакомая ситуация... За примером ходить не нужно: по идее для получения нормальной "базы для экспериментов" мне нужно добавить "служебную логику"( нормальные внутренние переменные(а не "как сейчас"), ветвления, циклы и т.д.) А в дальнейшем и полноценные "быстрые скрипты" (бо РиалТайм точно ждать не будет... и "виртуальное время" как в 3д движках не спасет ) плюс "распараллелить" все что можно и добавить возможность управления потоками в набор "фильтров"
Но даже начинать такой глобальный "рефакторинг" изрядный лом ... так что "пилю потихоньку" что еще не доделано с предыдущей "большой стирки" и жду очередного "приступа вдохновения"... :roll:
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 10.11.2019 22:17:16

Пытался разобраться в структуре формата данных, представляющем из себя сраный недокументированный чёрный ящик с "говорящими" именами полей типа B_RecBTinds
Ну есте-е-ественно, эта абракадабра имела для меня кристально ясный смысл. Году этак 2008-м. :x
Искал-искал, где заполняются структуры данных нулевого (текущего) заголовка "для чтения". Нет такого места, хоть убейся.
Оказалось - при инициализации структуры данных "для записи" сливаются во временный TMemoryStream а потом весь заголовок читается оттуда и парсится, как обычный заголовок в любом файле, с параллельными преобразованиями и заполнением вторичных таблиц. При этом, названия структур "для записи" даже близко не напоминают названия того, что читается обратно.
Хожу теперь вокруг этой... кучи на цыпочках, стараясь не дышать в её сторону. Его не трогаешь - оно и не воняет. :x
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 15.11.2019 15:21:13

Проверил пылившийся уже года четыре труп.
Обнаружил, что труп - на самом деле не труп, но после каждого выключения жалуется на сбившиеся настройки BIOS.
С матюгами осознал, что он никогда и не умирал, а брикнулся из-за запоротых настроек биос от севшей батарейки - что вылечилось возвратом к заводским настройкам когда та сдохла окончательно.
Не подключая к сети:
- установил Windows XP SP1 с то-ли пиратского, то-ли корпоративного-с-работы диска (пойди, вспомни теперь)
- установил драйвера для радеона с OEM диска.
Приветствуем тестовую машину №1 для испытаний Чентры:
E5200 2.5GHz (2 ядра, сокет 775), 2 Gb DDR2-800, Radeon HD 2600 XT (0.25Gb) PCIe, Asus P5QL, Seagate 300 Gb, пишущий блюрей привод, 1.44'' дисковод, WinXP SP1 Pro (палёная) + наклейка от WinXP SP3 Home (лицензионный диск от которой я куда-то замылил).
..а также тестовую машину №2 для испытаний Чентры:
E2140 1.66GHz (2 ядра, сокет 775) , 1 Gb DDR2 (1 плашка), Gf 8400 GS (0.5Gb) PCIe 16x, Asus P5B SE, Seagate 140 Gb, DVD привод, WinXP Pro (лицуха).
Бывшая третья тестовая машина с одноядерным семпроном, AGP шиной и дуал-бутом в WinXP / Win 98 SE давно запихана куда-то на антресоли, поскольку для Чентры более не пригодна: для неё приходилось собирать отдельные бинарники с выключенным SSE2, поскольку Фри Паскаль не умеет генерировать рабочий код для SSE1: получившиеся бинарники всё равно крашатся без SSE2.

На Чентру времени сейчас почти нет, в основном вышаманиваю смысл криптических названий полей в структуре данных из фактов их применения и заменяю поиском по файлам на говорящие типа LocalNIndToActualTInd.
NInd - индекс в таблице имён, TInd - индекс в таблице типов, RInd - индекс в таблице классов и записей (свалены в общую кучу, поскольку и те и другие имеют поля).
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 16.11.2019 15:34:56

Пробую пересесть с Лазаруса на MseIDE... Вроде, во всём лучше, только неудобно отступы править через Ctrl+I / Ctrl+U, я уже привык к Tab / Shift + Tab.

Добавлено спустя 2 часа 40 минут 42 секунды:
Осознал, как я крут. Первый собственный компьютер - в 1995-м, а в 1997-м уже бегала моя игрушка с многопоточностью под MS-DOS. Два года всего. Причём, на год, примерно, меня задержала лютая нехватка информации: интернета тогда ещё не было.
А до того я имел возможность лишь изредка, у мамы на работе на 286-м (который ещё в сейфе стоял, и так, в сейфе, на нём и работали, выдвигая полочку для клавиатуры) или в универе на лабораторных, используя Искры 1030.11 не по назначению. И там, и там - Турбо Паскаль 5.5.
Последний раз редактировалось Cheb 18.11.2019 08:40:23, всего редактировалось 1 раз.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Mirage » 17.11.2019 15:45:07

Cheb писал(а):Что ж они забросили-то?.. Сколько сил вложено! Мне до подобной завершённости семь вёрст лесом.


TERRA-Engine изначально коммерческий движок, т.е. автор пытался его продавать. И проекты коммерческие на нем пилил. Возможно поэтому, этот движок и сейчас, пожалуй, самый завершенный из всех. Хотя вообще движков на паскале полным-полно. Думаю и сейчас активных навскидку с десяток назвать можно.
Но, мотивация штука не вечная, требует подпитки. Успеха у игр видимо особого не было. А для движка рынка понятно нет. Каждый свое пилит.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Cheb's Game Engine

Сообщение Cheb » 18.11.2019 10:11:42

Коммерческий?! :shock:
Madness! :x

Хотя, вон, мой любимый порно-метроидвания-платформер в 8-битном стиле, ████████, откомпилирован явно на Дельфи - скорей всего, какой-то фреймворк использовался, их в своё время мелькало. DelphiX, Undelphix и ещё какая-то мутота.

З.Ы. Смешной баг: хотя движок идёт из папки с юникодным именем, в лог имена файлов пишутся, как запоротый утф-8, а дебажная версия при этом ещё и непрерывно пищит. Чу! То не дремучий WriteLn(#7) вылез ли? Винда, сволочь, старательно эмулирует писи-спикер. Чёртова обратная совместимость с телеграфными аппаратами конца 19-го века :x

З.З.Ы. Решил сменить шрифт консоли. Вместо самодельного аналога курьера - закончил, наконец, перерисовывать в моноширинный один из пиксельных шрифтов, которые наваял в начале нулевых. Жёстко умял его в VGA лимиты: все буквы укладываются в 7х14 пикселов. При базовой толщине линии 2 пиксела, Ж, Ф, Ы, Ю потребовали классических же VGA извращений. Многие строчные были гораздо компактнее, после растягивания их до 7 пикселов пришлось подгонять по стилю, тупое растягивание давало не лучший результат. Также пришлось сделать T шириной 6 пикселов, иначе неравновесная палочка смотрелась коряво. Ф таки пришлось сделать корявой, иначе не лезла, а я не хочу, чтобы мой шрифт выглядел точно так же, как классический VGA.

Кстаааати, все помнят, какие компактные, вытянутые в высоту шрифты были в эпоху мониторов, совместимых с телевизором? Ну, БК-0010 там с его 512х256 или вообще Искра 1030.11 с CGA адаптером с его разрешением 640х200?.. В смысле, сам шрифт - формально квадратный, 8х8 (буква упихана в 7х7 чтобы не слипались), но за счёт соотношения сторон пиксела 0.42:1 на экране эти символы - оченно стройные и высокие. Ну, потом VGA те же 80х25 отображал уже не в 640х200, а вполне себе квадратном 640х480 и шрифты соответственно, стали 8х16, с хорошим, годным межстрочным интервалом.

Добавлено спустя 4 часа 4 минуты 4 секунды:
З.Ы. Вру. VGA-шные шрифты имели буквы шириной 8 пикселов, поскольку текстовый режим имел на деле разрешение 720x480. Буквы шириной 7до которых я сплющил своё поделиЁ - это, скорее, EGA.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 19.11.2019 00:15:42

В драйвер KEYRUS были прошиты:
_08x08.fnt - внутренний фонт 8x8
_08x14.fnt - внутренний фонт 8x14
_08x16.fnt - внутренний фонт 8x16
08x08 был для текстовых режимов 80х50,
08x14 для EGA,
08x16 для VGA .
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 19.11.2019 19:33:15

Во. Я когда-то (не помню, когда) выдрал эти для примера (ЕМНИП, вывел WrielLn'ом в графическом режиме - и скриншотом то-ли из досбокса, то-ли когда у меня ещё Вынь98 была):
Изображение Изображение Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 19.11.2019 20:35:02

CGA 640х200?
Хм ! А действительно ! GRAPH3.TPU из Turbo Pascal 3.0
GraphColorMode 320 x 200 Цветной 4 цвета (+ что-то вроде палитры )
GraphMode 320 x 200 Черно-белый
HiRes 640 x 200 Черно-белый с "высоким разрешением"
Зы
Но это стандартные режимы, так народ изощрялся достаточно оригинально ... Например настраивая аппаратный сдвиг и масштабирование через управление разверткой монитора и делая (640 x 200)х4 (быстро переключая четыре страницы в видео памяти и смещая уменьшенную картинку при "обратном ходе луча" )
Зы Зы
За текстовый режим отвечал знакогенератор так что там за разрешение было не очень ясно ... Даже в EGA были доступны разные странные "текстовые разрешения" . (это досбокс но тем не менее режим с шрифтом 9х16(!) уже удивляет )
ИзображениеИзображение
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 20.11.2019 11:52:03

Во! так я и думал, 720х400.
В текстовом режиме символ - 9 пикселов шириной, 8 + 1 промежутка. Это позволяет уместить три ветрикальных линии толщиной 2 пиксела, как раз остаётся место для двух однопиксельных промежутков. Или букву Т симметричную, 3-2-3.
А графический режим VGA и, ЕМНИП, все режимы CGA и EGA, имеют 640 и вынуждены символ 8 пикселов толщиной, 7 + 1 промежутка. Вот тут-то и начинается веселье с русскими ж, ф, ы, ю, щ... Как раз в таком формате (символ утрамбован в 7х14) я и рисовал вот этот шрифт (затеял в 2017-м, закончил на днях):
Изображение
Надо ещё подправить, t на один пиксел просела и точка над i плохо заметная.

Перерисован из вот этого семейства пропорциональных пиксельных шрифтов, что я породил в 1999-м (когда коту нечем заняться...) и использовал в утраченной версии Чентры от 2002-го с резиновым гипертекстом, автоужимающим размер шрифта под заданный прямоугольник:
Изображение
Изображение Изображение
Изображение - для 10-пиксельного я полужирный не делал. т.к. он оказался не нужным, ничего не улучшал в плане масштабируемости. Там ведь ширина букв играет ключевую роль, а не межстрочный интервал.
Изображение Изображение
Изображение Изображение
Изображение Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 20.11.2019 17:46:08

Ну свой гипертекст в 90-91-м (да точно четвертый курс ) я уже с векторными шрифтами делал ... Удобнее с масштабированием и проще всякие греческие символы и формулы рисовать и моноширным его вполне можно сделать . (Помню главный предмет гордости было то что я в свою программу с графическим интерфейсом управление мышкой прикрутил ... сейчас вспоминать смешно. :wink: Но когда в наш тогда еще УИИВХ нагрянул какой-то бородатый академик из новосибирска наши преподы с кафедры ВМ (К моему немалому удивлению ...) не нашли ничего лучше чем хвастаться именно моей поделкой "под курсовик". )

ИзображениеИзображение

ИзображениеИзображение
Последний раз редактировалось Alex2013 21.11.2019 13:53:50, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 21.11.2019 03:06:14

Вот это - реально... Нет, РЕАЛЬНО круто! :D
И ещё раньше, кажется, чем эпл и майкрософт начали внедрять TrueType :shock:

..я свой тоже хотел сделать для бОльших размеров векторным. Но для этого надо сделать редактор, а редактор - это часть тулзета, а тулзет надо делать на том же движке... В общем, отложилось, да так и висит отложенное. Движок-то до сих пор для создания тулзетов не готов :(

Но ничего! Уже вот вернусь из Мексики... Пока голова вместо движка или работы занята, как проехать к сомбрерному развалу, сколько эти штуки стоят, и как я четыре сомбреры буду в багаж упихивать. Надо же всем друзьям по сомбрере привезть...
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 21.11.2019 05:52:56

На самом деле моя заслуга была только в написании своего редактора шрифтов а сам "CHR" стандарт на векторные шрифты был в BGI графике начиная с Turbo Pascal 4.0 .
Зы
А особый прикол был как раз в эмуляции стандартного тестового вывода в графическом EGA режиме ... ага на аппаратном уровне .... Как то так.
Код: Выделить всё
uses  Graph;
type s14=array[1..14] of byte;
F8x14=array[0..255] of s14;
Procedure Fnt8x14;External;
{$L f8x14.obj}
var
   Fnt:^F8x14;
Procedure   ewg(S:String;x,y,c:byte);
var i,j,k :INTEGER;
Procedure  out;
begin
mem[$a000:j+(((y-1)*14)+i-2)*(80)-1]:=fnt^[ORD(s[J-X+1])]  [I];
end;
begin
for j:=x to x+ord(s[0])-1 do
for i:=1 to 14 do begin
port[$3c4]:=2;port[$3c5]:=1;
IF C AND 1 <>0 THEN out;
port[$3c4]:=2;port[$3c5]:=2;
IF C AND 2 <>0 THEN out;
port[$3c4]:=2;port[$3c5]:=4;
IF C AND 4 <>0 THEN out;
port[$3c4]:=2;port[$3c5]:=8;
IF C AND 8 <>0 THEN out;
End
end;
begin
fnt:=@Fnt8x14;
  Driver := EGA;  Mode := EGAHI;
  InitGraph(Driver, Mode,'');
  if GraphResult <> grOk then BEGIN WRITE('Graph ERROR ' ); Halt(1);END;

EWG('TEST!',1,1,15);
ReadLn;
end.

Получалось что-то вроде этого (Смесь как бы сугубо текстового ТурбоВижена с графикой ) ...
ИзображениеИзображение

Изображение
Последний раз редактировалось Alex2013 10.02.2022 22:49:31, всего редактировалось 2 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Пред.След.

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

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

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

Рейтинг@Mail.ru