January 14
XashNT - Идеология проекта
Среда для разработки игр XashNT. Ключевые пункты концепции, общая идеология проекта.
- Пользовательские данные находятся в наибольшем приоритете.
Они не должны утрачивать совместимость с обновлением версии программного кода. В подавляющем большинстве случае гарантируется полная обратная совместимость пользовательских данных с новыми версиями движка, и по возможности прямая совместимость тоже сохраняется.
Это значит, что ресурсы, созданные, в новых версиях, в старых тоже будут работать, хотя вероятно, с некоторыми ограничениями. - Прозрачность уровня драйвера.
Мы не задумываемся, но драйвера для видеокарт одинаково хорошо работают со всеми играми\движками, будь это первый Doom или современный CyberPunk. И потребление ресурсов компьютера в точности соответствует тому уровню, который требуется от приложения. Т.е. драйвер в этом смысле ведёт себя прозрачно по отношению к железу. Этой концепции я придерживаюсь и при разработке XashNT.
То есть, если вы сделаете на нём тетрис, он будет запускаться даже на самых слабых конфигурациях, но для игр в сеттинге, например Metro, конечно понадобится куда более мощная машина.
Разработчик сможет гибко настраивать производительность своей игры, не влезая программный код самого движка. - Доброкачественный комбинаторный взрыв.
В качестве примера можно привести тот же язык С++, в котором почти все возможности так или иначе сочетаются со всеми. В качестве анти-примера можно взять Delphi, по крайней мере более ранних версий, где всегда существовал ряд тех или иных ограничений, которых не было в С++. Разумеется вышесказанное не относится именно к языку, а распространяется на всю среду разработки.
Доброкачественный комбинаторный взрыв так же несёт в себе важную роль ускорения обучения, т.к. новые возможности не узнаются, путём чтения документации, а интуитивно угадываются по аналогии с уже известными. - Полностью интегрированная среда с собственными инструментами.
Задача не слишком простая, но со временем должны появиться все инструменты, позволяющие сделать игру, не прибегая к сторонним. - Полный ручной контроль над ресурсами.
Как минимум мы должны избегать ситуации, когда пустой игровой проект состоит из полугигабайта непонятных библиотек и прочих неизвестных файлов. Назначение всех ресурсов должно быть известно разработчику и их существование должно быть оправдано.
Это не означает, что будет возможен только ручной контроль, это значит, что он будет возможен в принципе.
Это ключевые пункты, положенные в основу идеологии.
Здесь ничего не говорится, например, про мультиплатформенность, хотя она тоже заложена, равно как и про другие вещи, например поддержку 3D-очков, интеграцию в Steam и другие аналогичные вещи, которые в настоящий момент есть у большинства движков. Всё это будет добавляться по мере назревания той или иной необходимости.
Важно, что изначальная архитектура движка спроектирована таким образом, чтобы всё это могло быть реализовано с минимальными усилиями и в кратчайшие сроки.