Dagor Engine
Dagor Engine — игровой движок с открытым исходным кодом, разработанный компанией Gaijin Entertainment. Dagor разрабатывается с 2002 года и постоянно совершенствуется. Поддерживаются ПК (Microsoft Windows и Linux для x86), Xbox, Xbox 360, PlayStation 3, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X/S. По состоянию на 2020 год последней является шестая версия движка. «Dagor» используется в преимущественном большинстве игр компании Gaijin Entertainment. История«Gaijin Entertainment» была основана в 2001 году. Тогда же и начала разрабатываться первая версия «Dagor». Команда, работающая над движком, была выделена в отдельное подразделение[2][3]. 14 июня 2005 года «Gaijin Entertainment» анонсировала приобретение лицензии на физический движок «Meqon Game Dynamics» разработки шведской компании «Meqon Research A» и интегрировании его во вторую версию «Dagor»[4][5]. Через некоторое время после основания компании, но до начала 2006 года, подразделение по разработке «Dagor» было выделено в полностью отдельную компанию Dagor Technologies, которая продолжила работу исключительно над движком[3]. По данным на 2022 год, развитием движка занимается центральный офис Gaijin в Будапеште.[6] 29 марта 2006 года была официально анонсирована третья версия движка «Dagor». Данная версия имела поддержку основных приставок шестого и седьмого поколения[3][7][8]. 7 апреля 2006 года в официальном пресс-релизе от Ageia и Gaijin Entertainment, опубликованном во время КРИ 2006, было сообщено о приобретении последней лицензии на физический движок Ageia PhysX, разработанный Ageia. Было заявлено, что Ageia PhysX будет интегрирован в «Dagor»[9][10]. 20 апреля 2008 года на церемонии вручения премии «КРИ Awards», которая прошла в Москве в рамках ежегодной Конференции разработчиков игр, компания «Gaijin Entertainment» получила награды в двух номинациях, в том числе в номинации «Лучшая технология» за движок «Dagor Engine»[11]. 2 октября 2015 года была официально анонсирована четвёртая версия движка «Dagor». Данная версия включила в себя полностью динамически разрушаемое окружение, новый рендеринг воды с помощью NVIDIA Waveworks и ещё ряд пока не объявленных возможностей[12]. В 2018 году вышла пятая версия движка, а в 2020 шестая. 16 сентября 2023 года код движка был открыт и стал распространяться на Github по лицензии BSD 3[13]. Основные особенности«Dagor Engine» доступен на IBM PC-совместимых компьютерах под управлением Microsoft Windows и игровых консолях Xbox, Xbox 360 и PlayStation 3. «Dagor Engine» написан на языках программирования С и C++ и использует интерфейс программирования приложений (API) Microsoft DirectX 11[14]. Графический движокГрафический движок, входящий в состав «Dagor Engine», поддерживает множество графических эффектов и технологий. Он базируется на DirectX3D 11. Присутствует как собственный язык программирования шейдеров, так и возможность использовать HLSL[15]. Графический движок поддерживает множество алгоритмов освещения и источников света. Широко используется High Dynamic Range Rendering как в статическом, так и в динамическом освещении. Присутствуют рассеянные и направленные источники света, а также светящиеся объекты. Поддерживаются:
Также содержится набор разнообразных графических пост-эффектов:
Имеется богатый арсенал средств поддержки рендеринга водных поверхностей, — в частности типы воды с поддержкой HDR, ряби, отражений и дифракции Френеля. Также поддерживаются:
Система частиц позволяет моделировать искры, дым, огонь, осадки, листья, насекомых и ауры. 2 октября 2015 добавлена поддержка технологии NVIDIA Waterworks[12][15]. Физический движокВстроенный в «Dagor Engine» физический движок содержит:
Также имеется набор геометрических примитивов и разнообразных сочленений, — при этом поддерживается динамическое разрушение сочленений. Также реализована физика жидкостей и физика частиц. 7 августа 2015 в движок была добавлена поддержка полной разрушаемости всех объектов посредством технологии NVIDIA GameWorks Destruction[16] Несмотря на наличие собственного физического движка, «Dagor Engine» содержит открытый интерфейс, который позволяет подключать сторонние физические движки. Заявлено об успешном использовании с «Dagor Engine» следующих сторонних физических движков: Звуковой движокЗвуковой движок, используемый «Dagor Engine», использует библиотеку FMOD. Основными функциональными характеристиками звукового движка являются DSP-эффекты, полностью трёхмерный звук, потоковый вывод, генерация виртуальных голосов, микширование, многоканальный режим работы и поддержка множества динамиков для вывода звука. Звуковой движок содержит свой API, поддерживает плагины и работает с более чем 20 файловыми форматами звука[15]. Система анимацииАнимационный движок «Dagor Engine» поддерживает скелетную анимацию, процедурную анимацию, смешивание анимаций, морфинг и различные контроллеры анимаций. Также доступен редактор анимаций[15]. Сетевая подсистемаСетевая подсистема «Dagor Engine» построена на архитектуре «клиент-сервер», имеет открытый интерфейс и поддерживает сетевые протоколы TCP и UDP[15]. ИнструментарийИнструментарий для разработки игр на движке включает в себя набор утилит по работе с освещением «Light Tools», редактор уровней «Dagor Editor», редактор ресурсов «Resource Editor», редактор библиотек объектов «Object Library», а также набор импортеров, экспортеров и конвертеров файловых форматов[17]. Light Tools«Light Tools» представляет собой набор утилит, предназначенных для расчёта статического освещения уровня. Расчёт освещения может проходить как на локальном клиенте, так и на отдельном сервере. Поддерживается вертексное освещение и освещение на основе лайтмапов (карт теней) с рассеянным светом. Также поддерживаются алгоритмы Global Illumination, основанные на текстурах освещённости[17]. Dagor Editor«Dagor Editor» является редактором уровней, позволяющем создавать и модифицировать игровые уровни на движке. Присутствует экспорт уровня во внешнюю программу, режим пакетного экспорта, сбор статистики уровня, до четырёх портов просмотра на уровень и различные режимы работы виртуальной камеры[17]. «Dagor Editor» построен на основе плагинов, отвечающих за разные функции при создании уровня. «Dagor Editor» имеет функциональность на уровне других коммерческих редакторов уровней и предоставляет все функции, необходимые для создания игр. Есть возможность создавать и редактировать ландшафт, водные поверхности, а также текстурировать их. Поддерживается использование префабов (игровых объектов и ассетов): их расстановка и редактирование параметров. На уровне можно расставлять статические источники света, которые потом просчитываются в «Light Tools». Поддерживается расстановка различных объектов: объёмных лучей и объёмного тумана, окклюдеров, виртуальных камер, источников звука, триггеров, растительности, объектов для игрового ИИ, скриптов и т. д. Присутствует SDK, позволяющий сторонним разработчикам создавать собственные плагины для «Dagor Editor»[17]. Resource Editor«Resource Editor» является редактором базы игровых ресурсов, в котором можно создавать и модифицировать игровые ресурсы: спецэффекты, системы частиц, физические объекты, персонажи и анимации[17]. Object Library«Object Library» является редактором библиотек объектов для «Dagor Editor». Он позволяет импортировать заготовки и текстуры в библиотеку, а также настраивать текстуры и кисти текстур[17]. Импортёры и экспортёрыВ «Dagor Engine» входит множество импортёров и экспортёров данных в сам движок из внешних программ и наоборот — из движка во внешние программы. Присутствуют плагины для работы с 3ds max и Maya, которые позволяют импортировать и экспортировать геометрию и анимацию, а также редактировать материалы и параметры объектов[17]. Также присутствуют импортёры уровней из «Quake3» (Q32dag), «Half-Life 2» (BSP2dag) и «Unreal Tournament» (U3D2dag)[17]. Также в наличие есть «Texture Editor» — редактор DDS-текстур, который позволяет настраивать параметры текстур и конвертировать их в формат DDS из других форматов[17]. Игры, использующие Dagor EngineПримечания
Ссылки
|