|
Изначальная цель:
Создать такую игру, какую мне хочется (гибрид 4X и RPG с открытым, саморазвивающимся миром)
Препятствие:
Не существует инструментов, позволивших бы достичь этой цели, затратив укладывающийся в разумные рамки объём усилий: ни движка с нужным мне набором возможностей, ни 3d редактора с интерфейсом, какого мне хотелось бы (Milkshape к примеру, слишком убог, Blender слишком заумен).
Промежуточная цель:
Создать движок/тулзет, который обладал бы набором возможностей, позволяющих мне создать такую игру, какую мне хочется («Лучше час потратить, чтобы потом за пять минут долететь»).
Вторичная промежуточна цель:
Создать простую игру (клон OpenArena и AoS) для обкатки движка/тулзета в реальных боевых и набора опыта.
Имеющийся опыт игростроения:
1. Написал работающую 3d стрелялку под MS-DOS, сдохшую уже на стадии технической демки.
2. Моделил и анимировал для jDoom: вдыхал жизнь в какодемонов, импов, манкубов.
3. Писал скрипты для красивых партикловых спецэффектов в jDoom (пошли коту под хвост из-за обновления скриптового языка)
4. Создавал моды для Neverwinter Nights 1 и Morrowind, много трахался с их скриптовыми движками.
(Степень завершённости каждой из фич отображается значком)
ГНУтый код (движок - под полной GPL, отдельные части - под ослабленной LGPL).
Технология "перекомпиляции на лету", позволяющая подменять один код другим без перезапуска игры и перезагрузки ресурсов. Несравнимо эффективнее скриптовых языков, несравнимо гибче т.н. «движка, управляемого данными». Опирается на встроенную ODBMS, на создание которой я потратил два года.
Полная перзистентность. Движок в любой момент готов сохранить сессию, чтобы продолжить работу при следующем запуске с того же места. Сессия будет сохранена даже если операционная система пойдёт выключаться - ничто, кроме убиения Chentrah через диспетчер задач, не может помешать этому.
Сверхбыстрое сохранение. Оценочная величина времени сохранения на машине, удовлетворяющей минимальным системным требованиям, равна 300 милисекунд.
Движок намертво прикован к компилятору Free Pascal (не совместим ни с Delphi, ни с любыми иными диалектами).
Кросс-платформенность: поддержка Windows от XP до 10, Wine, Linux для x86, x86-64 и ARM.
Эпически производительная физика за счёт трюка с пониженной частотой тиков у движущихся объектов и интерполяцией/пересчётом при взаимодействии.
Перзистентный, разрушаемый, иерархически процедурно генерируемый мир с вменяемой структурой (в жопу шум Перлина!)
Гибридная воксельная система, состоящая как из дешёвых чанков на подобие Minecraft (тризмоксели) так и из объектов произвольной формы (транспорт, древесные стволы, домики и прочая - созтоят из тетрокселей). У тетрамешей - упрощённая физика, а тризмоксели могут падать только вертикально вниз. А ещё, модель освещения нарочито-нереалистичная.
Поддержка потопов, где участки с установившимся течением дают нулевую нагрузку на производительность. А ещё, море с волнами.
Сетевая физика, потенциально расширяемая до ММО. Комбинация авторитарного lockstep-в-прошлом и лагокомпенсации на расслоении участка мира.
Поддержка эпически масштабных разрушений в сетевой игре, с нулевой стоимостью передачи по сети.
Столкновения на основе ограничивающих сфер для энтитей и тризмокселей/тетрокселей для мира. При необходимости энтити бьются на меньшие сферы, пристёгнутые к их скелету. Физики для мёртвых тел нет, но есть механизм для подгонки их к неровным поверхностям.
AI использует трёхуровневую систему нахождения пути, где верхний уровень - части мира, средний - навигационный граф, узлами которого являются браши, а таблицу проходимости заполняют на лету сами монстры по мере продвижения по миру. Нижний уровень - поиск пути по A* от заданной точки до заданного браша, или между брашами. У каждого рода монстров информация о проходимости своя.