Аннотация
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 6
ВВЕДЕНИЕ 7
1 Актуальность жанра платформер 9
2 Анализ игрового пространства 11
2.1 Обзор аналогов 11
2.2 Обзор сред разработки игр 13
2.3 Определение ключевых особенностей и целей 14
2.4 Анализ методологий, расчет требований, подготовительное
проектирование 17
2.4.1 Общая информация об игровом процессе 17
2.4.2 Функциональные и нефункциональные требования, диаграмма
вариантов использования 18
2.4.3 Внешние спецификации 21
3 Дизайн игрового приложения 24
3.1 Архитектура игры 24
3.1.1 Классы игрового приложения 25
3.1.2 Состояния модели противника 33
3.2 Диаграмма состояний игры 34
4 Реализация игрового приложения 36
4.1 Структура проекта 36
4.2 Реализация игрового объекта Player 38
4.3 Реализация игрового объекта Enemy 39
4.4 Реализация механики порталов 40
4.5 Выполнение фоновых и декоративных элементов 45
4.6 Реализация графического интерфейса 48
4.7 Реализация внутриигровой анимации 49
ЗАКЛЮЧЕНИЕ 52
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 53
Приложение А 55
Приложение Б 56
Приложение В 57
Приложение Г 58
Приложение Д 59
Приложение Е 60
Приложение Ж 63
Разработка игровых приложений никогда не была легкой задачей, особенно для AAA-студий, тратящих годы на отлаженные подходы, чтобы преодолеть трудности, риски и добиться успеха в выпуске продукта для масс геймеров по всему миру. Важно отметить, что существует множество жанров, которые может иметь игра одновременно, с другой стороны, игровой продукт может иметь один жанр, но в современной игровой индустрии такой подход может определять простоту и не претендовать на многогранность продукта. В то же время, даже поверхностный игровой продукт может подарить аудитории незабываемые впечатления, если опираться на тенденции качества. Существуют заметные тенденции качества, которым должно следовать игровое приложение: интересный сюжет, гибкость, постоянный вызов, сочетание веселья и реализма, а также немедленное и полезное вознаграждение [1]. Эти тенденции служат и воплощают равновесие между хорошей, плохой или посредственной игрой, но не обязательно, чтобы все эти критерии соблюдались на практике, наоборот, какой-то критерий может перевешивать другой, и это влияет только на выбор игрока, потому что все зависит от качества исполнения. Если игровой продукт придерживается узконаправленного подхода, он может следовать нескольким или одному качественному тренду и выполнять его максимально качественно, с другой стороны, если игровое приложение придерживается многогранного подхода, оно должно придерживаться различных качественных трендов и выполнять каждый из них не хуже остальных, иначе неизбежна посредственность (на практике это исключительно сложно). Наконец, плохой игровой продукт означает пренебрежение любыми тенденциями качества, что проявляется в плохом игровом опыте и разочаровании конечных пользователей.
Не менее важной частью разработки игрового продукта является выбор надежной и подходящей платформы для разработки игр, называемой "игровым движком". Поэтому с появлением платформ, называемых игровыми движками, помогающих выполнять общие задачи, связанные с игрой, такие как рендеринг, вычисления, связанные с физикой и вводом, стали решением для продуктивной разработки игр, позволяющим собирать многократно используемые компоненты, которыми можно манипулировать для воплощения игры в жизнь[2]. Более того, игровой движок может быть фундаментальной игровой площадкой, которая будет использоваться для разработки следующего проекта и, таким образом, работать как предшественник-платформа с обновленными возможностями. Суть игровых движков заключается в том, чтобы быть абстракцией платформы, поэтому внесение нескольких изменений в исходный код позволяет геймерам играть в игры на различных платформах - от персональных компьютеров до мобильных устройств. По этой причине разработка игр требует профессиональных навыков в программировании, особенно инженерных, когда видеоигра уникальна и требует разработки совершенно нового игрового движка. В данной дипломной работе для создания игры требуется знание языка программирования и отлаженная платформа игрового движка под названием Unity. Всегда существовал спор о том, какую платформу выбрать, какие преимущества получат разработчики от внедрения существующих платформ вместо создания с нуля, и каких подходов следует придерживаться.
Следовательно, между этими двумя сущностями, такими как игра и игровой движок, должна быть синергия, потому что не каждое видение игры может быть реализовано в игровом движке и наоборот.
Тем не менее, для демонстрации процесса разработки игры и игровой механики, которая может служить скелетом для окончательного игрового продукта, облегчая будущие этапы разработки, целью исследования является выполнение таких этапов разработки игры, как анализ области, проектирование и реализация, опираясь на проверенный жанр игры под названием "платформер" с побочными жанрами в нем, используя игровой движок Unity.
Результаты:
1. Была выбрана методология разработки, сформулированы функциональные и нефункциональные требования, составлена диаграмма использования и построены прототипы.
2. Были спроектированы классы игрового приложения и разработана взаимосвязь состояний противника.
3. Была разработана механика расстановки порталов и перемещения между ними.
4. Для игровых меню были созданы иерархии игровых объектов. Реализованы враг, игрок, фон, декоративные элементы и GUI. Созданы внутриигровые анимации.
Выводы:
1. Благодаря проведенному анализу предметной области, схожих аналогов, современных игровых движков и методологии разработки, для процесса разработки был выбран игровой движок Unity. После изучения видения игры были определены требования к проекту и созданы прототипы игры.
2. Разработка различных состояний, реализованных в классах противника, способствовала созданию достойного искусственного интеллекта, который реагирует на действия игрока, и, похоже, может поставить перед собой задачу победить его. Создание игровых состояний облегчило понимание игровой модели, поскольку у нас есть четкое представление о том, где начало и конец.
3. Разрабатывая пользовательский интерфейс, игрока, противника, анимацию, фон и декоративные объекты на игровых сценах, была создана единая картина того, что было описано в главе дизайн.
1. Dustin Tyler. " What Makes a Good Game so Much Fun? " 2022. URL: https://www.gamedesigning.org/gaming/great-games/.
2. Falk Anderson, Steffen Engel, Leigh McLoughlin, Peter Comninos. "The
Casefor Researchin Game Engine Architecture. URL:
http: //eprints .bournemouth.ac. uk/24322/1/FP8GEA .pdf.
3. 10 Types of Platforms in Platform Video Games . 2012. URL:
https://www.idtech.com/blog/10-types-of-platforms-in-platform-video-games
4. Loveridge, Sam. "20 Things you didn't know about Crash Bandicoot". 2016. URL: https://www.digitalspy.com/videogames/a806253/20-things-you-didnt- know-about-crash-bandicoot/
5. Gallagher, Jason. "10 Best Castlevania Games Ever Made". 2019. URL: https://www.denofgeek.com/games/10-best-castlevania-games-ever-made/
6. Toftedahl, Marcus. "Which are the Most Commonly Used Game Engines?".
2019. URL:
https://www.gamasutra.com/blogs/MarcusToftedahl/20190930/350830/Which_are _the_mo st_commonly_used_Game_Engines.php
7. Anderson, Benjamin. "What is the Best Game Engine: is Godot Right for You?". 2020. URL: https://www.gamesindustry.biz/articles/2020-04-14-what-is- the-best-game-engine-is-godot-right-for-you#section-2
8. Sicienski, Marie. "What is the Best Game Engine: is Unity Right for Y ou?".2020. URL: https: //www.gamesindustry.biz/articles/2020-01-16-what-is- the-best-game-engine-is-unity-the-right-game-engine-for-you
9. Petty, Josh. "Top 12 Free Game Engines for Beginners & Experts Alike".2020 URL: https://conceptartempire.com/free-game-engines/
10. Рамбо Дж. "UML 2.0. Объектно-ориентированное моделирование и разработка." / Дж. Рамбо, М. Блаха. - СПб. : Питер, 2007. - 544 с.
11. Tidwell J. "Проектирование интерфейсов". - США: O'Reilly Media, 2004. - 578 с
12. Gold J. "Object-Oriented Game Development". - ВЕЛИКОБРИТАНИЯ: Pearson Education Limited, 2004. - 404 с.
13. Gregory J. "Game Engine Architecture". - США: A K Peters/CRC Press, 2009. - 864 с.
14. Руководство по Unity3D. [Электр. источник] URL:
http: //docs. unity3d. com/Manual/index.html.
15. Gamma E., Helm R., Johnson R., Vlissids D. "Object-oriented programming techniques. Design patterns". - СПб.: Питер, 1994 г. -- 395 с...21