January 14

XashNT - Идеология проекта

Среда для разработки игр XashNT. Ключевые пункты концепции, общая идеология проекта.

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

Это ключевые пункты, положенные в основу идеологии.


Здесь ничего не говорится, например, про мультиплатформенность, хотя она тоже заложена, равно как и про другие вещи, например поддержку 3D-очков, интеграцию в Steam и другие аналогичные вещи, которые в настоящий момент есть у большинства движков. Всё это будет добавляться по мере назревания той или иной необходимости.

Важно, что изначальная архитектура движка спроектирована таким образом, чтобы всё это могло быть реализовано с минимальными усилиями и в кратчайшие сроки.