Список литературы
1. Шабуров А.С., Борисов В.И. О применении сигнатурных методов анализа информации в SIEM-системах // Вестник УрФО. Безопасность в информационной среде. - Челябинск: Изд. центр ЮУрГУ, 2015. - № 17. - С. 23-37.
ОБЗОР ПРЕИМУЩЕСТВ И НЕДОСТАТКОВ ИГРОВЫХ ДВИЖКОВ. ОБОСНОВАНИЕ ВЫБОРА ИНСТРУМЕНТОВ И ТЕХНОЛОГИЙ РАЗРАБОТКИ КЛИЕНТСКОЙ ЧАСТИ
ИГРОВЫХ ПРИЛОЖЕНИЙ.
Усков Максим Александрович
студент,
Калужский филиал МГТУ им. Н.Э. Баумана,
РФ, г. Калуга
Аннотация. В статье представлен обзор преимуществ и недостатков игровых движков. Приводится обоснование выбора игрового движка при создании клиентской многопользовательской игры определенного жанра на основе опыта разработчика.
Annotation. This article provides an overview of the advantages and disadvantages of game engines. The rationale for the choice of a game engine when creating a client-side multiplayer game of a certain genre based on the developer's experience is given.
Ключевые слова: игровой движок, обзор, выбор, клиентское приложение, многопользовательская игра, разработка.
Keywords: game engine, review, selection, client application, multiplayer game, development._
Введение
Игровой движок — это базовое ПО, на котором разрабатывается и выполняется игра, представляет собой совокупность нескольких подсистем, в которые входят звуковая, графическая, физическая. В современных движках такие системы являются модульными, а их проработка и функционал зависят от движка.
В наше время на рынке цифровых развлечений доминирующую позицию занимают компьютерные игры. Одним из наиболее желанных для издателя жанром являются MMO игры. Если всего лишь несколько лет назад все студии стремились создать свою MMORPG, то в настоящий момент предпочтение отдается играм-сервисам.
Для успешного проекта, который сможет долго удерживать игроков, а также приносить прибыль несколько лет требуется создать увлекающий игроков мир, наполненный множеством активностей, а также осуществлять внедрение нового контента и долговременную поддержку продукта. Для всего этого требуется использование наиболее подходящих средств разработки.
На рынке существует большое количество движков для реализации MMO проектов разных жанров: от выживания, до RPG проектов, шутеров от первого лица и стратегий в реальном времени.
Для разработчика важной задачей является выбор подходящего игрового движка, каждый из которых является оптимальным выбором для конкретного жанра. Однако существуют решения, подходящие для мультижанровых проектов с удобными инструментами как разработки, так и поддержки.
Если пионерам разработки игр приходилось разрабатывать свои движки, то в наше время будь то однопользовательская или многопользовательская игра, разработчики в большинстве случаев выбирают уже готовые инструменты разработки.
Определиться с игровым движком означает построить правильную стратегию разработки и поддержки приложения. Об обосновании выбора средств разработки клиентской части игровых приложений и пойдет речь в данной статье.
Основные определения
Чтобы приступить к изучению инструментов и технологий разработки клиентской части игровых приложений необходимо пояснить определения, используемые в данной статье.
FPS (жанр) - жанр игр, в которых главный игровой процесс основывается на использовании игроками огнестрельного либо схожего по механике оружия с видом от первого лица. Таким образом игрок «находится» в теле протагониста, воспринимает мир его глазами. Данный жанр является одним из вариантов экшн-игр.
FPS - Кадровая частота - количество кадров, которые сменяются за единицу времени.
MMO - массовая многопользовательская онлайн игра. В данной статье будет рассматриваться случай, когда на устройстве пользователя обязательно должен быть установлен клиент игры, содержащий в себе игровые материалы, позволяющий отображать «мир» игры, а также осуществлять управление персонажем. Такие онлайн игры подразумевают нахождение на карте множества игроков, преследующих общие цели, такие как прокачка персонажа, нахождение лучшей экипировки, сражений с другими игроками [1].
RPG - ролевая игра. Игра, в которой игрок отыгрывает своего персонажа, руководствуясь его характером, обусловленного игровым «миром». В MMO играх данного жанра целью игрока является
построение уникального персонажа, выбор его специализации, несущей уникальный игровой опыт прохождения.
GaaS - от англ. Games as a service - игра как услуга (игра-сервис). Вид игр, доступ к которым осуществляется либо по подписке, либо с использованием элементов внутриигровой монетизации, однако, в настоящее время не редки случаи совмещения этих концепций. Игры по модели Gaas подразумевают долговременную поддержку со стороны разработчиков, введение нового контента и удержание платежеспособной аудитории.
Обзор преимуществ и недостатков игровых движков.
Чтобы перейти к обоснованию выбора инструментов и технологий разработки клиентской части игровых приложений необходимо произвести обзор игровых движков, определить их плюсы и минусы со стороны разработчика клиентской части игры.
Unity
Unity - кроссплатформенный игровой движок. Это полноценная среда разработки компьютерных игр, включающая в себя различные программные средства для создания ПО - компилятор, текстовый редактор, отладчик и тд [2]. Этим движком пользуются как крупные разработчики, так и независимые студии, для многих из которых именно он стал дверью в мир разработки игр.
Весомым аргументов в сторону выбора данного движка является его бесплатная модель распространения для проектов с оборотом не более 100 тыс. долларов за последние 12 месяцев. Благодаря компонентно-ориентированному подходу Unity дает возможность создавать игры разработчикам с минимальным опытом в этой сфере. Движок имеет удобный интерфейс Drag & Drop с возможностью расставлять объекты и в реальном времени тестировать результат.
Также Unity обладает большим сообществом разработчиков, огромной библиотекой ассетов и плагинов, что ускоряет процесс разработки. С помощью движка можно разрабатывать игры на все актуальные игровые платформа и портировать их без особой сложности. Этот факт означает доступность GaaS проекта на большем числе платформ.
Поддержка DirectX и OpenGL означает не только гибкость настройки графики приложения, но и доступ к новейшим технологиям, таким как трассировка лучей в реальном времени.
С помощью движка можно настраивать физику объектов, создавать сложные анимации.
Однако Unity имеет и свои минусы. Для создания сложных игр требуется наличие в команде разработки хорошего программиста C# для написания скриптов и компонентов. Так же движок плохо себя показывает падением FPS в масштабных сценах с множеством компонентов и одновременно присутствующих игроков. Отсюда следует необходимость в тщательном процессе оптимизации игровых ресурсов. Также проекты созданные в Unity занимают много места на жестком диске пользователя, что может быть решающим фактором в выборе MMO проекта потребителем, который хочет играть именно в данный момент.
Наиболее хорошо движок зарекомендовал себя в играх жанра выживание, в которых одновременно на карте присутствует большое количество игроков. Для динамических FPS(жанр) игр, а также больших MMO проектов данный движок окажется не лучшим выбором.
Unreal Engine
Unreal Engine (UE) - один из самых популярных движков для разработки крупнобюджетных игр. Был создан для разработки FPS(жанр) игр, но его последующие версии хорошо зарекомендовали себя в создании игр различных жанров. Со 2 марта 2015 года стал бесплатным движком, при условии ежеквартальной прибыли проекта меньше трех тысяч долларов, в противном случае требуется передавать 5% прибыли компании Epic Games.
Движок является кроссплатформенным, проекты, созданные с его помощью, могут быть портированы на все актуальные игровые платформы. Также UE имеет большое сообщество разработчиков с множеством уроков и магазин ассетов, ускоряющих разработку проекта. В данном движке хорошо реализованы инструменты поддержки и механизм обновления проекта, что важно при разработке клиентской части GaaS MMO игр.
UE имеет встроенную систему визуального программирования Blueprints, которая существенно понижает порог входа в процесс разработки. Основой написания кода для работы в движке является C++, который отлично реализуется с помощью Blueprints [3]. Однако написание C++ кода является лучшим выбором для разработки больших проектов из-за сложного менеджмента в Blueprints, который ухудшает производительность.
UE активно развивается компанией Epic Games. С каждым обновлением добавляются новый функционал и инструменты оптимизации [4].
Изначально разработанный для игр с большим количеством игроков на карте UE отлично подходит для реализации онлайн-игр. На его основе могут быть созданы как RPG, так и игры в других жанрах.
Однако для разработки с помощью движка требуется производительная система, что не всегда доступно независимым студиям. Однако удобство поддержки проекта сводит на нет этот недостаток.
С помощью UE можно создавать игры с лучшей графикой на рынке, это обусловлено поддержкой DirectX 12 и отличной работой встроенного графического движка.
Для разработки крупных проектов требуется наличие в команде опытного C++ разработчика, однако полученный результат будет стоить потраченных на него средств.
Также с помощью инструментов оптимизации UE способен выдавать высокий FPS даже в нагруженных сценах. Что отлично сказывается на производительности в MMO играх.
UE поддерживает связь клиента с сервером с помощью простого инструмента создания выделенного сервера для 64 одновременных пользователей, однако это ограничение можно обойти использованием сторонних плагинов таких как Open World Server, а также всегда можно создать своё решение для сервера.
^yEngine
Стал известным после выхода Crysis — прорывной для своего времени игры. Однако движок был разработан немецкой студией Crytek ещё для шутера Far Cry, который вышел в 2004 году. CryEngine (CE) оказал большое влияние на развитие игр с открытым миром, однако плохо позволяет реализовывать MMO проекты, ориентируясь на игры с одиночными компаниями [4].
Также как предыдущие примеры, CE распространяется по бесплатной модели, но в случаи дохода проекта более 5 тыс. долларов требует выплату 5% от дохода.
Включая в себя самые передовые технологии, такие как DirectX 12, Vulkan API, VR, а также продвинутую систему освещения и трассировки лучей, движок позволяет создать игры с почти фотореалистичной графикой. Скрипты в данном движке пишутся на языке C#, что удобно для разработчиков, перешедших с Unity.
Однако в использовании CE есть и свои недостатки. Главным, из которых является наличие большого числа багов во всех аспектах редактора. CE не блещет большим сообществом разработчиков, что в совокупности со скудным набором ассетов, а также с отсутствием хорошей технической поддержки (даже платной) приводит к долгому процессу разработки. Необходимость переписывания исходников движка под свой проект, сложности в решении проблем методом проб и ошибок, всё это встретится при разработке клиента игры [5].
Движок плохо подходит для разработки онлайн-игр, в основном из-за сложного написания сетевого кода (из коробки движок не поддерживает больше 32 игроков по сети) и низкого FPS, выдаваемого движком в динамических или нагруженных сценах с большим количеством игроков. Однако на рынке присутствуют MMORPG, созданные с помощью CE, но все они требуют от пользователя мощного железа для запуска и комфортной игры со стабильным FPS.
Движок сложен в освоении и требует от разработчика большого опыта работы с ним. CE больше подойдет большим опытным командам разработки для долгого и дорогого создания большого, высококачественного проекта.
Amazon Lumberyard
Lumberyard - бесплатный кроссплатформенный движок, позволяющий подключать игры к вычислительным ресурсам и хранилищу облака AWS, а также интегрировать поддержку Twitch. Сама Amazon разрабатывает на его основе свой GaaS MMO проект New World. На альфа-тестировании игроки хорошо отзывались о графике и оптимизации игры.
Созданный на основе CryEngine компанией Amazon движок является улучшенной версией CE. Движок практически решен недостатков CE. Данный движок создавался с упором на онлайн-игры и имеет в себе хороший сетевой код, а также отличную оптимизацию для отображения больших нагруженных сцен.
К встроенным инструментам также относятся Geppetto и Mannequin, с помощью которых можно создавать анимации персонажей и ragdoll-физику. Сетевая часть использует гибкую системы GridMate, которая эффективно работает с сетевыми подключениями и трафиком. Исходники движка доступны на С++, который является одним из самых популярных языков программирования.
Однако существенным минусом движка является необходимость использования только сервисов Amazon [6].
HeroEngine
Движок, разработанный авторами GemStone IV и DragonRealms для универсального создания MMO-игр. Он поддерживает множество технологий, в числе которых Vivox, PhysX, SpeedTree, FMOD, FaceGen, Wwise и Scaleform.
HeroEngine (HE) хорошо показывает себя в MMO проектах, таких как Star Wars: The Old Republic. Движок позволяет выводить хороший уровень графики и поддерживать высокий FPS даже в нагруженных сценах. Также позволяет создавать большие «бесшовные» миры. Подходит для создания сложных цепочек внутри игровых заданий. Имеет удобный сервис поддержки HeroCloud.
Однако HeroEngine имеет и свои минусы. Это скриптовый движок, но управление им крайне неудобно [7]. Движок вместе с сервисом поддержки HeroCloud стоит слишком дорого, что не подойдет для начинающих разработчиков. Также HeroEngine имеет высокий порог вхождения.
Обоснование выбора инструментов и технологий разработки клиентской части игровых приложений.
Изучив плюсы и минусы существующих игровых движков, можно переходить к обоснованию выбора инструментов и технологий разработки клиентской части игровых приложений.
Для удобства восприятия все плюсы и минусы занесены в Таблицу 1.
Таблица 1.
_Плюсы и минусы игровых движков._
+/- Unity Unreal Engine CryEngine Amazon Lumberyard HeroEngine
Поддержка MMO-игр + + - + +
Быстродействие - + - - +
Удобство поддержки - + - + +
Удобный инструмент оптимизации - + - + -
Низкая стоимость разработки + + - - -
Высокий уровень графики - + + + -
Стабильный FPS в нагруженных сценах - + - + +
Использование в качестве сервера различных сервисов + + + - +
Большое сообщество + + - - -
Магазин ассетов + + - + -
Кроссплатформенность + + + + -
Выбор крупных разработчиков - + + + +
Выбор независимых разработчиков + + - - -
С помощью Таблицы 1 можно обосновать выбор инструмента разработки клиентской части игрового приложения. Сравнив все плюсы и минусы можно выбрать подходящую технологию разработки для конкретного проекта. В данной статье будет рассмотрено обоснование выбора движка со стороны независимого разработчика MMORPG проекта.
Так как для разработки требуется наиболее ресурсоэффективное средство (со стороны не только финансов, но и времени разработки), то в первую очередь следует сравнить Unity и UnrealEngine. Остальные решения требуют большого опыта разработки, которого у независимых студий зачастую нет.
И Unity, и UE обладают большим сообществом разработчиков, и магазином ассетов, позволяющим собрать проект уже из существующих элементов. Но UE позволяет производить более легкое их редактирование. Для MMORPG существуют уже готовые бесплатные ассеты всех аспектов RPG игр. Инвентарь, создание персонажа, система умений и система заданий, всё это может быть найдено в магазине ассетов UE.
В сфере онлайн-игр Unity уступает UE в плане быстродействия и удобства поддержки и обновления клиента. С помощью OWS в UE можно создать легко поддерживаемый сервер для MMO игры, а также интегрировать связь с ним в клиент. UE позволяет отображать большие сцены, наполненные контентом и игровыми элементами, работать с большим числом игроков в динамическом открытом мире.
На основании этого можно сделать вывод, что UnrealEngine является приоритетным выбором при создании MMO проекта независимой студией разработчиков. На его основе можно создать как игры жанра RPG, так и FPS(жанр) и даже стратегии в реальном времени.
Однако при разработке крупнобюджетного проекта опытной командой разработчиков, приоритет может быть отдан Amazon Lumberyard или HeroEngine. CryEngine во всех случаях является худшим выбором для создания MMO проекта.
Обоснования выбора инструмента разработки может отличаться в зависимости от бюджетов разработки и жанра приложения. На основе данных обзора игровых движков составлены Таблица 2 -Выбор независимых разработчиков и Таблица 3 - выбор крупных студий. Однако необходимо внести ясность в выбор, представленный в таблицах. Для Таблицы 2 будет отсутствовать сравнение с HeroEngine, так как разработка на данном движке потребует вложение больших финансовых ресурсов. Для таблицы 3 напротив будет отсутствовать Unity, так как крупные студии предпочитают не использовать данный движок в больших проектах.
Таблица 2.
Выбор независимых разработчиков.
+/- Unity Unreal Engine CryEngine Amazon Lumberyard
Однопользовательская или онлайн-игра single online single online single online single online
Игра с 3D графикой + + + + + + + +
Игра с 2D графикой + + - - - - - -
FPS - - + + + - + +
Стратегия в реальном времени + - + + - - - -
RPG + - + + - - + +
Выживание + + + + + - + +
Карточная игра + + + + - - - -
Игра в открытом мире - - + + + - + +
Гонки + - + + - - - -
Спортивная аркада + - + + - - - -
Приключение + - + + + - + +
Строительный симулятор + + + + - - + +
На основе Таблицы 2 независимый разработчик может принять решение о выборе того или иного игрового движка, что является одной из целей статьи.
Таблица 3.
+/- Unreal Engine GyEngine Amazon Lumberyard HeroEngine
Однопользовательская или онлайн-игра single online single online single online single online
Игра с 3D графикой + + + + + + - +
Игра с 2D графикой + + - - - - - -
FPS + + + - + + - -
Стратегия в реальном времени + + - - + + - +
RPG + + - - + + - +
Выживание + + - - + + - +
Карточная игра + + - - - - - -
Игра в открытом мире + + + - + + - +
Гонки + + - - + + - +
Спортивная аркада + + - - + + - -
Приключение + + - - + + + +
Строительный симулятор + + - - + + - -
Для Таблицы 3 верным было бы добавление пункта «Движок собственной разработки», однако такой вариант предпочтителен всеми крупными студиями для создания проектов по модели GaaS и столбцы таблицы с таким выбором состояли бы только из «+».
На основе Таблицы 3 крупный разработчик может принять решение о выборе того или иного игрового движка, что является одной из целей статьи.
Список используемых источников
1.Массовая многопользовательская онлайн-игра [Электронный ресурс]// Википедия — свободная энциклопедия URL: https://ru.wikipedia.org/wiki/Массовая_многопользовательская_онлайн-игра (дата обращения: 01.11.2020).
2.Движок Unity - особенности, преимущества и недостатки [Электронный ресурс]// Cubiq.ru - игровой портал URL: https://cubiq.ru/dvizhok-unity/ (дата обращения: 01.11.2020).
3.Blueprints и C++ в Unreal Engine: плюсы и минусы [Электронный ресурс]// DTF — игры, кино, сериалы, разработка, сообщество URL: https://dtf.ru/gamedev/192498-blueprints-i-c-v-unreal-engine-plyusy-i-minusy (дата обращения: 01.11.2020).
4.На чем делаются современные игры: 3 самых популярных игровых движка [Электронный ресурс]// iXBT.com URL: https://www.ixbt.com/live/games/luchshie-igrovye-dvizhki-2020.html (дата обращения: 01.11.2020).
5.Движок CryEngine - особенности, преимущества и недостатки [Электронный ресурс]// Cubiq.ru -игровой портал URL: https://cubiq.ru/dvizhok-cryengine/ (дата обращения: 01.11.2020).
6.Lumberyard как ключевая проблема разработки Amazon Game Studios - Индустрия на DTF [Электронный ресурс]// DTF — игры, кино, сериалы, разработка, сообщество URL: https://dtf.ru/gameindustry/56594-lumberyard-kak-klyuchevaya-problema-razrabotki-amazon-game-studios (дата обращения: 01.11.2020).
7.Hero Engine [Электронный ресурс]// ИТ консалтинг от Олега Солозобова URL: https://8d9.ru/program/hero-engine (дата обращения: 01.11.2020).