Сравнительный анализ инструментов разработки компьютерных игр

Автор: Коптенок Елизавета Викторовна, Подвесовская Марина Александровна, Сухарев Евгений Александрович, Трунников Максим Владиславович

Журнал: Вестник образовательного консорциума Среднерусский университет. Информационные технологии @vestnik-university

Статья в выпуске: 1 (13), 2019 года.

Бесплатный доступ

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

Разработка компьютерных игр, компьютерная игра, программирование

Короткий адрес: https://sciup.org/140249582

IDR: 140249582

Текст научной статьи Сравнительный анализ инструментов разработки компьютерных игр

Keyword . Computer games development, Unity 3D 3D 3D, Unreal Engine, CryEngine, computer game, programming.

Видеоигра – это компьютерная программа, организующая игровой процесс игрока с компьютером либо нескольких игроков друг с другом.

Существует множество типов видеоигр (от шутеров до стратегий в режиме реального времени). Как правило, их классификация идет по характеристикам, основным целям и типу игрового процесса.

Создание крупного проекта в области разработки компьютерных игр может занимать годы упорной работы большой группы людей. В связи с этим, проблема упрощения процесса создания игры стоит не на последнем месте. Наиболее удачно эту проблему решают игровые движки (англ. game engines).

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

Успешность игрового движка во многом зависит не только от его функционала, но и от политики распространения, которая устанавливается владельцами этого ПО.

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

Рассматриваемые игровые движки:

  • 1.    Unity 3D;

  • 2.    Unreal Engine;

  • 3.    CryEngine.

Общие сведения. Unity 3D был разработан в 2005 году и изначально предназначался для создания приложений и игр под систему IOS. Разработчики сразу поставили курс на развитие мультиплатформенности, и сегодня Unity 3D поддерживает 20 различных платформ.

Unreal Engine – игровой движок, представленный компанией Epic Games в 1998 году. Первоначально Unreal Engine был разработан для создания шутеров от первого лица, и различных RPG игр, поэтому движок хорошо проработан для создания 3D объектов и взаимодействия с ними.

CryEngine – игровой движок от компании Crytek. Разработан в 2002 году для игры Far Cry. А с 2006 года все права на CryEngine принадлежат компании Ubisoft (а вместе с ним и все права на Far Cry).

Имитация физических законов. Встроенные в Unity 3D физические движки обеспечивают разработчика компонентами для корректной симуляции физики и обработки физических взаимодействий. А чтобы это было реалистично, необходимо правильно задействовать столкновения, ускорения тел, гравитацию и другие силы.

Стоит отметить, что в Unity 3D два физических движка: для 2D и для 3D.

В целом, физика Unity 3D 3 находится на высоком уровне, из-за чего его часто используют для проектирования, создания фильмов. Популярности прибавляет относительная простота работы с объектами.

Unreal Engine использует физический движок PhysX3.3, который выполняет динамические расчеты различных физ. взаимодействий. PhysX состоит из трех основных компонентов: обработка твердых тел (rigid body), обработка тканей (cloth), обработка жидкостей (fluid). Вкупе с технологией voxel cone tracking это реализует автодобавление и отображение света, теней и второстепенных структур в реальном времени, автоматическую дорисовки объектов на игровой плоскости.

CryEngine поддерживает инверсную кинематику объектов (т. е. гибких объектов, например, кинематической цепи, коей является человеческое тело). Также доступна работа с имитацией мягкого тела и тканей (притяжение, трение, взаимодействие с другими объектами), жидкостями, физикой Ragdoll (вид процедурной анимации при котором происходит симуляция физики в режиме реального времени. Определяет, на какие углы может отклоняться составляющая часть тела относительно других частей, чтобы тело оставалось реалистичным; используется, например, при смерти персонажей).

Последняя версия CryEngine включает модель симуляции освещения, основанный на физических просчетах между светом и материалами при помощи физики реального мира. Освещение, основанное на изображении, приносит целостность освещения и рендеринга на все материалы. Специальная модель затенения, использующая новые технологии и нормализацию, позволяет визуализировать даже самые сложные сцены.

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

Модульность движка позволяет дополнять его сторонними компонентами.

В состав Unity 3D 3D входит Unity 3D 3D Asset Server – система контроля версий, а также удобный инструментарий для совместной разработки проектов.

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

Главной особенностью Unreal Engine является система визуального скриптинга Blueprints, позволяющая разработать логику проекта без единой строчки кода.

Также присутствует магазин ассетов Unreal Engine Marketplace с множеством готовых решений, а на официальном сайте присутствует развернутая документация.

CryEngine предлагает CryEngine Sandbox – редактор игры в реальном времени, позволяющий тестировать проекты прямо во время разработки.

Присутствует визуальная система скриптинга Flow graph.

Движок абсолютно модульный, имеется объемная документация с комментариями, множеством DLL-файлов. Магазина ассетов, к сожалению, нет.

Движок разработан в 2002 году, поэтому при необходимости нетрудно найти документацию как на сайте разработчиков, так и на различных форумах.

Программирование. Скриптинг в Unity 3D 3D осуществляется на C#, JavaScript и разновидности Python’s Boo.

Unreal Engine предлагает разработку на C++, но для начинающих разработчиков присутствует система Blueprints.

Разработка проектов в среде CryEngine ведется на языке C++, а также в визуальной системе Flow graph. В версии CryEngine V добавилась возможность писать скрипты на C#.

Мультиплатформенность. Как было сказано выше, в Unity 3D 3D сделан большой упор на мультиплатформен-ность. Движок поддерживает 24 платформы (от IOS до Vuforia). Также Unity 3D 3D очень удобен для создания мобильных приложений: больше половины всех мобильных игр написаны на Unity 3D 3D.

Похуже с мультиплатформенностью обстоят дела у Unreal Engine и CryEngine. Так, UE поддерживает Xbox, Android, IBM-PC-совместимый компьютер, PS3/4, Nintendo, Wii и некоторые другие. CryEngine в свою очередь ориентирован на Windows, Linux, Oculus Rift, PS3/4, Xbox.

Области применения. Как уже было сказано, Unity 3D 3D очень удобен для разработки мобильного приложения. Также благодаря совокупности достоинств это излюбленный движок инди-разработчиков. Плюс к этому, Unity 3D 3D активно используется для моделирования, проектиро-

Таблица 1. Применение игровых движков

Проект

Unity

Unreal Engine

CryEngine

Мобильное приложение

Отлично

Нормально

Плохо

RTS или пошаговая стратегия

Отлично

Отлично

Плохо

Аркада

Отлично

Отлично

Нормально

Логическая игра

Отлично

Отлично

Плохо

Спортивный симулятор

Нормально

Отлично

Нормально

Шутер

Нормально

Отлично

Отлично

Студенческий проект

Отлично

Нормально

Плохо

Инди-проект

Отлично

Отлично

Отлично

Создание симулятора

Отлично

Отлично

Нормально

Обучение созданию компьютерных игр

Отлично

Нормально

Плохо

вания, создания фильмов (например, Adam). Но в целом, движок может быть использован почти для всех жанров видеоигр.

Unreal Engine активно используется для разработки большинства жанров игр: шутеров (PUBG, Fortnite), фай-тингов (Mortal Combat X, XI), стратегий (XCOM) и многих других. Также в последнее время мобильные разработчики всё чаще стали использовать именно этот движок (Infinite Arms, Relic of Gods, Midnight Star: Renegade и др).

CryEngine в свою очередь специализируется на шутерах под Windows, PS и Xbox (например, серии Crysis, Far Cry).

Удобство применения описанных программных продуктов к различным видам проектов представлено в табл.1.

Недостатки. К недостаткам Unity 3D 3D можно отнести закрытость исходного кода и отсутствие доступа к магазину ассетов в бесплатной версии.

Из-за того, что в среду разработки Unreal Engine внедрено огромное число различных технологий, освоение и работа на первых порах в данной IDE могут вызывать немалые затруднения.

Минусы CryEngine: отсутствие полноценного магазина ассетов, а также недостаточно развитая мультиплатформенность.

Список литературы Сравнительный анализ инструментов разработки компьютерных игр

  • Конгер, Д. Физика для разработчиков компьютерных игр ( CD-ROM) / Д. Конгер. - М.: Бином. Лаборатория знаний, 2018. - 520 c
  • Официальный сайт Unity [Электронный ресурс] - Режим доступа: https://unity3d.com - Unity for all - (Дата обращения: 15.04.2019)
  • Официальный сайт Unreal Engine [Электронный ресурс] - Режим доступа: www.unrealengine.com/ - (Дата обращения: 16.04.2019)
  • Официальный сайт CryEngine [Электронный ресурс] - Режим доступа: https://www.cryengine.com - (Дата обращения: 18.04.2019)
Статья научная