Открыть сервис

GZDoom

GZDoom — это кроссплатформенный игровой движок, основанный на исходном коде Doom, разработанный для запуска и модификации компьютерных игр, использующих графические технологии id Tech 1 (в первую очередь Doom, Heretic, Hexen и Strife). GZDoom является форком (ответвлением) проекта ZDoom, от которого он унаследовал расширенную поддержку скриптов (ACS), порталов и сложной логики уровней, но с ключевым отличием — использованием аппаратно ускоренного рендеринга через OpenGL и Vulkan, что позволяет применять современные графические эффекты, такие как динамическое освещение, тени, рельефное текстурирование (normal mapping) и пост-обработка.

История

Предпосылки и создание (1998–2005)

Исходный код Doom был опубликован id Software в 1997 году под лицензией, допускающей некоммерческое использование, что породило множество портов (портированных версий) для различных платформ. Одним из наиболее популярных стал ZDoom, созданный Рэнди Хейном (Randy Heit) в 1998 году. ZDoom добавил поддержку скриптового языка ACS, порталов (возможность видеть один уровень через другой), улучшенный звуковой движок и поддержку множества форматов модов. Однако ZDoom использовал программный рендеринг, что ограничивало его графические возможности.

В 2005 году разработчик под псевдонимом «Graf Zahl» (настоящее имя — Кристоф Олтманнс, Christoph Oltmanns) начал работу над форком ZDoom, который получил название GZDoom. Основной целью было внедрение аппаратно ускоренного рендеринга, который позволил бы использовать современные графические эффекты, не теряя совместимости с существующими модами для ZDoom. Первая публичная версия GZDoom была выпущена в 2005 году.

Развитие и слияние (2005–2017)

В течение следующих лет GZDoom развивался параллельно с ZDoom. GZDoom получал все новые функции из ZDoom, добавляя к ним собственные графические улучшения, такие как динамическое освещение (GZDoom Light), поддержка шейдеров (GLSL) и улучшенная обработка текстур. В 2017 году, после прекращения активной разработки ZDoom (последний официальный релиз ZDoom был выпущен в 2016 году), GZDoom стал основным форком, объединив в себе как программный, так и аппаратный рендеринг. Разработчики GZDoom начали включать в него все функции оригинального ZDoom, а также продолжать развитие собственных.

Современный этап (2017 – настоящее время)

Начиная с версии 4.0.0 (выпущенной в 2019 году), GZDoom перешёл на новую архитектуру, основанную на движке FMOD Ex (для звука) и полностью переработанном рендерере. В 2021 году была добавлена поддержка API Vulkan, что позволило улучшить производительность и совместимость с современным оборудованием. GZDoom остаётся одним из самых популярных и активно развивающихся портов Doom, поддерживаемым сообществом разработчиков и моддеров. Релизы выходят регулярно, включая исправления ошибок и новые функции.

Архитектура и технические особенности

Рендеринг

GZDoom использует два основных режима рендеринга: программный (software) и аппаратный (hardware). Программный режим имитирует оригинальный рендеринг Doom, основанный на столбцах (raycasting), но с улучшенной точностью и поддержкой высоких разрешений. Аппаратный режим использует OpenGL или Vulkan и позволяет применять современные графические эффекты:

  • Динамическое освещение: GZDoom поддерживает динамические источники света, которые могут быть размещены на карте или созданы игровыми объектами. Свет может быть цветным, иметь радиус и интенсивность.
  • Тени: Реализованы как статические, так и динамические тени от объектов и персонажей.
  • Рельефное текстурирование (Normal mapping): Позволяет создавать иллюзию объёмности на плоских поверхностях.
  • Пост-обработка: Включает bloom (свечение), tone mapping (коррекция тона), SSAO (окклюзия окружающей среды) и другие эффекты.
  • Поддержка высокого динамического диапазона (HDR).

Скрипты и модификации

GZDoom поддерживает несколько языков скриптов:

  • ACS (Action Code Script): Собственный язык скриптов, унаследованный от ZDoom. Позволяет управлять событиями на уровне, создавать анимации, диалоги, логические головоломки и многое другое.
  • DECORATE: Язык описания акторов (объектов). Позволяет создавать новых врагов, оружие, предметы и другие игровые сущности, определяя их свойства, анимации и поведение.
  • ZScript: Современный объектно-ориентированный язык, введённый в GZDoom 4.0.0. Предоставляет более мощные возможности для создания сложной логики, наследования классов и взаимодействия с движком. ZScript постепенно вытесняет DECORATE.

Форматы данных

GZDoom поддерживает множество форматов игровых данных, включая:

  • WAD (Where's All Data): Оригинальный формат Doom.
  • PK3/PK7: ZIP-архивы с изменённым расширением, которые могут содержать текстуры, звуки, карты и скрипты.
  • MAPINFO: Файлы конфигурации, определяющие свойства уровней, эпизодов, игровых режимов и меню.
  • SNDINFO: Файлы, связывающие звуковые эффекты с игровыми событиями.
  • ANIMDEFS: Определения анимаций текстур и плоских поверхностей.

Порталы

GZDoom поддерживает порталы, которые позволяют создавать неевклидову геометрию уровней. Например, через портал можно видеть другой участок карты, который находится в другом месте, или создать эффект бесконечного коридора. Порталы могут быть статическими или динамическими.

Применение

Запуск классических игр

GZDoom используется для запуска оригинальных игр на движке id Tech 1, таких как Doom, Doom II, Heretic, Hexen, Strife, а также их многочисленных дополнений и модов. Для этого пользователю необходимо иметь файлы с игровыми данными (WAD-файлы) оригинальных игр, которые GZDoom загружает и обрабатывает.

Создание и запуск модов

GZDoom является одной из основных платформ для создания и запуска пользовательских модификаций (модов) для Doom. Благодаря мощным скриптовым возможностям и поддержке современных графических эффектов, моддеры могут создавать:

  • Total conversions (полные конверсии): Моды, которые полностью заменяют игровой контент, включая уровни, врагов, оружие, текстуры и звуки. Примеры: «Brutal Doom», «Ashes 2063», «Hedon».
  • Gameplay mods (моды на геймплей): Изменяют механику игры, добавляя новые классы оружия, врагов или системы прокачки. Пример: «DoomRL Arsenal».
  • Map packs (наборы карт): Новые уровни, созданные в редакторах карт, таких как Doom Builder или GZDoom Builder.
  • Graphical mods (графические моды): Улучшают визуальное оформление, добавляя динамическое освещение, новые текстуры и эффекты.

Разработка игр

GZDoom может использоваться как основа для создания небольших инди-игр, не обязательно связанных с Doom. Благодаря гибкой системе скриптов и поддержке различных форматов данных, разработчики могут создавать игры с уникальной механикой, жанрами (от шутеров до RPG и квестов) и графическим стилем.

Примеры известных проектов

  • Brutal Doom: Мод, который значительно расширяет жестокость и реализм геймплея, добавляя расчленение, кровь, новые анимации смерти и более сложное поведение врагов.
  • Ashes 2063: Полная конверсия в жанре постапокалиптического шутера с элементами выживания и исследования.
  • Hedon: Полная конверсия в жанре фэнтезийного шутера от первого лица, вдохновлённая серией Heretic и Hexen.
  • Project Brutality: Форк Brutal Doom с ещё большим количеством оружия, врагов и геймплейных механик.
  • Doom 64: Retribution: Мод, воссоздающий игру Doom 64 на движке GZDoom.

Критика и ограничения

Несмотря на популярность, GZDoom подвергается критике со стороны части сообщества Doom-моддеров. Основные претензии:

  • Сложность и размер: GZDoom является одним из самых тяжёлых портов Doom по требованиям к ресурсам системы. Для запуска современных модов с высокими настройками графики может потребоваться достаточно мощный компьютер.
  • Отход от оригинальной эстетики: Использование современных графических эффектов (динамическое освещение, тени, шейдеры) может существенно изменить визуальный стиль оригинальных игр, что не всегда приветствуется пуристами.
  • Совместимость: Некоторые старые моды, написанные для ZDoom, могут быть не полностью совместимы с последними версиями GZDoom из-за изменений в скриптовом языке и архитектуре.
  • Фрагментация сообщества: Существование множества портов (ZDoom, GZDoom, Zandronum, LZDoom) и их неполная совместимость друг с другом может создавать трудности для моддеров и игроков.

Интересные факты

  • GZDoom является одним из немногих портов Doom, который поддерживает запуск на мобильных устройствах (через неофициальные порты).
  • Движок используется не только для игр на id Tech 1, но и для некоторых игр, созданных с нуля, например, «The Adventures of Square».
  • Разработчик GZDoom, Кристоф Олтманнс, также известен как создатель популярного мода «Brutal Doom» (хотя это не так — Brutal Doom создан Sgt. Mark IV, а Олтманнс является автором GZDoom).

Источники

  • Официальный сайт GZDoom и документация (zdoom.org)
  • Репозиторий исходного кода GZDoom на GitHub (github.com/coelckers/gzdoom)
  • Статья «GZDoom» на Doom Wiki (doomwiki.org)
  • История развития портов Doom на Doomworld (doomworld.com)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →