8.04. Виды игровых движков
Виды игровых движков
Игровой движок — это программное обеспечение, предоставляющее комплекс инструментов и среду для разработки интерактивных цифровых продуктов, прежде всего видеоигр. Движок абстрагирует от деталей реализации низкоуровневых операций — таких как управление графикой, физикой, звуком, анимацией, сетевым взаимодействием и вводом — и предоставляет разработчику высокоуровневый интерфейс, позволяющий сосредоточиться на проектировании и реализации игровой механики, контента и логики.
Современные игровые движки включают в себя не только движок в узком смысле (ядро, работающее с ресурсами и системами), но и редактор сцены, систему ресурсов, визуальные инструменты проектирования, системы сборки и развертывания, а зачастую — аналитику, облачные сервисы, маркетплейсы ассетов и поддержку командной работы. Экосистема движка определяет не только техническую гибкость, но и экономическую целесообразность, доступность для новичков и масштабируемость для студийных проектов.
Выбор игрового движка — один из ключевых этапов архитектурного проектирования игры. Он влияет на сроки разработки, бюджет, целевые платформы, требования к команде и потенциал продукта. В этой главе рассматриваются наиболее значимые представители игровых движков, их архитектурные особенности, модели распространения, платформенная поддержка и экосистемные компоненты.
Unity
Общая характеристика
Unity, разрабатываемый компанией Unity Technologies, является одним из самых распространённых многоплатформенных игровых движков в мире. Изначально ориентированный на разработку 3D-игр для ПК и консолей, Unity быстро стал доминирующей платформой для мобильной и инди-разработки благодаря своей простоте, гибкости и широкой поддержке устройств.
Unity отличается компонентно-ориентированной архитектурой: сцена строится из объектов (GameObject), к которым присоединяются компоненты (Component), реализующие поведение и функциональность. Этот подход делает движок интуитивно понятным даже для начинающих разработчиков и гибко масштабируемым для больших проектов.
Язык программирования и инструментарий
Основным языком сценариев в Unity является C#. Среда разработки предоставляет интеграцию с популярными IDE (Visual Studio, Rider, VS Code) и собственный редактор проекта с визуальными инструментами для работы с графикой (Universal Render Pipeline, High Definition Render Pipeline), анимацией (Animator, Timeline), физикой (встроенный движок на базе NVIDIA PhysX) и аудио.
Unity поддерживает процедурное и декларативное программирование, включая визуальное создание логики с помощью Bolt (до версии 2021.2) и последующую замену на Visual Scripting, основанную на DOTS (Data-Oriented Technology Stack) и GraphView API.
Платформенная поддержка
Unity декларирует поддержку более чем 20 платформ, включая:
- Мобильные: iOS, Android
- ПК: Windows, macOS, Linux
- Консоли: PlayStation, Xbox, Nintendo Switch
- Веб: WebGL
- Виртуальная и дополненная реальность: OpenXR, ARKit, ARCore, Oculus, SteamVR и другие
Это делает Unity особенно привлекательным для инди-разработчиков и студий, стремящихся к максимальному охвату устройств без необходимости глубокой адаптации кода под каждую платформу.
Экосистема и сервисы
Экосистема Unity включает:
- Unity Asset Store — маркетплейс с десятками тысяч платных и бесплатных ассетов: моделей, скриптов, анимаций, шейдеров и инструментов.
- Unity Cloud — набор облачных сервисов: Collaborate (устаревший), Plastic SCM для контроля версий, Unity Teams Advanced, Unity Build Automation.
- Unity Gaming Services — аналитика, монетизация, транзакции, игровые события, облачные данные игрока.
- Unity Learn — официальная платформа обучения с курсами, проектами и сертификациями.
- Unity for Industry — специализированные решения для промышленной визуализации, цифровых двойников и симуляций.
Модель распространения и лицензирование
Unity использует подписочную модель с тремя основными тарифами:
- Personal — бесплатная версия с ограничениями по доходу компании/частного лица (до $100 000 за 12 месяцев).
- Pro — платная подписка для профессиональных разработчиков, расширяющая возможности сборки, отладки и интеграции.
- Enterprise — корпоративный уровень с приоритетной поддержкой, облачными инструментами и настройкой под специфические задачи.
В 2023 году в Unity возникла волна критики из-за введения новой модели монетизации Runtime Fee, однако после обратной реакции сообщества компания отказалась от её внедрения в заявленной форме.
Особенности установки и начальной работы
Установка Unity осуществляется через Unity Hub — централизованное приложение для управления версиями редактора, проектами, модулями (build targets) и лицензиями. Unity Hub позволяет параллельно иметь несколько версий Unity и легко переключаться между ними, что особенно важно при поддержке legacy-проектов.
Unreal Engine
Общая характеристика
Unreal Engine, разрабатываемый компанией Epic Games, представляет собой высокопроизводительный движок реального времени, изначально созданный для AAA-игр, но в последние годы активно применяющийся и в индустрии кино, архитектуры, симуляций и визуализаций. Движок известен своим визуально впечатляющим рендерингом, высокой производительностью и открытостью исходного кода.
Unreal Engine реализует объектно-ориентированную архитектуру, основанную на классах C++ и расширяемую через Blueprints — визуальный язык сценариев, позволяющий проектировать логику без написания кода. Это делает движок доступным как для художников и дизайнеров, так и для программистов.
Язык программирования и инструментарий
Основной язык разработки — C++, однако значительная часть игровой логики может быть реализована с использованием Blueprint Visual Scripting. C++ используется для создания высокооптимизированных систем, плагинов и расширений движка.
Unreal Engine включает мощный набор инструментов:
- Unreal Editor — централизованный редактор сцены с поддержкой редактирования в реальном времени.
- Niagara — система визуального проектирования частиц.
- Sequencer — инструмент кинематографической анимации.
- Chaos Physics — встроенная система симуляции физики и разрушаемости.
- MetaHuman Creator — облачная платформа для генерации реалистичных цифровых персонажей.
- Virtual Production Tools — набор решений для съёмок с использованием LED-студий в реальном времени (активно применялся при создании «Мандалорца»).
Платформенная поддержка
Unreal Engine поддерживает следующие платформы:
- ПК: Windows, macOS, Linux
- Консоли: PlayStation 5, Xbox Series X|S, Nintendo Switch
- Мобильные: iOS, Android
- Веб: через WebAssembly (ограниченная поддержка)
- VR/AR: OpenXR, Oculus, SteamVR и др.
Хотя мобильная и веб-поддержка менее развиты по сравнению с Unity, Unreal Engine остаётся выбором для проектов, где приоритет — графическое качество и сложные 3D-эффекты.
Экосистема и сервисы
Основные компоненты экосистемы Unreal Engine:
- Unreal Marketplace — цифровой магазин ассетов, плагинов, моделей и анимаций.
- Epic Online Services (EOS) — набор сервисов для мультиплеера, авторизации, сохранения данных, друзей и др.
- Quixel Megascans — библиотека фотореалистичных 3D-материалов и сканов (включена бесплатно после приобретения Epic).
- Documentation & Community — обширная официальная документация, форумы, GitHub-репозиторий с исходным кодом (для лицензированных пользователей через Epic Developer Portal).
Исходный код Unreal Engine доступен через GitHub (под лицензией Epic’s custom EULA), что позволяет модифицировать движок на уровне движка, включая рендерер, менеджер памяти и сетевую подсистему — преимущество перед закрытыми альтернативами.
Модель распространения и лицензирование
Unreal Engine распространяется бесплатно. Лицензионное соглашение предполагает уплату роялти в размере 5% от валового дохода после превышения порога в $1 000 000 на игру или продукт. Это делает движок экономически выгодным как для инди-разработчиков, так и для крупных студий.
Epic не взимает плату за использование движка в некоммерческих, промышленных или кинематографических целях.
Особенности установки и начальной работы
Установка Unreal Engine производится через Epic Games Launcher, в разделе Unreal Engine → Library. Пользователь может выбирать версии движка, управлять проектами и скачивать примеры (Starter Content, Templates).
Также доступна установка через GitHub и сборка из исходников с использованием Unreal Build Tool (UBT) и Unreal Header Tool (UHT).
Godot
Общая характеристика
Godot — это свободный и открытый игровой движок с лицензией MIT, разрабатываемый международным сообществом при координации Godot Engine Foundation. Проект изначально был создан аргентинскими разработчиками Хуаном Линиццией и Ариэлем Манзуром и с 2014 года стал активно развиваться благодаря открытому исходному коду и поддержке сообщества.
Godot позиционируется как лёгкая, гибкая и независимая альтернатива коммерческим движкам. Он поддерживает как 2D-, так и 3D-разработку, но особую репутацию заслужил в инди-сегменте благодаря эффективной 2D-архитектуре и отсутствию роялти.
Язык программирования и инструментарий
Основной язык сценариев — GDScript, кастомный скриптовый язык, разработанный специально для Godot. Он синтаксически похож на Python, но оптимизирован под внутреннюю архитектуру движка. GDScript предлагает быстрое прототипирование и тесную интеграцию с редактором.
Godot также поддерживает:
- C# — через .NET-бэкенд (Mono или .NET 6+)
- C++ — через GDExtension (ранее GDNative), что позволяет писать производительные модули без перекомпиляции самого движка
Редактор движка встроен напрямую в исполняемый файл и представляет собой единое окружение с древовидной структурой сцены, основанной на узлах (nodes) и сценах (scenes). Эта архитектура способствует компоновке сложных иерархий и повторному использованию компонентов.
Платформенная поддержка
Godot поддерживает кроссплатформенную экспортную систему, включая:
- ПК: Windows, macOS, Linux
- Мобильные: Android, iOS
- Веб: HTML5/WebAssembly
- Консоли — неофициально, через сторонние интеграции (Nintendo Switch, PlayStation, Xbox требуют партнёрства)
Особенность: для 2D-рендеринга используется собственная система, не основанная на шейдерах, что обеспечивает высокую производительность и точность рендеринга. Для 3D — OpenGL ES 3.0 или Vulkan (начиная с версии 4.0).
Экосистема и сообщество
Godot не имеет централизованного маркетплейса, но активно использует:
- Asset Library — встроенный каталог пользовательских ассетов и плагинов
- GitHub — основной репозиторий с исходным кодом и issue tracker
- Discord, Reddit, форумы — для обмена опытом и поддержки
Движок финансируется через гранты, пожертвования (Patreon) и частичную поддержку от таких компаний, как Microsoft и Epic Games.
Модель распространения
Godot полностью бесплатен и не требует роялти, регистраций или подписок. Это делает его особенно привлекательным для образовательных проектов, хобби-разработки и open-source инициатив.
CryEngine
Общая характеристика
CryEngine — движок, разработанный немецкой компанией Crytek, изначально созданный для игры Far Cry (2004). Известен своей продвинутой системой рендеринга, фотореалистичными ландшафтами, динамическим освещением и передовой физикой.
CryEngine долгое время использовался только внутри Crytek и ограниченным кругом партнёров (например, Kingdom Come: Deliverance). Лишь с 2016 года движок стал доступен в виде CryEngine SDK с открытым исходным кодом для лицензированных пользователей.
Язык программирования и инструментарий
Основной язык — C++, с поддержкой Schematyc — визуального инструмента проектирования компонентов (вдохновлённого Blueprint из Unreal). Ранее использовался Lua для скриптов, но в новых версиях акцент смещён на C++ и визуальные инструменты.
Редактор движка (Sandbox) включает:
- мощный ландшафтный редактор
- систему частиц (Particle Editor)
- интерактивное освещение и отражения (включая физически корректные материалы PBR)
- интеграцию с VR
Платформенная поддержка
CryEngine поддерживает:
- Windows, Linux
- PlayStation, Xbox
- Cloud rendering (через собственные сервисы)
Мобильная и веб-поддержка ограничены.
Экосистема и распространение
CryEngine использует pay-what-you-want модель: разработчики могут скачать движок бесплатно и платить 5% роялти от валового дохода, если проект коммерческий. При этом минимальный платёж не требуется.
Движок включает Asset Portal — маркетплейс с 3D-моделями, материалами и анимациями, совместимыми с редактором.
GameMaker Studio
Общая характеристика
GameMaker Studio, разрабатываемый компанией YoYo Games, ориентирован на 2D-разработку и особенно популярен среди начинающих разработчиков и в образовательной среде. Известен простотой освоения, быстрым прототипированием и историей создания таких хитов, как Undertale, Hyper Light Drifter, Katana ZERO.
Язык программирования
Основной язык — GML (GameMaker Language), процедурный язык с синтаксисом, схожим с JavaScript и C. Также доступен Drag-and-Drop (DnD) интерфейс для визуального программирования без кода.
Платформы
- Windows, macOS, Linux
- iOS, Android
- HTML5
- PlayStation, Xbox, Nintendo Switch
Экспорт на консоли требует дополнительных лицензий.
Распространение
GameMaker использует подписочную модель:
- Creator — базовый тариф для обучения
- Developer — для коммерческой мобильной/веб-разработки
- Console — для публикации на консолях
Бесплатной версии с полным функционалом нет; в пробной версии отсутствует экспорт.
Frostbite
Общая характеристика
Frostbite — проприетарный движок, разрабатываемый EA DICE и используемый исключительно внутри Electronic Arts. Известен по играм серии Battlefield, FIFA, Need for Speed, Star Wars Jedi. Движок не доступен для сторонних разработчиков.
Особенности
- Высокопроизводительный рендерер с упором на динамическую разрушаемость окружения
- Собственная физическая система
- Глубокая интеграция с DICE-специфичными инструментами
Frostbite не имеет публичной документации, экосистемы или системы поддержки. Его использование ограничено студиями EA, прошедшими внутреннюю подготовку.
idTech
Общая характеристика
idTech — семейство движков от компании id Software (ныне часть ZeniMax Media / Microsoft). Включает в себя версии от id Tech 1 (Doom) до id Tech 7 (Doom Eternal).
Начиная с id Tech 3, движки регулярно публикуются под открытыми лицензиями (GPL), что сделало их основой для множества модификаций и самостоятельных проектов (Quake III Arena → OpenArena, Doom 3 → dhewm3).
Особенности
- Высокая оптимизация и низкие системные требования
- Акцент на шутеры от первого лица
- Поддержка сетевой игры через клиент-серверную модель
idTech не имеет единого редактора сцены; инструменты часто создаются под конкретную игру.
Havok
Общая характеристика
Havok — не полноценный игровой движок, а мидлвар-библиотека, специализирующаяся на физике, анимации и ИИ. Компания Havok (ныне часть Microsoft) предоставляет компоненты, интегрируемые в Unity, Unreal Engine, Frostbite и другие движки.
Применение
- Физика столкновений и разрушений (Skyrim, Dark Souls)
- Системы анимации (Havok Animation)
- Поведение NPC (Havok Behavior)
Havok не предназначен для прямого использования конечными разработчиками, но является критически важным компонентом в архитектуре многих AAA-игр.
Roblox Studio
Общая характеристика
Roblox Studio — облачная платформа и редактор, входящие в экосистему Roblox, ориентированную на молодую аудиторию и обучение основам программирования. Платформа позволяет создавать 3D-миры, публиковать их и монетизировать через виртуальную валюту (Robux).
Язык программирования
Основной язык — Lua, адаптированный под игровые сценарии через Roblox Lua API.
Особенности
- Всё размещается в облаке Roblox
- Интеграция с социальными функциями (чат, друзья, рейтинги)
- Система модерации и безопасного контента для детей
- Возможность получения дохода (через Developer Exchange)
Roblox Studio не является традиционным игровым движком, но представляет собой платформу как услугу (PaaS) с ограниченной, но эффективной средой разработки.
Прочие движки
- Construct — визуальный движок для 2D, без кода, на HTML5
- RPG Maker — специализированный инструмент для JRPG
- Defold — лёгкий движок от King (Candy Crush), с поддержкой Lua и 2D
- Stride (ранее Xenko) — open-source движок с C# и .NET, ориентированный на 3D
- Bevy — экспериментальный движок на Rust, с акцентом на ECS и производительность
- Amazon Lumberyard — движок на основе CryEngine, ориентированный на интеграцию с AWS; с 2022 года развитие прекращено в пользу Open 3D Engine (O3DE)