Лекция
игровые движки – это мощные инструменты, которые позволяют разработчикам создавать игры без необходимости писать код с нуля. Они предоставляют широкий набор инструментов для создания игровых миров, персонажей, анимаций, физики и многого другого. В этой лекции мы рассмотрим основные игровые движки, их особенности и как выбрать подходящий для вашего проекта.Игровые движки являются основными инструментами для создания современных видеоигр. Они предоставляют разработчикам широкий набор инструментов и возможностей для реализации их идей.
Игровой движок (англ. game engine) — базовое программное обеспечение компьютерной игры. Разделение игры и игрового движка часто расплывчато, и не всегда студии проводят четкую границу между ними. Но в общем случае термин «игровой движок» применяется для того программного обеспечения, которое пригодно для повторного использования и расширения, и тем самым может быть рассмотрено как основание для разработки множества различных игр без существенных изменений.
Игровой движок – это программная платформа, которая предоставляет набор инструментов и библиотек для разработки игр. Он включает в себя:
В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощенной, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильноконкурирующей индустрии видеоигр.
Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесенными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok — для физики, FMOD — для звука или SpeedTree — для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения. Тем не менее расширяемость достигнута и остается высокоприоритетной в игровых движках из-за широких возможностей их применения. Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.
Некоторые игровые движки предоставляют только возможности 3D-рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или ее сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D-движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D-движки упомянуты просто как «3D-движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D-мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.
Чаще всего 3D-движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты. До появления аппаратно-ускоряемой 3D-графики использовались программные визуализаторы. Программный рендеринг все еще используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.
сравнение интерфейсов Unity и Unreal
Выбор игрового движка зависит от нескольких факторов:
Критерий | Unity | Unreal Engine |
---|---|---|
Базовые примитивы и объекты | Предоставляет стандартные примитивы: куб, сфера, капсула, цилиндр, плоскость, тетраэдр, террейн и другие | Предоставляет стандартные примитивы: куб, сфера, капсула, цилиндр, плоскость, конус, пирамида, террейн и другие |
Базовые геометрические преобразования |
Transform включает Position, Rotation, Scale. Легко управлять через инспектор или скрипты. |
Transform включает Location, Rotation, Scale. Реализовано через Actor и его компоненты. |
Математические понятия |
Полная поддержка 2D/3D-векторов, кватернионов, матриц. Простая работа с Vector2, Vector3. |
Поддержка векторов (FVector), кватернионов (FQuat), матриц. Больше инструментов для сложных вычислений. |
Физика |
Основана на NVIDIA PhysX. rigitbody Скользкость, трение, гравитация, коллизии настраиваются в инспекторе. |
Основана на Chaos Physics.компонент Physics в сочетании с Static Mesh или Skeletal Mesh компонентов Больше возможностей для симуляций, включая разрушения, ткани и жидкости. |
Графика | Простота настройки материалов, шейдеров. Поддержка HDRP/URP для улучшенной графики. |
Высокая детализация из коробки. Реалистичные эффекты с Lumen (освещение), Nanite (детализация мешей). |
Камера | Гибкая настройка камеры, включая Cinemachine для сложных движений. | Кинематографическая камера с продвинутыми эффектами из коробки и под заранее заданные роли, например камера от первого, третьего лица, автомобиль и т.д. |
Анимация | Анимация через Animator и Timeline. Поддержка 2D и 3D-анимации, Blend Trees. | Мощная система анимации с Blueprints, поддержка сложных систем рига и Blend Space. |
Освещение |
Реализация освещения через URP/HDRP. Поддержка динамического и статического освещения. мегкие и жеские тени. туман. |
Полноценное динамическое освещение с Lumen. Продвинутые тени и глобальное освещение. туман. |
Текстуры и материалы |
Простая работа с текстурами. Поддержка PBR, легко настроить через инспектор. |
Высокая детализация текстур. Расширенные настройки материалов через Material Editor. |
Шейдеры |
Shader Graph для визуального редактирования. Возможность писать на HLSL. |
Визуальный редактор материалов. Глубокая интеграция шейдеров на C++ и HLSL. |
UI элементы |
Canvas, Event System для меню, кнопок, событий мышки. Поддержка 2D/3D UI. |
Slate и UMG для интерфейсов. Больше гибкости, но сложнее в освоении. |
Игровые объекты |
GameObject, сцены, префабы. Скрипты реализуются через компоненты на C#. |
Actor, сцены (Levels), Blueprint Class вместо префабов. Скрипты через Blueprints или C++. |
Датчики (ввод) |
Input System (клавиатура, мышь, тачпад, геймпад, камера). Широкие возможности для VR/AR разработки. Легко интегрируется. |
Поддержка ввода через Input Manager (ключи, оси). Широкие возможности для VR/AR разработки. Расширенный доступ к устройствам через C++. |
Вывод на устройства звука и другие | поддержка базовых звуковых эффектов | поддержка базовых звуковых эффектов |
Скрипты |
Пишутся на C#. Легкость освоения, модульная структура. |
Пишутся на C++ или создаются визуально через Blueprints. Гибкость, но высокая сложность. |
Производительность и отладка |
пошаговая и условная отладка, статистика и профилирование рендера и физики, условная компиляция, логирование | пошаговая и условная отладка, статистика и профилирование рендера и физики, условная компиляция, логирование |
2D-разработка |
Идеально подходит для 2D-проектов. Множество встроенных инструментов (Tilemap, Sprite). |
Поддержка 2D слабее. Unreal больше ориентирован на 3D. |
Сетевые функции | Поддержка сетевых решений через Unity Netcode, Mirror и другие библиотеки. | Встроенные сетевые функции из коробки, высокоуровневая репликация данных. |
Кросс-платформенность | Поддержка большинства платформ (Windows, macOS, Android, iOS, WebGL, консолей). | Поддержка всех основных платформ, включая консоли, но настройка сложнее. |
Сообщество и документация | Огромное сообщество, обширная документация, многоуровневые учебные материалы. | Сообщество меньше, но доступно много официальных уроков и материалов. |
Цена |
Бесплатная версия с ограничениями по доходу. Подписка на Pro для крупных проектов. |
Бесплатно до определенного дохода, потом процент от прибыли. |
Другие игровые движки
Игровые движки значительно упрощают процесс разработки игр, позволяя разработчикам сосредоточиться на создании уникального игрового опыта. Выбор подходящего движка – важный этап в разработке игры. При выборе учитывайте свои цели, бюджет, опыт команды и другие факторы.Работа с игровыми движками — это важный навык для гейм-дизайнеров. Понимание их возможностей и особенностей помогает выбрать подходящий инструмент для реализации своих идей и создания качественных игр.
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Разработка компьютерных игр, гейм-дизайн
Термины: Разработка компьютерных игр, гейм-дизайн