Реализация ключевых элементов казуальной 2D-видеоигры в среде разработки Unity | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 18 мая, печатный экземпляр отправим 22 мая.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №23 (365) июнь 2021 г.

Дата публикации: 06.06.2021

Статья просмотрена: 124 раза

Библиографическое описание:

Дерепаско, Н. И. Реализация ключевых элементов казуальной 2D-видеоигры в среде разработки Unity / Н. И. Дерепаско, Н. М. Попов, В. С. Близнюков. — Текст : непосредственный // Молодой ученый. — 2021. — № 23 (365). — С. 88-92. — URL: https://moluch.ru/archive/365/82092/ (дата обращения: 07.05.2024).



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

Ключевые слова: 2D-видеоигра, Unity, геймдизайн, программирование, игровой движок.

Введение

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

Концепт разрабатываемой видеоигры.

Перед разработкой видеоигры всегда описывается концепт этой игры. Это первый ключевой момент разработки видеоигр. На этом этапе описывается идея игры, а также основные игровые механики, элементы интерфейса, цели игрока [1].

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

Краткий концепт приложения

Рис. 1. Краткий концепт приложения

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

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

Графические элементы видеоигры.

В соответствии с определенным концептом художником были созданы элементы графического интерфейса, такие как шкала количества жизней, шкала запаса воздуха, они представлены на рисунке 2. Следующим этапом были созданы спрайты объектов игровой сцены: игровой персонаж, астероиды, баллон с воздухом, они отображены на рисунке 3.

Элементы интерфейса: а) шкала количества жизней б) шкала запаса воздуха

Рис. 2. Элементы интерфейса: а) шкала количества жизней б) шкала запаса воздуха

Спрайты объектов игровой сцены: а) игровой персонаж б) астероиды в) баллон с воздухом

Рис. 3. Спрайты объектов игровой сцены: а) игровой персонаж б) астероиды в) баллон с воздухом

Скрипты управления главным персонажем и генерации астероидов

Для создания логики поведения игровых объектов, а также обработки пользовательского ввода, в среде разработки Unity используются скрипты, т. е. компоненты, написанные с помощью языка программирования. Unity поддерживает такие языки как Java и C#, при этом именно C# принято считать основным языком написания скриптов [2]. Обзор языка C# и его функциональных возможностей является предметом отдельной темы, поэтому в рамках данной статьи мы не будем затрагивать его описание.

При рассмотрении разработанного концепта создаваемой видеоигры становится видно, что в основе игрового процесса лежит управление перемещением главного персонажа в космическом пространстве с целью предотвращения его столкновения с летящими навстречу астероидами. Исходя из этого можно сделать вывод, что ключевыми элементами являются скрипт, отвечающий за обработку передвижения главного персонажа с помощью устройства ввода (клавиатуры), а также скрипт, отвечающий за логику поведения астероидов [2].

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

[SerializeField] bool upEngine;

[SerializeField] bool downEngine;

[SerializeField] bool leftEngine;

[SerializeField] bool rightEngine;

В методе KeyboardInput() прописаны изменения значения этих переменных в зависимости от ввода пользователем:

if (Input.GetKey(KeyCode.W)) upEngine = true;

else upEngine = false;

if (Input.GetKey(KeyCode.S)) downEngine = true;

else downEngine = false;

if (Input.GetKey(KeyCode.A)) leftEngine = true;

else leftEngine = false;

if (Input.GetKey(KeyCode.D)) rightEngine = true;

else rightEngine = false;

Беря во внимание, что действие происходит в космическом пространстве, необходимо корректно реализовать логику перемещения после пользовательского ввода для того, чтобы добиться правдоподобного игрового процесса. Основной движущей силой управляемого персонажа является выпуск воздуха под давлением из специальных устройств, расположенных на скафандре персонажа. В простом понимании силами сопротивления в космосе можно пренебречь, а потому движение персонажа, возникшее в результате передаваемого от выпуска воздуха импульса, будет равномерным и прямолинейным. Так же нужно иметь в виду, что после возникшего движения с помощью первого устройства, в случае включения размещенного вдоль оси второго устройства, персонаж сперва будет замедляться до полной остановки и только потом возникнет движение в обратном направлении [3].

В соответствии с этим были определены методы EnginesLogic() и MovementLogic(), отвечающие за логику подобного перемещения в горизонтальном и вертикальном направлениях:

void EnginesLogic()

{

if (upEngine)

{

if (currentVerticalPower > -.5f) currentVerticalPower -= powerStep;

}

if (downEngine)

{

if (currentVerticalPower < .5f) currentVerticalPower += powerStep;

}

if (leftEngine)

{

if (currentHorizontalPower > -.5f) currentHorizontalPower -= powerStep;

}

if (rightEngine)

{

if (currentHorizontalPower < .5f) currentHorizontalPower += powerStep;

}

}

void MovementLogic()

{

transform.position = Vector2.MoveTowards(transform.position, moveDirectionTarget.position, speed * currentVerticalPower);

transform.Rotate(0f, 0f, rotationSpeed * currentHorizontalPower);

}

После была определена логика поведения опасных для главного персонажа объектов игровой сцены. Для их генерации используется корутина, которая возвращает фактический объект, используемый для итераций и называемый IEnumerator, с использованием ключевого слова yield [4]. Корутину мы прописываем в классе-родителе (т. к. она может использоваться и для генерации других объектов, например, предмета восстановления запаса кислорода) и определяем основные моменты, связанные с генерацией, такие как время, через которое должен быть сгенерирован объект, начальное положение объекта при генерации, его скорость:

protected IEnumerator SpawnCD(int timeSpawn, float Xposition, float Yposition, GameObject gameObject, bool speedChange)

{

yield return new WaitForSeconds(timeSpawn);

Vector2 pos = new Vector2(Xposition, Yposition);

if (speedChange)

{

gameObject.GetComponent ().speedMultiplier = Random.Range(1.5f, 3.0f);

}

else

{

gameObject.GetComponent ().speedMultiplier = 1.0f;

}

Instantiate(gameObject, pos, Quaternion.identity);

Repeat();

}

Данная конструкция вызывается с помощью метода StartCoroutine() в классе-наследнике с передачей необходимых параметров:

void Start()

{

StartCoroutine(SpawnCD(4, transform.position.x, spawnPosition.position.y, asteroid, false));

}

public override void Repeat()

{

StartCoroutine(SpawnCD(4, transform.position.x, spawnPosition.position.y, asteroid, false));

}

Итоговый результат процесса разработки видеоигры

После завершения ключевых элементов разработки видеоигры мы начинаем процесс сборки игры в игровой среде Unity. Результат работы после сборки игры в среде разработки Unity можно увидеть на рисунках 4 и 5.

Начало игры

Рис. 4. Начало игры

Игровой процесс

Рис. 5. Игровой процесс

Литература:

  1. Бонд Д. Г. Unity и C#. Геймдев от идеи до реализации. / Д. Г. Бонд. — 2-е издание. — Санкт-Петербург: Питер, 2019. — 928 c.
  2. Хокинг Дж. Unity в действии. / Дж. Хокинг. — 2-е издание. — Санкт-Петербург: Питер, 2018. — 352 c.
  3. Ландау Л. Д. Теоретическая физика. В 10 томах. Том 1. Механика. / Л. Д. Ландау, Е. М. Лифшиц. — 7-е издание. — Москва: ФИЗМАТЛИТ, 2017. — 224 c.
  4. Unity User Manual // Unity Documentation: [сайт]. — URL: https://docs.unity3d.com/Manual/index.html (дата обращения 18.05.2021).
Основные термины (генерируются автоматически): главный персонаж, игровая сцена, игровой процесс, среда разработки, вертикальное направление, игровая среда, игровой персонаж, космическое пространство, пользовательский ввод, шкала запаса воздуха.


Ключевые слова

программирование, Unity, игровой движок, 2D-видеоигра, геймдизайн

Похожие статьи

Маркеры игрового пространства | Статья в журнале...

Я. А. Коменский. Организация предметно-игрового пространства и предметно-развивающей среды является необходимым условием для формирования игровой и познавательной деятельности ребенка. Задача дошкольного учреждения состоит в том, чтобы создать такую...

Использование библиотеки SFML для визуализации результатов...

SDL, игровой цикл, библиотека, функция, игровая программа, SFML, написание игры, параметр. Похожие статьи. Коптенок Елизавета Викторовна — Информация об авторе. Использование библиотеки SFML для визуализации результатов моделирования процессов небесной механики.

Использование компьютерной игры «The Sims...»

Игровой процесс позволит обогатить словарный запас из сферы «Путешествия» и «Сервис и туризм» и, что не менее важно, познакомиться с культурой, обычаями и традициями той страны, в которую совершается путешествие, что также способствует формированию социокультурной...

Создание предметно-развивающей среды для детей...

- разнообразие — наличие всевозможного игрового и дидактического материала для

- стабильность — материалы и пособия, маркеры игрового пространства, имеющие постоянное место

Цель игрового уголка: в процессе игр развивать у детей интерес к окружающему миру.

Создание мобильной и трансформируемой среды с применением...

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

Педагогический проект «Загадочный космос» | Статья в журнале...

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

В ритме нашей жизни интересно знать, что такое космос, и иметь представление о происходящих в космосе процессах.

Внедрение основ алгоритмизации и программирования для...

Цифровая образовательная среда « ПиктоМир » — это инновационная деятельность, направленная на организацию в образовательном

У детей формируется готовность к изучению основ алгоритмизации и программирования в цифровой образовательной среде «ПиктоМир»...

Игровой интерфейс и управление игрой | Статья в журнале...

Библиографическое описание: Миронов, А. С. Игровой интерфейс и управление игрой / А. С

 Игровая графика, дизайн уровней, анимация персонажей, искусственный интеллект — все

Это главная информация о текущем выбранном персонаже или квадрате, или информация о...

Похожие статьи

Маркеры игрового пространства | Статья в журнале...

Я. А. Коменский. Организация предметно-игрового пространства и предметно-развивающей среды является необходимым условием для формирования игровой и познавательной деятельности ребенка. Задача дошкольного учреждения состоит в том, чтобы создать такую...

Использование библиотеки SFML для визуализации результатов...

SDL, игровой цикл, библиотека, функция, игровая программа, SFML, написание игры, параметр. Похожие статьи. Коптенок Елизавета Викторовна — Информация об авторе. Использование библиотеки SFML для визуализации результатов моделирования процессов небесной механики.

Использование компьютерной игры «The Sims...»

Игровой процесс позволит обогатить словарный запас из сферы «Путешествия» и «Сервис и туризм» и, что не менее важно, познакомиться с культурой, обычаями и традициями той страны, в которую совершается путешествие, что также способствует формированию социокультурной...

Создание предметно-развивающей среды для детей...

- разнообразие — наличие всевозможного игрового и дидактического материала для

- стабильность — материалы и пособия, маркеры игрового пространства, имеющие постоянное место

Цель игрового уголка: в процессе игр развивать у детей интерес к окружающему миру.

Создание мобильной и трансформируемой среды с применением...

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

Педагогический проект «Загадочный космос» | Статья в журнале...

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

В ритме нашей жизни интересно знать, что такое космос, и иметь представление о происходящих в космосе процессах.

Внедрение основ алгоритмизации и программирования для...

Цифровая образовательная среда « ПиктоМир » — это инновационная деятельность, направленная на организацию в образовательном

У детей формируется готовность к изучению основ алгоритмизации и программирования в цифровой образовательной среде «ПиктоМир»...

Игровой интерфейс и управление игрой | Статья в журнале...

Библиографическое описание: Миронов, А. С. Игровой интерфейс и управление игрой / А. С

 Игровая графика, дизайн уровней, анимация персонажей, искусственный интеллект — все

Это главная информация о текущем выбранном персонаже или квадрате, или информация о...

Задать вопрос