Выбор оптимальной концепции создания компьютерной игры

XI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Выбор оптимальной концепции создания компьютерной игры

Поздеев И.Д. 1
1МБОУ ДО "Детско-юношеский центр"
Вихарева Е.М. 1
1МБОУ ДО "Детско-юношеский центр"
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Я люблю компьютерные игры. Но не сколько играть, а создавать их. Два года назад я увлекся созданием игр. В моём арсенале есть игра «Evading Ball», но я не стою на месте и развиваюсь. В январе 2020 года я начал создавать новую игру более сложного уровня.

Я знаком с видами компьютерных игр: стратегия, головоломка, аркада, шутер, гонки, экшн и др. У меня появилось большое желание попробовать свои силы в создании новой собственной игры-аркада. Данный вид компьютерных игр, востребован у подростков для интересного времяпровождения. Но это не просто времяпровождения, игры такого типа еще и приносят пользу, это: развитие памяти, внимания, скорости реакции, пространственное и логическое мышление, а также с пользой проводить свободное время. Кроме того, данная игра имеет возможность играть двум участникам, друг против друга. Ученые считают, что компьютерные игры на Андроид типа головоломка, аркада, стратегия помогают людям пожилого возраста тренировать память, замедлять процесс старческой деменции (заболевание нервной системы, которое происходит вследствие поражения головного мозга, проявляется значительным снижением умственных способностей).

Для начала, я освежил знания в языке программирования C# (Visual Studio Code) и среде для создания игр Unity (игровой движок). А также мне потребуются при создании игры разработка сложных 3D объектов.

Я считаю, что теперь знаний для создания своей новой игры будет достаточно.

Цель – выбрать оптимальную концепцию создания игры «Energy Ball» типа аркада в среде разработки игр Unity и на языке программирования C#.

Задачи:

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

2. Выработать концепцию игры.

3. Создать пробный вариант игры и экспериментально проверить, выявить недостатки.

4. Создать оптимальный вариант.

5. Оценить полученный результат.

Аркада (англ.arcade game, arcade genre) — жанр компьютерных игр, характеризующийся коротким по времени, но интенсивным игровым процессом. В строгом смысле, аркадной считается игра для аркадных игровых автоматов. Также аркадными называют игры, портированные с аркадного автомата (стойка с аппаратурой для запуска игр).

К расцвету аркадных игр относят период с конца 1970-х до середины 1980-х, называя его золотым веком аркадных игр. Название «аркада» происходит от англ. Arcade — пассаж, крытая галерея магазинов, где традиционно размещались аркадные игровые автоматы.

Одной из первых аркадных игр является Computer Space, которая была создана в 1971 году. Она является первой промышленной электронной игрой данного жанра. Несмотря на своё название, которое начало ассоциироваться с играми данного типа только в конце 1970-х. Первые аркадные игры, такие как Asteroids, Battlezone, Star Castle использовали векторную графику для рендеринга, когда изображение строилось из линий. После появления цветной растровой графики появились мультяшные видеоигры и такие персонажи, как Pac-Man и Donkey Kong.

В середине 1980-х аркадные игры начали своё широкое распространение, становясь более разнообразными, как относительно интерфейса управления (аркадного автомата), так и в плане тематики, графики и жанров. С течением времени аркадные автоматы вытеснялись домашними системами, так как их графика начала обходить большинство аркадных игр, и таким образом к концу 1990-х аркадные автоматы покинули индустрию.

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

Классические аркады характеризуются следующими свойствами:

Игра на одном экране. В классических аркадах весь игровой процесс сосредоточен на одном экране. Прежде всего, это обусловлено исторически, что произошло из-за технических ограничений, но в то же время это значительно влияло на геймдизайн. Так, игроки в любой момент времени могли видеть весь игровой мир и принимать решения, исходя из полной информации о его состоянии. Множество игр жанра имело более одного экрана, и они сменяли друг друга как уровни. Характерные примеры Joust, Pac-Man, Mario Bros.

Бесконечная игра. Потенциально игроки могут играть в аркаду бесконечное время, и соответственно, не могут выиграть. Это влияло на то, что игроки делали вызов сами себе — насколько долго они смогут продержаться. Относительно геймдизайна в аркадах игрок никогда не выигрывал, и каждая игра заканчивалась поражением. В то же время, игры проектировались таким образом, чтобы со временем игроку становилось всё сложнее, и таким образом бесконечная игра предлагала бесконечную сложность. Данная ситуация изменилась с появлением рынка домашних компьютеров, когда издатели изменили своё желание, чтобы игроки проходили игру и после этого хотели купить новую.

Множество жизней. Обычно, классическая аркада предлагает игроку несколько попыток (жизней). Такой подход позволяет новичкам получить бо́льшую возможность изучить игровые механики до того, как игра заканчивается. Если игрок лучше понимал игру, то возрастала вероятность того, что он вернётся к ней снова. Данная особенность также позволяла предоставлять игрокам за их успехи дополнительные жизни.

Игровой счёт. Практически все классические аркады включают в себя игровой счёт, когда игрок получает очки за выполнение различных целей или задач. Например, в Centipedeигроки получают 1 очко за уничтожение гриба, 10 за сегмент многоножки, 100 за её голову, и 1000 за скорпиона. Здесь имеется другой важный концепт аркад, унаследованный от игр пинбола: очки позволяют игроку понять, насколько хорошо он играл, и, несмотря на то, что выиграть невозможно. При этом, типичное время игры среднего игрока составляет около двух минут, а у опытного - до десятков минут. На основании данной особенности у аркад, как правило, есть таблица рекордов.

Быстрое обучение, простой игровой процесс. Для классических аркад характерно то, что игрокам легко научиться геймплею, но становится практически невозможным стать мастером в игре из-за её сложности. Если игрок погибает в аркаде, то это практически всегда происходит по его вине.

Нет сюжета/истории. Классические аркады практически всегда избегали попыток рассказать какую-либо историю, и данная тенденция продолжается для современных аркад. Играм жанра всегда требовалось, чтобы игроки быстро поняли что происходит — это научная фантастика, война, спорт или что-то ещё. Геймдизайнеры аркадных игр не чувствовали, что им нужно наполнять свои миры чем-то и отдельно объяснять игрокам почему они должны стрелять в те или иные цели различной формы.

Игра на несколько игроков. Игроки могут играть друг с другом на одном экране или дистанционно. [1]

Основная часть

Выбор концепции игры

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

Язык программирования C#(произносится «си шарп») — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота как язык разработки приложений для платформы Microsoft .NET Framework. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. C# разрабатывался как язык программирования прикладного уровня для CLR (CommonLanguage Runtime (англ. CLR — общеязыковая исполняющая среда) — исполняющая среда для байт-кодаCIL (MSIL), в которой компилируются программы, написанные на .NET-совместимых языках программирования (C#, Managed C++, Visual Basic .NET, F# и прочие). CLR является одним из основных компонентов пакета Microsoft.NET Framework.) и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL (Base Class Library, или так называемая .NET FCL (англ. Framework Class Library), сокращённо BCL — стандартная библиотека классов платформы «.NET Framework».) [2].

На мой взгляд, C# - это идеально сбалансированный объектно-ориентированный язык программирования.

Но проблема заключалась в том, что я не очень хорошо рисую в графических редакторах, поэтому мне пришлось повысить уровень своих знаний в 3D-моделировании.

Использовать будем графический редактор «Cinema 4D» профессиональное программное обеспечение для создания трёхмерной компьютерной графики, включающее в себя средства моделирования. Данный редактор имеет условно-бесплатную версию, а также платную версию для использования в коммерческих целях.

Кроме того, мы использовали Adobe After Effects для создания анимации, видео и лого.

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

Варианты создания игры

Всего было три варианта создания игры.

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

Для этого, я решил сделать необычную платформу, что-то вроде тарелки которая отбивала бы Мяч в разные стороны. Такой вариант мне показался хорошим, так как он бы добавил динамичности игре. Также был план ввести в игру режим, в котором сражались бы сразу четыре игрока. (Приложение, Рис. 1).

Рис.1. Процесс создания игры в программе Unity.

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

Второй вариант: Во втором варианте я решил сделать арену поменьше, а Роботу разрешить двигаться только вправо и влево, но Мяч бы отбивался вверх и вниз. Также, было решено уйти от использования старой платформы, вместо этого я сделал поворот платформы с помощью виртуального стика (аналоговый стик — это устройство управления, в частности, управления играми, чья подвижность ограничена двумя с тепенями свободы).

Этот вариант мне не понравился тем, что за Мячом было очень сложно уследить, этому мешал как Робот, так и сама арена (Рис. 2).

Рис.2. Игровое поле второго варианта игры в программе Unity.

Третий вариант: В третьем варианте игрок управляет Роботом вправо и влево. С помощью платформы, прикрепленной к нему, он отбивает летящие в него Мячи. Перед Роботом находится специальная разрушаемая фигура без определенной формы, состоящая из блоков, за фигурой его противник.

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

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

Данный вариант мне понравился, в нем каждому игроку будет удобно играть, а самое главное понятно, что требуется для победы. Этот вариант игры я предложил протестировать своим одноклассникам.

Мнение Гаптрахманова Александра о созданной игре: «Интересное улучшение старой игры «Evading Ball». Игра динамичная и в нее интересно играть. На переменах в школе можно весело провести время, поиграть с другом на одном телефоне. По сравнению с прошлой игрой это очевидный шаг вперёд, было проделано намного больше работы, благодаря этому игра выглядит намного лучше».

Мнение Каткова Максима о созданной игре: «Игра понравилась. Очень интересно играть в нее с другом, совсем не жалко потраченного времени. Хотелось бы добавления большего количества различных косметических предметов и новых режимов».

Отличие игры «Energy Ball» от существующих

Dx-ball - игра спроектирована в 2D режиме, поэтому в ней нет никаких 3D моделей, также нет игры на нескольких игроков. Dx-ball была выпущена только для персональных компьютеров.

Arkanoid - игра была разработана только для игровых автоматов. Она уже устарела. Игра создана только для одного игрока в 2D режиме.

Таким образом, я могу сделать вывод, что третий вариант моей игры является оптимальным, игра оригинальна и такого варианта ещё нет.

Процесс создания "Energy Ball"

1. Создание проекта.

1) Заходим в среду разработки Unity и создаем новый проект нажатием на кнопку "New".

2) В появившемся окне даём название игре - Energy Ball.

3) Выбираем режим Universal Project Template, который позволяет использовать более улучшенное освещение и шейдеры (Рис. 3).

Р ис. 3. Создание проекта.

2. Создание игровой сцены.

1) Добавляем мячи. В окне “Hierarchy” наводим на кнопку “Create” – “3D object” – “Sphere”. Создаем два мяча и располагаем их в центре арены.

2) Добавляем порталы.

3) Добавляем блоки. В окне “Hierarchy” наводим на кнопку “Create” – “3D object” – “Cube”. Выставляем блоки в центре арены.

4) Добавляем стены. В окне “Hierarchy” наводим на кнопку “Create” - “3D object” - Cube”. Нажимаем на него в окне “Hierarchy” и в появившемся окне “Inspector” в компоненте “Transform” Увеличиваем значение х в строке Rotation. Далее копируем стену и выставляем в форме Квадрата.

5 ) Добавляем порталы и Роботов. Они были сделаны в специальной программе 3D моделирования “Cinema4D”, поэтому перетаскиваем файл с моделями в окно “Project” и добавляем его на сцену. Добавляем четыре портала и размещаем их в нужных местах, также добавляем двух Роботов, которых размещаем напротив друг друга (Рис. 4).

Рис. 4. Вид сцены.

6 ) Настройка камеры. Выбрав “Main Camera” в окне “Hierarchy” изменил в компоненте “Transform” значение “Position” по y, и значение “Rotation” по x (Рис. 5).

Рис. 5. Настройка камеры.

3. Работа со скриптами. Создание скриптов происходит нажатием правой кнопки мыши в окне “Project”, далее, в появившемся окне выбираем “Create” - “C# script”.

Мяч.

1) Создаем скрипт для функций объекта Мяч (Рис. 6). 

Рис. 6. Фрагмент скрипта для функций объекта Мяч.

2) Перетаскиваем его на объект Мяч.

3) Добавляем на объект Мяч компоненты “BoxCollider” (Окно “Inspector” - “Add Component”, также добавляем компонент “Rigidbody”.

4 ) Добавляем дополнительный пустой дочерний объект к объекту Мяч, называем его “To Point” к которому Мяч будет запускаться (Рис. 7).

Рис. 7. Мяч в окне “Hierarchy”

5) Перетаскиванием главного объекта в окно “Project” сохраняем его (Рис. 8).

Рис. 8. Все компоненты объекта Мяч.

2. Управление Роботом.

1) Создаем скрипт для управления Роботом (Рис.9).

Рис. 9. Скрипт для управления Роботом.

2) Перетаскиваем скрипт на Роботов.

3) Далее создаем четыре кнопки (окно “Hierarchy” - “Create” - “UI” - “Button”) (Рис.10).

Р ис. 10. Расположение кнопок.

4 ) На каждую кнопку добавляем компонент “Event Trigger”, далее “Add New Event Type” добавляем методы “PointerDown” и “PointerUp”. Перетаскиваем объект с нужным Роботом в левое окно компонента, добавляется скрипт, который мы перетащили ранее. В правом окне выбираем соответствующий метод из скрипта (Рис.11).

Рис. 11. Добавление компонента “Event Trigger”.

3. Ворота.

1) Воротами являются ранее созданные стены за Роботами.

2) В компоненте “Box Collider” этих стен ставим галочку в пункте “IsTrigger”.

3) Добавляем на скрипт Ворота (Рис. 12).

Рис. 12. Фрагмент скрипта на Ворота.

4. Таймер.

1) Создаем скрипт на объект Таймер (Рис. 13).

Рис. 13. Скрипт на объект Таймер.

2 ) Перетаскиваем его на объект Камера.

3) Далеедобавляем Text (Окно “Hierarchy” - “Create” - “UI” - Text).

4) И перетаскиваем его в настройки скрипта (Рис. 14).

Рис. 14. Настройки скрипта Камера.

5.Порталы.

1) Создаем скрипт работы порталов.

2) Портал копируем несколько раз нажатием на клавиши (Ctrl - D).

3) Размещаем каждый портал в нужном месте.

4) Далее указываем названия порталам, чтобы работал скрипт.

6. Усиления.

1) Добавляем две кнопки (“Create” - “UI” - “Button”) и ставим их между кнопками управления Роботами.

2) Создаем скрипт и прикрепляем его к объекту MainCamera (Рис. 15).

Рис. 15. Фрагмент скрипта, прикрепленного к объекту MainCamera.

3)Добавляем значение метода Push в компоненте “Button”.

4. Создание меню.

1) Создаем новую сцену (Окно “Project” – “Create” – “Scene”).

2) Создаем кнопки старта игры, настроек, магазина и выхода (“Create”- “UI” –“Button”).

3) В компоненте “Image” объекта “Button” добавляем заранее загруженную

в проект картинку.

4) Создаем панели, которые будут появляться по нажатии на данные кнопки (“Create” – “UI” – “Panels”).

6) На панелях создаем дополнительные кнопки.

7) Создаем скрипт для работы с Меню (Рис.16).

Рис. 16. Фрагмент скрипта для работы с Меню.

8 ) Назначаем всем кнопкам заданные им методы (Рис.17).

Рис. 17. Вид Меню. Рис. 18. Вид игровой сцены.

5. Компиляция игры.

1) Заходим в “File” - “Build Settings”.

2) Добавляем все сцены игры нажатием на кнопку “Add Open Scenes”.

3) Выбираем платформу Android.

4) Нажимаем на кнопку “Build” (Рис.19).

Рис. 19. Компиляция игры.

Заключение

У меня получилось создать интересную и оригинальную игру для мобильных устройств на базе Android. Я доволен результатом, так как смог улучшить свои навыки в программировании и понял, как лучше работать с большими скриптами (программным кодом). Кроме того, я получил огромный опыт работы в команде и осознал, как создавать игры для нескольких человек. Разработанная мною игра была мне нужна не только для того, чтобы играть. Это моя допрофессиональная подготовка. Эти практические знания будут необходимы в дальнейшей учебе.

В созданную игру EnergyBall могут играть младший, средний и старший школьный возраст, а также взрослые и пожилые люди (ограничение 7+). В дальнейшем планируется множество нововведений таких как, добавление в игру новых режимов, новых роботов и вариантов их раскраски. Созданную игру я разместил на GooglePlay, чтобы каждый желающий мог скачать её и использовать в своей жизни.

Видео-презентация игры на Яндекс-Диске https://yadi.sk/i/m3Ayi8HHu6-C7Q .

Список использованных источников

Интернет-ресурсы

Аркада (игра) // https://ru.wikipedia.org. URL: https://ru.wikipedia.org/wiki/Аркада_(игра) (дата обращения: 03.10.2020).

С Sharp // https://ru.wikipedia.org. URL: https://ru.wikipedia.org/wiki/C_Sharp (дата обращения: 03.10.2020).

Программное обеспечение

Условно-бесплатная версия графического редактора «Cinema 4D» профессиональное программное обеспечение для создания трёхмерной компьютерной графики, включающее в себя средства моделирования.

Межплатформенная среда для разработки компьютерных игры Unity.

Язык программирования С# (Visual Studio Code).

Adobe After Effects – программа для создания анимации, видео и лого.

Просмотров работы: 138