Cheb's Game Engine

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

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

Re: Cheb's Game Engine

Сообщение Alex2013 » 13.06.2022 12:13:57

Shleps писал(а):У меня есть электроника МК-85.

А понял это про "каркулятор"... Сори за невнимательность. :oops:
Самый интересный советский калькулятор был Электроника МК-90 ( почти планшет !)-х Но у меня в домашнем хозяйстве были только мк 61 и мк 52 ( и то тогда когда они (именно как ПМК) уже почти никому не нужны были ( в конце 90-х начале 0-х ) возможно и сейчас по шкафам где-то валяются ).
Зы
Шикарный фейк ! (вроде уже когда-то на форуме постил но "в тему" :idea: )
"Иволга 3 - Новый Умный Монофон СССР" - аппарат для попаданца ! :lol:
https://polycount.com/discussion/224899 ... -monophone
(Интересно насколько был реален такой девайс пусть не 80-м но в 85-90-том ? :roll: )
Зы Зы
(см мой коммент на дзене )
https://zen.yandex.ru/media/muzey_budus ... 3803d56b6e
Кстати все почему-то решили что там "мини кинескоп" хотя это отнюдь не очевидно (выпуклый дизайн явно из за "псевдо сенсора" а экран вполне может быть плоским )
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 13.06.2022 18:46:15

Изображение

рефакторинг - это боль :(

Добавлено спустя 13 часов 50 минут 43 секунды:
Позор :oops: Какой позор :cry: :oops: :oops:

Код: Выделить всё
{$ifdef can_use_stl}
  // cannot specialize TLess because need to use specialized comparison
  //  function (that ignores encoding and compares strings like byte arrays)
  class function TRawLess.c(a, b: RawByteString): boolean; inline;
  var i: integer;
  begin
    if pointer(a) = pointer(b) then Exit(false);
    if not Assigned(pointer(a)) and Assigned(pointer(b)) then Exit(true);
    for i:= 0 to math.min(High(a), High(b)) do begin
      if (pbyte(a) + i)^ > (pbyte(b) + i)^ then Exit(false);
      if (pbyte(a) + i)^ < (pbyte(b) + i)^ then Exit(true);
    end;
    // the beginning of the longer string equals the shorter string,
    // must decide by length:
    Result:= (High(a) < High(b));
  end;
{$endif}

Чебушка, дебилушка, у строк High чему равна? Она у них Length равна. А ты тут указатели с чего индексируешь? С нуля, рукожоп ты знатный. Ииии-хряп.
Причём - редкий, трудноотлавливаемый хряп, т.к. надо выскочить за предел блока памяти, что происходит при весьма небольшом наборе длин.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 15.06.2022 11:28:30

В копилочку:
Bart Wronski, Dithering in games – mini series
Bart Wronski, “Optimizing” blue noise dithering – backpropagation through Fourier transform and sorting
Для меня дизеринг важен, т.к. это - единственный доступный мне вид порядко-независимой прозрачности.
Также, для переключения лодов без скачков (как в Fallout 4 - но там применяется пошлый, до дыр всеми заюзаный паттерн Байера)
Для прозрачности понадобится самому как-то родить трёхмерный паттерн (ориентировочно, 32х32х16) чтобы заполировать ещё и темпоральной компонентой.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 16.06.2022 17:46:22

З.Ы. Если видимая игроком часть мира заметно меньше всего мира - механизм лагокомпенсации имеет смысл припахать в сингле, чтобы компенсировать задержку в 1/60 секунды на рендер кадра.
Опупенно же! :lol:

(с практической точки зрения - просчёт лагокомпенсированного вперёд частичного слоя, потом сочинение командного буфера гапи - и только *после* этого - просчёт настоящего слоя физики. Который можно откусывать по 1мс и даже задержать на кадр-другой, если там !внезапно! резкий пик нагрузки)
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 17.06.2022 11:20:33

Лагокомпенсаця это то же самое что и "виртуальное время"? :roll:
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Cheb » 18.06.2022 00:11:08

Alex2013 писал(а):Лагокомпенсаця это то же самое что и "виртуальное время"?

Не знаю, что такое "виртуальное время".
Лагокомпенсация - это расслоение реальности на альтернативные потоки времени, танцующие вокруг друг друга с разной скоростью относительно времени реального и имеющие, тем самым, разную полноту дохождения инпутов от игроков.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Alex2013 » 18.06.2022 00:56:45

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

Re: Cheb's Game Engine

Сообщение Cheb » 18.06.2022 10:14:12

Примерно так, только реализация немного дубовее, при любом запросе на возможное изменение сущности она сначала клонируется в текущий слой, а изменение - кто его знает будет ли действительно. Но уже склонирована. А когда слой-родитель собирается кого-то менять - он его клонирует всем слоям - потомкам.
Я лет пять, когда СУБД уже была готова, потратил, крутя в голове задачку "как же ёжики трахаются" - и идеи умных ссылок перебрал, и TInterfacedObject, и счётчики ссылок, и какие только ещё ереси.
Пока не придумал ускоренные поля. Поверх которых это расслоение не то, чтобы удобно (трудно будет отлаживать и отлавливать ляпы, где упустил вызов ThisLayer() - но даже то решаемо, если усложнить диспетчер памяти и припахать механизм защиты памяти виндовс, чтобы при записи куда не надо бомбило).
Теперь осталось взять, и сделать.
Но сейчас я занят тем, что выдираю под корень здоровый кусок фундамента движка и пишу на его место нечто вдесятеро проще. Во множестве исходников вставлено {$fatal cleanse with exterminatus}

Проснулся - и обнаружил, что у меня есть мысль и я мыслю её:
MSAA, FXAA, MLAA, TAA, "умные фильтры" всякие - это всё позорное нищебродство, когда шейдеры перетяжелили до предела, рендертаргетов наслоили, да потяжелее - и ой, видяха больше не тянет.
Ересь это всё. SSAA - вот единственный ТруЪ метод сглаживания. Он вам не только контуры загладит, но равно и текстуры внутри полигонов, и шум от порядко-независимой прозрачности.
А всего то надо не перетяжелять. Рендертаргет - один, 8-8-8 (или вообще 5-6-5 с дизерингом). Буферы глубины и трафарета дискардятся, никогда не используются с другим цветовым атачментом (а Мали по другому и не умеет, лол) чтобы драйвер, если мозги есть, мог их дискардить по тайлам.
И тогда - внезапно - даже офисная какашка десятилетней свежести тянет SSAA 16x. А SSAA 16x, я вам скажу, это сила.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение sts » 20.06.2022 10:28:39

Cheb писал(а):даже офисная какашка десятилетней свежести тянет SSAA 16x

разве? SSAA по идее самое ресурсоемкое сглаживание, собственно другие и появились из-за этого
sts
постоялец
 
Сообщения: 406
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Cheb's Game Engine

Сообщение Cheb » 20.06.2022 12:56:35

sts писал(а):SSAA по идее самое ресурсоемкое сглаживание,

Да - оно, заодно, единственное истинное сглаживание.
Но современные видеокарты (под "современные" я имею Intel HD 3000 2012-го года) настолько перекачанные, что при легковесном рендере в текстуру 8-8-8 с последующим даунсемплингом до FullHD, можно размер этой текстуры до небес задирать.
А если видеокарта позволяет рендер в 5-6-5 (ещё не пробовал) - это вообще тушите свет.

Добавлено спустя 18 минут 48 секунд:
Плюс, планируемая стратегия для сферической проекции - рендер в два вьюпорта, две текстуры. Размер - одинаковый, но одна растянута на весь экран, а вторая сжата, замещая центральную область. Хак, на самом деле, задуман ещё в 2001-м, ЕМНИП. При линейной проекции с большими углами, плотность информации получается очень неравномерная: в центре плохо, по краям хорошо. И если широкоугольный рендер натянуть на экран с коррекцией до сферической проекции, то по краям получится суперсэмплинг, а в центре - мыло. Откуда и родилась идея рендерить дважды: в широкоугольную текстуру (100..110 градусов) и в узконаправленную (60..75). Причём, обе - примерно 1280х720. При выводе на экран широкоугольная вытягивает разрешение по краям за счёт того, что там плотность информации выше, а узконаправленная держит центр чётким, даже с небольшим суперсэмплингом.

По вершинам стоимость - 2х, по пикселам - 0.9х (относительно FullHD). Но надо понимать, что это - экологичный режим. На игровой видяхе оно упрётся в способность драйвера работать с безумным размером рендербуфера (что я уже наблюдал ещё на древней gtx 460 0.5 Гб) - драйвер заявляет рендербуферы до 8к, но крашится, если создаёшь больше 6к. Так штааа... Не удивлюсь, если 1660-я потянет рендер в две текстуры по 12к. В центральной области это даст SSAA 100х

.. а вы говорите, не гонялся б ты поп за дешевизной... 8)

Добавлено спустя 5 минут 56 секунд:
..я ещё могу добавить центральной текстуре темпоральный життер, каждый кадр меняя угол наклона, под которым фрустум повёрнут относительно текстуры (углы всё одно обрезать). +1 измерение к суперсэмплингу.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 23.06.2022 01:53:52

На работе сейчас авралы, дедлайны и прочая мозгосушка, между делом нашёл свои разглагольствования от мая 2000-го:

З.Ы. Да не, ну, на. Там тоны формул и диаграмм и простыни текста, только печать в PDF поможет.

http://chentrah.chebmaster.com/archive/ ... 5_2000.pdf
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Shleps » 23.06.2022 11:59:04

Cheb писал(а):между делом нашёл свои разглагольствования от мая 2000-го:


Тоже иногда поглядываю на свои записки времён аспирантуры. А тут прям как будто у Лукьяненко в Лабиринте отражений - как в игровом мире вводили ограничения, чтобы люди в реале потом не вели себя неадекватно.

У меня кстати есть пособие собственной разработки по гейм-дизайну сверхреалистичного командного шутера, которое уже 10 лет в работе. ( В смысле применяется на практике). Там тоже про баланс между реалистичностью и играбельностью много на основании трёх десятков игр.
Аватара пользователя
Shleps
постоялец
 
Сообщения: 194
Зарегистрирован: 14.06.2006 20:25:14

Re: Cheb's Game Engine

Сообщение Alex2013 » 23.06.2022 12:24:36

Мда старая маниловщина "вот а круто было-бы сделать Диптаун" все-же подделка вроде "VRChat" и "Second Life" чего-то определено не хватает ... ( и по идее как раз сейчас уже можно и без дип-программы обойтись )
Зы
Кстати есть такая фишка как ОpenSimulator интересно можно ли ее из програм на лазарусе использовать.
http://opensimulator.org/wiki/Main_Page/ru
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Cheb's Game Engine

Сообщение Shleps » 23.06.2022 12:50:28

Alex2013 писал(а):Мда старая маниловщина "вот а круто было-бы сделать Диптаун" все-же подделка

А вот был проект deeptown.org они реально пилили свое собственное все, включая сервер объектов, транзакций, денег, кодеки, поверх этого 3д-движок и что-то ещё.

У меня то мануал не по диптауну, а конкретно тактический симулятор с разными долями вкрапления рпг. Но реализм зашкаливает )
В тяжёлых случаях народ говорил "было конечно очень круто, но больше так никогда не делайте"
Аватара пользователя
Shleps
постоялец
 
Сообщения: 194
Зарегистрирован: 14.06.2006 20:25:14

Re: Cheb's Game Engine

Сообщение Alex2013 » 23.06.2022 13:18:36

deeptown.org отчасти умер именно потому , что там было "все своё" но не был нужного размаха. Даже если была там была тупо псевдо случайна генерация городского ландшафта это уже было бы заметно интересные . + не было оболочки для расширения проекта на уровне пользователей . Да что говорить даже древний Active Worlds и то куда более удачный проект .
https://www.activeworlds.com/
http://activeworlds.ru/
https://www.igromania.ru/article/4236/D ... orlds.html
https://translated.turbopages.org/proxy ... ive_Worlds

Добавлено спустя 28 минут 7 секунд:
Shleps писал(а):У меня то мануал не по диптауну, а конкретно тактический симулятор с разными долями вкрапления рпг. Но реализм зашкаливает )

Ссылку на ман можно? Вообще сечас ИМХО был бы интересен "виртуальный туризм" по известным мирам с возможностью кое где не навязчиво перейти в "игровой режим" или 3д/Вр-чат . Современные игровые и социальные проекты во многом рассчитаны на практически профессиональных игроманов или не менее профессиональных блогеров то есть все они имеют довольно высокий "порог вхождения " и требуют немалых затрат времени. Например чтобы окунуться во всемирно известную вселенную EVE Online нужно брать примерно месячный отпуск и еще дополнительно потратить кучу времени на подготовку - это пардон вообще игра или виртуальная каторга ? Про социальные сети отдельный разговор но что-бы почувствовать реальный и интерес к их наиболее технологичным версиям тоже нужна немалая предварительная РАБОТА и просто вагон времени .

Вывод новые проекты должны заметно лучше поддерживать "режим наблюдателя" и предоставлять возможность просто наладится красотами в спокойном режиме "одинокого странника " активный режим включить только по желанию пользователя.
(Кстати я думаю что возможно скоро появится интересная и хорошо востребованная профессия "гид по виртуальным мирам" )
Последний раз редактировалось Alex2013 23.06.2022 14:07:08, всего редактировалось 2 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Пред.След.

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

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

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

Рейтинг@Mail.ru