1.09M
Категория: ПрограммированиеПрограммирование

Компьютерная 2D игра «Нейроны и герои»

1.

Факультет компьютерных наук
Образовательная программа «Программная инженерия»
КУРСОВОЙ ПРОЕКТ
КОМПЬЮТЕРНАЯ 2D ИГРА
«НЕЙРОНЫ И ГЕРОИ»
Выполнил студент группы БПИ-201
Красковский Дмитрий Дмитриевич
Научный руководитель:
Старший преподаватель
Департамента программной
инженерии факультета компьютерных наук
Пантюхин Дмитрий Валерьевич
Москва, 2022

2.

Факультет компьютерных наук, департамент программной инженерии
ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
Предметная область:
• Аркадная игра с простым, но интенсивным процессом
• Изучение искусственного интеллекта противника, используя средства геймификации
“Neurons and Heroes” - игра, в которой можно узнать много нового в области
искусственного интеллекта, но при этом отдохнуть и насладиться интересным игровым процессом. В перед
началом игры пользователю предлагается изменить параметры искусственного интеллекта противника.
Игра завершается, когда герой “освободил принцессу” или был настигнут врагами
2

3.

Факультет компьютерных наук, департамент программной инженерии
АКТУАЛЬНОСТЬ РАБОТЫ
С каждым годом игровое сообщество развивается всё быстрее, и быстрее. Игры, выпускаемые большими
компаниями, всё меньше похожи на игры, которые выпускались несколько лет назад. В связи с этим, у
многих людей возникает чувство ностальгии, когда они притрагиваются к играм, которые не похожи на
современные большие проекты, а напоминают аркады из игровых клубов. Данное приложение позволяет
испытать это чувство.
Ещё с каждым ходом всё чаще поднимается вопрос искусственного интеллекта – всё больше людей
стремяться изучить современные технологии в этом направлении. В связи с этим данная игра будет
полезна с обучающей точки зрения – искусственный интеллект противников, построенный на алгоритме
поиска пути в графе A* (“A-star”) можно будет настраивать, изменяя некоторые параметры в меню настроек
3

4.

Факультет компьютерных наук, департамент программной инженерии
ЦЕЛЬ И ЗАДАЧИ РАБОТЫ
Цель работы:
Сознание однопользовательской игры, напоминающей ряд старых аркадных игр, с возможностью
настраивать искусственный интеллект противника
Задачи работы:
1. Анализ существующих решений;
2. Извлечение функциональных требований;
3. Выбор технологий для реализации;
4. Изучение выбранных технологий;
5. Создание уровней (карт) для игры;
6. Реализация функционала героя;
7. Реализация искусственного интеллекта противников;
8. Разработка GUI главного меню и меню настроек;
9. Связывание параметров искусственного интеллекта противников и параметров в меню настроек;
10. Разработка технической документации.
4

5.

Факультет компьютерных наук, департамент программной инженерии
АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ
На момент создания приложенния существует множество как отечественных, так и
зарубежных аналогов за счёт простоты создания. Самая известная и самая первая
– это Pac-Man, популярность которого никто не смог переплюнуть. Все остальные
игры, находятся в тени этой игры, но бывают исключения: например Tomb of the
Mask. Это происходит из-за того, что механика игры у всех однообразная. Данная
игра будет отличаться своей информативностью и полезностью, так как в
процессе игры пользователь ознакамливается с искусственным интеллектом,
меняя параметры и осознавая, какие из них меняют сложность игры.
Другой пример популярного, но не похожего на Pac-Man аналога – это Super Mario.
Главная цель этой игры – тоже спасти принцессу, избежав на своём пути
противников. Было выпущено много пародий на эту игру, но игра “Neurons and
Heroes”, как и в прошлом примере, нечто большее – за счёт своей обучающей
составляющей.
5

6.

Факультет компьютерных наук, департамент программной инженерии
ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
Список требований
• Управление персонажем, а также отображение его сверху;
• Инициализация карты, случайным образом выбранной из списка карт;
• Инициализация героя, противника и всех сопутствующих объектов игры;
• Инициализация объекта «принцесса» при приближении героя к заданной точке;
• Изменение настроек искусственного интеллекта противника с последующим его анализом;
• Переход из игры в меню и наоборот.
6

7.

Факультет компьютерных наук, департамент программной инженерии
ОПИСАНИЕ РЕАЛИЗАЦИИ
Общая схема работы приложения
7

8.

Факультет компьютерных наук, департамент программной инженерии
ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ РЕАЛИЗАЦИИ
• Unity 2020.3.32f1
• JetBrains Rider 2022.1.1
• Figma
• C# v.9.0
8

9.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Главное меню
9

10.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Меню настроек
Здесь находятся все параметры,
характеризующие искусственный
интеллект, которые можно изменить и
опробовать в игре. К этим параметрам
даются пояснения. В процессе разработки
было решено выбрать английский язык,
для более широкой аудитории, а также из
соображений, что в игру будут играть
люди, давно занимающиеся обучением и
знающие английский язык.
10

11.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Меню настроек
• Heruistic – выбор функции, используемой для оптимизации поиска пути в графе
• Heruistic scale - Если используется значение меньше 1, навигатор будет искать
больше узлов (медленнее). Если используется значение 0, алгоритм поиска пути
будет сведен к алгоритму Дейкстры. Это эквивалентно установке для эвристики
значения None. Если используется значение больше 1, поиск пути (обычно) будет
быстрее, потому что он расширяет меньшее количество узлов, но пути могут
больше не быть оптимальными (т.е. кратчайшими возможными путями).
11

12.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Меню настроек
• Update path rate – частота, с которой обновляется граф пути
• Full get nearest search – если стоит значение true, то будет осуществляться
полный поиск в графе с перебором всех возможных путей. Это замедлит работу
ИИ, но может немного оптимизировать путь.
12

13.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Основная игра
При запуске игры случайным образом
выбирается карты. Игроку надо добраться
до противоположного края карты, спасти
принцессу и вернуться обратно, избежав
столкновения с врагами, которые будут
либо приследовать его, либо отслеживать
периметр (в зависимости от выбранных
игроком параметров их искусственного
интеллекта)
13

14.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Основная игра
Рис. 1
Главный игрок
Рис. 2
Один из врагов
Рис. 3
Темница, в которой
заточена принцесса
Рис. 4
Принцесса, которая двигается
за героем после спасения
14

15.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Код
Перемещение главного игрока
Спасение принцессы
15

16.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Код
Игрок покидает пещеру
Игра завершается
16

17.

Факультет компьютерных наук, департамент программной инженерии
ДЕМОНСТРАЦИЯ ПРИЛОЖЕНИЯ
Код
Применение введёных пользователем настроек
Обновление графа, по которому
перемещаются враги
17

18.

Факультет компьютерных наук, департамент программной инженерии
ПУТИ ДАЛЬНЕЙШЕЙ РАБОТЫ
1. Добавление новых параметров, характеризующих работу ИИ противника
2. Сделать больше карт, которые будут выбираться случайным образом
3. Заменить спрайты, из которых состоит карта, на спрайты стен, используя Tilemaps – инструмент Unity
4. Добавить более подробное и понятное описание к каждому параметру ИИ противника
5. Добавить звуки происходящих событий
6. Сделать процесс игры более разнообразным, добавляя новые сложности (например ключ, без которого
не спасти принцессу)
7. Сделать возможность выбора русского языка
18

19.

Факультет компьютерных наук, департамент программной инженерии
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
• Unity Documentation [Электронный ресурс] / Документация Unity, используемая для конструирования
приложения. URL: https://docs.unity.com/ (дата обращения: 01.05.2022) Режим доступа: свободный
•A* Project [Электронный ресурс] / Проект, используемый для подключения искусственного интелекта.
URL: https://arongranberg.com/ (дата обращения: 01.05.2022) Режим доступа: свободный
• Документация по C# [Электронный ресурс] / Используется для написания скриптов в конструкторе Unity. URL:
https://docs.microsoft.com/ruru/dotnet/csharp/ . (дата обращения: 1.05.2022) Режим доступа: свободный
• Обучающие статьи по Unity3D [Электронный ресурс] URL: https://unity3d.com/learn/tutorials (дата обращения:
1.05.2022) Режим доступа: свободный.
• Список относительно старых игр [Электронный ресурс] / Использовал для нахождения косвенных и прямых
конкурентов. URL: https://goldies.ru/games/?genre=ARCADE (дата обращения: 14.05.2022) Режим доступа:
свободный
19

20.

Спасибо за внимание!
Красковский Дмитрий
Дмитриевич
[email protected]
Москва - 2022
English     Русский Правила