АННОТАЦИЯ 3
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ И ТЕРМИНОВ 4
ВВЕДЕНИЕ 6
Актуальность темы 6
1 Анализ предметной области 8
1.1 Основные элементы и механики игр жанра Tower Defence 8
1.2 Анализ представителей жанра 9
1.2.1 Kingdom Rush (Ironhide Game Studio) 10
1.2.2 Bloons TD 6 (Ninja Kiwi) 11
1.2.3 Plants vs. Zombies (popcap Games) 13
1.3 Вывод 15
1.4 Ключевые механики успешных игр 15
1.5 Выбор инструментов для разработки 16
2 Проектирование 18
2.1 Концепция игры 18
2.2 Описание игрового процесса 19
2.2.1 Основные механики 20
2.3 Проектирование врагов и башни 21
2.3.1 Проектирование врагов 21
2.3.2 Проектирование башни 21
3 Реализация 23
3.1 Файловая структура 23
3.2 Взаимодействие между игровыми компонентами 24
3.3 UML диаграммы классов 26
3.4 Реализация основных механик 29
3.4.1 Генерация волн и искусственный интеллект врагов 29
3.4.2 Система ресурсов и внутриигровой экономики 30
3.4.3 Управление башней и механика атаки 31
3.4.4 Случайная генерация улучшений 32
4 Создание основных объектов 34
4.1 Создание башен 34
4.2 Создание врагов 41
4.3 Реализация игрового магазина 45
4.4 Реализация пользовательского интерфейса 47
4.4.1 Кнопка паузы 47
4.4.2 Информационная панель 48
4.4.3 Основное заклинание 49
4.4.4 Панель статуса 50
4.4.5 Панель времени 50
4.4.6 Панель улучшений 51
4.4.7 Счётчик волн 51
4.5 Реализация игрового уровня 51
ЗАКЛЮЧЕНИЕ 53
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 55
Актуальность темы
Компьютерные игры сегодня — это не просто развлечение, а целый мир, объединяющий современные технологии и творчество [6]. За каждой игрой стоит масштабная и кропотливая работа целой команды специалистов: программирование сложных систем, создание графики, написание захватывающего сюжета и разработка игровых механик, которые делают процесс по-настоящему увлекательным [14]. Индустрия видеоигр стремительно развивается, внедряя инновационные технологии и открывая новые горизонты, и всё больше творческих людей стремятся не только наслаждаться готовыми проектами, но и создавать собственные уникальные игры.
Платформа Unity особенно привлекательна для этих целей, предоставляя разработчикам полный набор необходимых инструментов. [5] Разработчики по всему миру — от начинающих энтузиастов до опытных профессионалов — высоко ценят её за впечатляющую гибкость, интуитивно понятный интерфейс и невероятно мощный инструментарий для воплощения творческих замыслов. Unity предоставляет разработчикам практически безграничные возможности для реализации любой идеи: от создания потрясающей визуализации и спецэффектов до проектирования сложных систем искусственного интеллекта, определяющих поведение персонажей, и детального физического моделирования игрового мира. Более того, универсальность платформы позволяет создавать игры для самых разнообразных устройств и платформ — от мощных игровых компьютеров до портативных смартфонов, планшетов и игровых консолей. Именно эта многогранность и доступность делает Unity идеальным выбором для всех, кто мечтает начать свой увлекательный путь в мире разработки компьютерных игр.
В рамках данной выпускной квалификационной работы будет разработана компьютерная игра в жанре Tower Defence. Данный жанр 6
отличается стратегической направленностью и предполагает защиту базы или территории от волн противников путём размещения защитных сооружений (башен) на игровом поле. Популярность жанра обусловлена его динамикой, разнообразием механик и возможностями для тактического планирования [20], что делает его интересным как для игроков, так и для разработчиков.
Цель: спроектировать и реализовать компьютерную игру в жанре Tower Defence с использованием игрового движка Unity.
Для достижения данной цели в ходе выполнения работы поставлены следующие задачи:
1. Проанализировать существующие решения в жанре Tower Defence и определить ключевые игровые механики ;
2. Разработать концепцию и архитектуру игры, включая уровни и интерфейс пользователя;
3. Провести выбор инструментов для разработки;
4. Реализовать основные игровые компоненты с применением среды Unity и языка программирования C#;
5. Реализовать игру.
В результате выполнения данной выпускной квалификационной работы была успешно реализована компьютерная игра в жанре Tower Defence с использованием игрового движка Unity и языка программирования C#. В соответствии с поставленной целью был создан функциональный программный продукт, отражающий ключевые принципы выбранного жанра. Разработка велась с соблюдением современных подходов к архитектуре программного обеспечения, а также с применением инструментов и технологий, обеспечивающих модульность, масштабируемость и читаемость кода.
В рамках работы были успешно решены следующие задачи:
— проведён анализ жанра и аналогичных игровых проектов с целью выделения типичных механик и подходов к проектированию;
— спроектирована внутренняя архитектура игры на основе объектно-ориентированных принципов;
— реализована система появления и навигации врагов;
— создано поведение башни с автоматической стрельбой, управлением углом поворота, выбором цели и возможностью применения улучшений;
— разработан модуль магазина с системой случайного выбора апгрейдов и возможностью масштабирования ассортимента;
— реализован пользовательский интерфейс, включая информационные панели, меню паузы, индикаторы и магазин;
— реализовано игровое приложение.
Итоговая версия игры демонстрирует устойчивую работоспособность, логически завершённую структуру и реализацию всех запланированных функций. Архитектура проекта построена с учётом возможности расширения:
предусмотрена лёгкая интеграция новых типов врагов, башен, улучшений и уровней без необходимости пересмотра базовых компонентов [10, 20].
Полученные результаты обладают практической ценностью и могут быть использованы как основа для дальнейших проектов.
Таким образом, все поставленные задачи были успешно выполнены, а заявленная цель полностью достигнута. Разработанное приложение соответствует современным требованиям к игровым продуктам и демонстрирует готовность к дальнейшему развитию.
1. Албахари Дж., Албахари Б. C# 7.0. Справочник. Полное описание языка. - СПб.: Питер, 2017.
2. Костичев Д. А. Создание игрового приложения для разных платформ средствами Unity // Информатика: проблемы, методология, технологии. - 2016. - № 2. - С. 57-62.
3. Кущий Д. Н., Диденко А. Б. Основные этапы разработки компьютерной игры // Системы управления и информационные технологии. - 2022. - № 1. - С. 134-138.
4. Сахибгареева Г. Ф., Кугуракова В. В. Практики балансирования компьютерных игр // Программные системы: теория и приложения. - 2022. - № 3(55). - С. 92-100.
5. Хокинг Дж. Unity в действии. Мультиплатформенная разработка на C#. - СПб.: Питер, 2018.
6. Шелл Дж. Игровой дизайн. Как создать игру, в которую будут играть все. - СПб.: Питер, 2015.
7. Вики-страница "Одиночка (шаблон проектирования)" // Википедия.
[Электронный ресурс]. - URL:
ййрзУ/ги^ктреШа.огд^кйОдиночка^шаблон-проектирования) (дата
обращения: 13.04.2025).
8. Хабр. Одиночка в программировании - шаблон проектирования. [Электронный ресурс]. - URL: https://habr.com/ru/articles/421523/ (дата обращения: 13.04.2025).
9. Хабр. Паттерны проектирования - State. [Электронный ресурс] - URL: https://habr.com/ru/articles/131077/ (дата обращения: 15.04.2025).
10. Хабр. Сложные архитектуры: модульность. [Электронный ресурс] - URL: https://habr.com/ru/articles/646039/ (дата обращения: 17.04.2025).
11. Хабр / Otus. Архитектура игровых систем. [Электронный ресурс]. -
URL: https://habr.com/ru/companies/otus/articles/779914/ (дата обращения:
23.11.2024).
12. Adams E., Dormans J. Game Mechanics: Advanced Game Design. - New Riders, 2012.
13. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. - Addison-Wesley, 1995.
14. Schell J. The Art of Game Design: A Book of Lenses. - CRC Press, 2019.
15. Asset Store // Unity. [Электронный ресурс]. - URL: https://assetstore.unity.com/ (дата обращения: 15.05.2025).
..26