Навеяно Арканумом, а так же одной старой идеей, целью
Навеяно Арканумом, а так же одной старой (ещё студенческой) мыслью, идеей целью по моделированию физического мира, законов и процессов в нём.
Дано:
Динамический, открытый, морфируемый по собственным законам мир.
Для игрока (внешне) - возможность конструирования (крафта) всего чего угодно и как угодно, если это не противоречит, а вернее работает и функционирует так как нужно по законам физики (мироздания). Возможность самостоятельного изменения мира (энтропия во плоти).
Предположение:
Начинаем моделирование прототипа от 1D, далее до 3D, и ещё далее добавляя и иные измерения и законы, в т.ч. напр. гравитацию.
Тики (более правильно кванты времени) - есть кванты времени для мира (вселенной, матрицы) по которой рассчитываются ещё законы и взаимодействия.
Есть тики доступные и видимые "игроку" - его размер тика кратен квантам Вселенной, и вариативен от субъекта к субъекту.
Например, за 1 секунду ("взмаха тапка") человек и не успеет сделать и один вдох, для таракана или мухи - "целая жизнь перед глазами", а для бактерии и в самом деле целая жизнь ("игра").
Размер осознаваемого кванта зависит от процессов протекающих в "огранизме", его (организама) законах и "внутренней физики".
Чуть в строну, так если бы "организм", а вернее его мозг был размером с нашу галактику, а звёзды или их скопления его нейронами, а сигналы передавались классической физикой со скоростью света, то один миг для этого существа, измерялся бы сотнями тысяч - миллионами человеческих (земных) лет ("приблизительно").
Реализация:
Отдельно определяем расчётную составляющую и "графическую" (визуализационную) подсистемы.
Кванты (времени) снятия состояния системы - зависят от наблюдателя.
Все состояния системы - атомарны (в нашей Вселенной, всё чуть сложнее есть скорость передачи взаимодействия систем (скорость света), но об этом потом, а и кстати, поиграться с этим тоже можно будет))). Например, с целью посмотреть, как изменился бы наш мир и на что бы бы похож, будь скорость света (взаимодействия) "чуть другой", напр. в тысячу раз больше или на порядок, два, три меньше))) Но, это уже дело будущего, и кстати именно в нём (в будущем) и несёт так же и научный характер проекта (модели, моделирования, "матрицы" если уж на то пошло))))
Хранение состояний (взаимодействий):
М-м-м... пока на мысли только вариант с "двумя снимками": есть текущее состояние (уже рассчитанное в предыдущем шаге, и не модифицируемое. Как в блокчейне), и следующее - ещё расчётное...
Это приводит к (по крайней мере) удвоеному размеру сохраняемой ("цифровой") информации и постоянным операциям копирования.
Но, это самый надёжный и простой вариант.
Визуальная и "физическая" подсистемы независимы и взаимодействие происходит через медиатор (хранилище информации - состояния, "снимков").
По-хорошему, стоит (и даже прототип) реализовывать на тех системах, где есть возможность сохранения экземпляров объектов (сущностей) вне сессий (анти-пример - PHP), что бы уменьшить операции записи-чтения в БД - и/или сериализации/десериализации объектов из разделяемой памяти. Напр. на Java, но, будем плясать из того что есть и доступно уже сейчас.
Мне не терпится)))
Когда написано:
[
2018-08-29 21:30:30]
-
[
2018-08-29 22:05:32]
5648