Cheb's Home Page
 
 
 
Orphus system

Cheb's Home Page

Главная
Cheb's Game Engine Косметическая подтяжка Quake II
Штошник на ушах
 

 

Chentrah

Обзор проекта



План действий

Изначальная цель:
Создать такую игру, какую мне хочется (гибрид 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* от заданной точки до заданного браша, или между брашами. У каждого рода монстров информация о проходимости своя.