УДК 004.62
Источник: ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И АВТОМАТИЗАЦИЯ УПРАВЛЕНИЯ Материалы XI Всероссийской научно-практической конференции студентов, аспирантов, работников образования и промышленности. Омск, 2020
Аннотация: в статье рассматривается процесс создания игры в жанре платформер на игровом движке Unity от возникновения концепции до ее непосредственной реализации. Приведены принципы реализации движения, сбора предметов и других действий в игре. В качестве результата разработки приведены примеры уже реализованных игровых механик.
Ключевые слова: игровое приложение, Unity, платформер
K. Vlasova, A. Kutorova, V. Lisenko, Yu. Lagunova
Omsk State Technical University, Omsk, Russian Federation
Abstract: the article discusses the process of creating a platformer game on the Unity engine from the emergence of the concept to its implementation. The mechanics of the movement, collect- ing items, and other actions in the game are reviewed. The article also gives examples of already implemented game mechanics as a result.
Keywords: game application, Unity, platformer
Unity - это современная и мощная межплатформенная среда разработки компьютерных игровых приложений за авторством американской компании Unity Technologies. Этот игровой движок позволяет создавать двух- и трех- мерные игры даже при условии отсутствия у разработчика опыта программиро- вания и визуализации графики. К его преимуществам относят простоту разра- ботки, наличие визуальной среды и свободную лицензию для некоммерческого использования. Для того, чтобы показать, насколько простым может быть про- цесс создания игры на этом движке, и был реализован данный проект - созда- ние двухмерной игры-платформера на движке Unity.
Платформер - это жанр компьютерных игр, основой игрового процесса которых является перемещение персонажа игрока по платформам, подбор
предметов и их использование, а так же сражение с противниками, обладаю- щими примитивным искусственным интеллектом. Следовательно, в игре долж- ны быть реализованы следующие механики:
Каждая из перечисленных механик реализуется следующим образом:
- передвижение - по нажатию клавиши «А» или «D» изменяется вектор передвижения (влево или вправо), после чего вектор умножается на скалярную величину (скорость по оси Y), что и реализует движение персонажа; прыжок - если персонаж находится на платформе (если области платформы и персонажа пересекаются) и игроком нажата клавиша «пробел», то дополнительный вектор передвижения умножается на скалярную величину (силу прыжка), что и реали- зует движение по оси Z - прыжок (рис. 1).
Рис. 1 – Анимация прыжка
- подбор предметов - если игрок входит в область предмета, предмет помещается в инвентарь (являющийся динамическим массивом). Использова- ние предмета на персонаже реализуется по нажатию кнопкой мыши на ячейке инвентаря (открывающимся при нажатии на кнопку «пауза» - она отключает таймер), после чего в подпрограмму передается тип объекта, определяющий эффект от его использования, объект уничтожается, а эффект заменяет собой предыдущий (если тот имелся). Использование предмета на противнике - если
игрок нажимает на клавишу «F» и им прежде был подобран предмет для ис- пользования, анимация врага изменяется на нейтральную и выполнение под- функции атаки прекращается (рис. 2).
Рис. 2 – Анимация использования предмета на противнике
- возможность атаки и получения урона - противник перемещается по заданной ему площадке вперед-назад; в случае, если область персонажа игрока пересекает область противника, враг атакует по вектору Y (вектор умножается на скалярную величину - силу удара), после чего шкала здоровья персонажа обновляется: из текущего уровня здоровья вычитается нанесенный противни- ком урон (рис. 3).
На основе приведенных словесных алгоритмов на языке C# программиру- ются алгоритмы, называемые скриптами (сценариями). Позже они добавляются в проект и связываются между собой, устанавливаются события, отвечающие за вызов каждого из классов, и данные, используемые ими для корректной работы игры. Таким образом, программируются игровые сценарии и механики.
Рис. 3 – Атака противника
Важной составляющей игры является визуализация. В данном проекте была использована 2D-графика, созданная в программе Adobe Photoshop. Дви- жок Unity поддерживает несколько видов анимации: покадровая (использован- ная в данном проекте), «скелетная» (реализуемая с помощью привязки костей к изображению и их следующего перемещения, и образующего анимацию), «скриптовая» (изменяющая свойства объекта при соблюдении определенных условий).
Покадровая анимация в Unity добавляется следующим образом: нарисо- ванные спрайты (кадры персонажей в действии) добавляются на временную шкалу и сохраняются в проекте. Далее к каждой анимации привязывается со- бытие, ее вызывающее или изменяющее, устанавливаются свяжи между анима- циями.
Также для игры необходимо наличие визуализации объектов, сцены, пользовательского интерфейса. Визуальная среда разработки Unity позволяет добавить эти компоненты программно, без использования сред программиро- вания (которые были необходимы для реализации механик игры).
Unity позволяет также добавить в игру звуковое сопровождение: как фо- новую музыку, так и специфические звуки (удара, получения урона, использо- вания предметов). Для этого используется компонент AudioSource, обладаю- щий массой возможностей для работы с аудиофайлами в контексте игры (при- вязка к объекту, моно/стерео звук, зацикливание, настройки питча и др.).
В данном проекте была использована фоновая музыка, созданная в про- грамме FL Studio.
Таким образом, на движке Unity была создана игра-платформер, в кото- рой были реализованные характерные для этого жанра механики, использую- щая 2D-графику и музыку в стерео-формате.
Данное приложение может быть использовано в развлекательных целях и может распространяться свободно (учитывая особенности дистрибуции игр, со- зданных в бесплатной версии движка).
1. Джозеф Хокинг. Unity в действии. Мультиплатформенная разработка на С#: Пер. С англ. - И. Рузмайкина // Издательство «Питер», 2019 - 352 с.
2. Джереми Гибсон Бонд. Unity и С#. Геймдев от идеи до реализации: Пер. С англ. - А. Киселев // Издательство «Питер», 2019 - 928с.
Власова Ксения Максимовна, студентка кафедры «Автоматизированные системы об- работки информации и управления» Омского государственного технического университета. E-mail: ksushavlasova@mail.ru
Куторова Анастасия Федоровна, студентка кафедры «Автоматизированные системы обработки информации и управления» Омского государственного технического университе- Ta. E-mail: formersmoker@mail.ru
Лысенко Владимир Юрьевич, студент кафедры «Автоматизированные системы обра- ботки информации и управления» Омского государственного технического университета.
Лагунова Юлия Григорьевна, ассистент кафедры «Автоматизированные системы обра- ботки информации и управления» Омского государственного технического университета, E-mail: logo_shel@asoiu.com.