Вы находитесь на странице: 1из 33

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

Кафедра веб-технологий и компьютерного моделирования

КОЗАК
Дмитрий Владимирович

РАЗРАБОТКА ИГРОВОГО ПРИЛОЖЕНИЯ

Дипломная работа

Козак Дмитрий Владимирович


студент 4 курса, специальность
«Веб-программирование и интернет-
технологии»

Научный руководитель:
старший преподаватель
Политаев Дмитрий Николаевич

Минск, 2020

1
СОДЕРЖАНИЕ

Введение.........................................................................................................................................3
ГЛАВА 1.........................................................................................................................................5
ПОСТАНОВКА ЗАДАЧ...............................................................................................................5
1.1 Описание предметной области...............................................................................................5
1.2 Модель предметной области..................................................................................................5
1.3 Анализ существующих аналогов...........................................................................................6
1.4 Функциональная модель игры................................................................................................8
ГЛАВА 2.........................................................................................................................................9
ОБЗОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ, ИСПОЛЬЗУЕМЫХ ПРИ СОЗДАНИИ
ИГРОВОГО ПРИЛОЖЕНИЯ.......................................................................................................9
2.1 Задачи, решаемые при разработке компьютерной игры.....................................................9
2.2 Движки игр...............................................................................................................................9
2.3 Выбор и обоснование движка..............................................................................................11
ГЛАВА 3.......................................................................................................................................12
ПРАКТИЧЕСКАЯ ЧАСТЬ.........................................................................................................12
3.1 Описание Unity......................................................................................................................12
3.2 Разработка компьютерной игры...........................................................................................14
3.3 Разработка дизайна................................................................................................................16
ГЛАВА 4.......................................................................................................................................18
ОПИСАНИЕ ИГРЫ.....................................................................................................................18
4.1 Программно-аппаратные ресурсы.......................................................................................18
4.2 Демонстративный пример работы игры..............................................................................18
4.3 Тестирование..........................................................................................................................23
Заключение...................................................................................................................................25
Список использованных источников:........................................................................................26
Приложение А..............................................................................................................................27

2
ВВЕДЕНИЕ
Тема данной дипломной работы – компьютерная игра «Mine&Slay»,
которую можно открыть на любом компьютере.
Данная дипломная работа была выполнена с целью практического
освоения основных приемов и правил создания компьютерных игр средствами
игрового движка конструктора Unity.
В наше время большой популярностью пользуются компьютерные игры.
Техника и информационные технологии развиваются быстро и стремительно.
Мир компьютерных игр уже давно богат своим разнообразием, но
персональные компьютеры постоянно совершенствуются, приобретают новые
более мощные технологии. Именно благодаря этому появляется возможность к
созданию гораздо более масштабных и сложных игр.
В настоящее время, изо дня в день, разрабатывается много игр
различного характера, от простых до совершено уникальных проектов. Игры –
это уже неотъемлемая часть развлечений. На улице, в метро, на работе можно
встретить человека, который проводит свободное время за любимой игрой.
Сегодня игры как будто проходят стадию «эволюционирования», ранее были
простые 2D игры, сейчас – это 3D игры с неимоверной графикой и
спецэффектами, для создания которых используются целые команды
разработчиков, дизайнеров и многих других профессионалов.
Моя же компьютерная игра предназначена для людей, которые любят
соревновательный элемент и незатейливый геймплей, игру, которую можно
поиграть и в автобусе и на перемене.
Цель моей работы – разработка компьютерной игры «Mine&Slay» в
мощном игровом движке для создания игр Unity.
Для выполнения работы были поставлены следующие задачи:
 проанализировать предметную область;
 составить необходимые схемы, графики для понятия логики и
структуры работы разработки;
 проанализировать аналоги игр в зоне интернета;
 произвести обзор инструментальных средств, которые будут
использованы при разработке;
 разработать компьютерную игру «Mine&Slay»;
 произвести тесты на выявление неисправностей и багов.
В исследование вошло:
изучение материалов для реализации своей работы;
изучение всевозможных функции игрового движка Unity;
изучение визуального программирования, а также языка
программирования C#.
Практическая значимость моей исследовательской работы заключается в
3
том, что результаты исследования могут быть использованы в реализации
аналогичных приложений на различных движках и платформах.

4
ГЛАВА 1
ПОСТАНОВКА ЗАДАЧ

1.1 Описание предметной области


Интерес к исследованию данной работы представляющую часть
реального мира и называется предметной областью.
У меня интерес к разработке компьютерной игры в Unity вызван
удобством разработки, довольно-таки простым интерфейсом, своей
бесплатностью и хорошим функционалом.
Основным назначением игр является развлечение человека в его
свободное время. Моя игра представляет собой прогулку виртуального
персонажа, цель которого во время своего путешествия узнать, что происходит
не так и как это устранить, чтобы стало лучше.
Такая разновидность игры включает в систему диалоги и боевую
систему с определенными персонажами и способностями.
Проанализировав предметную область, можно сделать вывод, что
разработка игры актуальна, хоть и существует много похожих игр уже
имеющих большую популярность. Все же моя разработка более интересна и
должна заинтересовать достаточное количество пользователей.
Цель разработки компьютерной игры не только в учебном плане, но и
так же в использовании возможности стать хорошим разработчиком игр. В
следствие успеха данного проекта появится хорошая возможность
последующего хорошего заработка.

1.2 Модель предметной области


Компьютерная игра «Mine&Slay» включает в себя следующий
функционал:
Звуковое оформление игры.
Изменение настроек со следующими параметрами:
 полный экран;
 громкость;
 разрешение;
 графика.
Начало игры:
 управление движением героя;
 боевая система;
 система диалогов;
 переход между уровнями.
Модель данных, взаимодействие пользователя на логическом уровне к
данным определения объектов. С помощью логической модели можно
5
проследить структуру приложения, то, как пользователь будет
взаимодействовать с ним. Понять приложение как единое целое.
Логическая функциональная модель графически опишет весь
перечисленный функционал игры, покажет состояние всех объектов сущностей
предметной области и взаимосвязей между ними, который будет воспроизведен
в компьютерной игре «Mine&Slay».
Исходя из полного определенного функционала программы, была
разработана логическая модель компьютерной игры «Mine&Slay»
(рисунок 1.1.).

Главное меню

Игра Настройки

Выход из игры Изменение


Управление разрешения
персонажем
Регулирование
громкости
Переход между
Использование
уровнями
диалогов

Боевая система

Рисунок 1.1 –Логическая модель игры

1.3 Анализ существующих аналогов


Как жанр в текущем его проявлении тяжело определить, можно сказать
лишь что игра принадлежит к так называемым «HYPER-CASUAL» играм, то
есть играм, игровой процесс которых должен быть наиболее простым, но в
тоже время увлекательным.
Игровой процесс игр жанра HYPER-CASUAL в целом вдохновляется
различными играми, и часто многие игры могут сильно отличаться друг от
друга. В текущих реалиях можно попытаться выделить основные моменты
HYPER-CASUAL как жанра и определить наиболее важные особенности:

6
 Игровой процесс отличается простотой и удобством;
 В игре так же используется особенность «Easy to learn, hard to
master»
 Если игра предполагает собой мультиплеер, то в этом случае
поиск матча и начало игры должны занимать наименее возможное
количество времени
 Управление должно включать в себя максимально простое
управление
 В игре должны быть персонажи, отличающиеся друг от друга;
 Короткие игровые сессии;
1.4 Функциональная модель игры
Пользователь приложение имеет выбор, найти случайное лобби или
создать его самому. Также именно он отвечает за управление персонажем и
поведением его в игре.
На диаграмме прецедентов (рисунок 1.4) показаны отношения между
пользователем и приложением, что позволяет описать приложение на
концептуальном уровне, показать его общую структуру.

Вход в игру

Нахождение лобби/

Создание лобби

Управление персонажем

Пользователь

Выход
из игры

Рисунок 1.4 – Диаграмма прецедентов игры категории «Пользователь»

7
В этом разделе была приведена и описана диаграмма прецедентов
компьютерной игры «Mine&Slay». Теперь можно явно увидеть все отношения
между пользователем и функционалом приложения.

8
ГЛАВА 2
ОБЗОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ,
ИСПОЛЬЗУЕМЫХ ПРИ СОЗДАНИИ ИГРОВОГО
ПРИЛОЖЕНИЯ

2.1 Задачи, решаемые при разработке компьютерной игры


При подготовке к разработке любого проекта необходимо построить
план его реализации, определить задачи, которые необходимо решить.
Конечно, для реализации больших проектов используется команда
разработчиков, дизайнеров, звукорежиссеров, художников, тестировщиков, но
эта работа будет производиться в учебных целях и поэтому можно поставить
для себя следующие задачи:
1. Определить, какая будет структура компьютерного приложения.
2. Создать прототип игры на «бумаге», построить логические схемы и
определить «интересность» проекта.
3. Выбрать наиболее удобный игровой движок и конструктор для
разработки игры.
4. Проработать игровой дизайн.
5. Подготовить звуковое оформление.
6. Реализовать игру.
7. Создать необходимое количество окон и объединить их между
собой.
8. Протестировать игру для выявления ошибок и их исправления.
Выполнив поставленные задачи, можно получить готовую
компьютерную игру готовую к использованию и интересному заниманию
свободного времени.

2.2 Движки игр


Прежде чем начинать разрабатывать компьютерную игру «Mine&Slay»,
рассмотрим наиболее подходящие средства. Мой выбор пал на разработку игры
с помощью игрового движка. Такие программы значительно упрощают
разработку игр.
Иногда движки узкоспециализированные, что позволяет создавать игры
только в каком-то одном жанре: ролевые игры, квесты и другие. Но зачастую
движки имеют возможность разработки игр в различных жанрах, что позволяет
разработчикам использовать разные методы и возможности программирования.
Но поскольку речь идет только о двумерных играх и конструкторах, то
ограничение только в 2D пространстве.
Итак, перейдем к анализу игровых конструкторов. Для этого зайдем на
популярную «Свободную энциклопедию Википедия», в поиск введем «Игровой
9
движок». Википедия нам предлагает ряд 2D конструкторов, сравнение которых
будет приведено в таблице 1.1.

Таблица 1.1 – Сравнение различных движков игр


Название Описание Язык Стоимость
Unity Unity имеет простой Drag&Drop С# бесплатный,
интерфейс, который легко платный
настраивать, состоящий из
различных окон, благодаря чему
можно производить отладку игры
прямо в редакторе. Проект делится
на сцены. Скрипты в редакторе
прикрепляются к объектам в виде
отдельных компонентов.
Unreal Engine Все элементы игрового движка C++ бесплатный,
4 представлены в виде объектов, платный
имеющих набор характеристик, и
класса, который определяет
доступные характеристики. В свою
очередь, любой класс является
«дочерним» классом object.
Движок комплектуется
инструментарием (SDK), в том
числе и редактором UnrealEd.
Game Maker Конструктор предназначен в JavaScript бесплатна
основном для создания 2D игр только до
любых жанров (в последней версии публикации.
можно работать с 3D). Включает в
себя редакторы графики, скриптов,
комнат (виртуальные локации в
играх), объектов, действий с
привязкой ко времени, маршрутов
и констант.

Сравнив несколько движков, можно сделать вывод, что их достаточно


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

10
2.3 Выбор и обоснование движка
Движков в современном мире достаточно много. Не зная языков
программирования сделать это довольно-таки просто, достаточно установить
бесплатный движок, найти готовые уроки, выделить немного времени и в очень
короткие сроки создать свой первый шедевр. Но и так же опытные
программисты могут использовать такие движки, так как во многих можно
писать свои независимые модули, дополнительные скрипты, которые
подключаются к основной программе.
Для разработки компьютерной игры «Mine&Slay» будет использоваться
мощный игровой движок Unity.
Unity имеет очень много функций:
редактор Unity имеет простой Drag&Drop интерфейс, который легко
настраивать, состоящий из различных окон, благодаря чему можно производить
отладку игры прямо в редакторе;
к объектам можно применять коллизии (в Unity т. н. коллайдеры –
collider), которых существует несколько типов. Также Unity поддерживает
физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В
редакторе имеется система наследования объектов; дочерние объекты будут
повторять все изменения позиции, поворота и масштаба родительского объекта.
Скрипты в редакторе прикрепляются к объектам в виде отдельных
компонентов;
Unity поддерживает систему Level Of Detail (сокр. LOD), суть которой
заключается в том, что на дальнем расстоянии от игрока высоко
детализированные модели заменяются на менее детализированные, и наоборот,
а также систему Occlusion culling;
также как плюс возможность использования Unity Asset Server –
инструментарий для совместной разработки на базе Unity, являющийся
дополнением, добавляющим контроль версий и ряд других серверных решений
и многое другое.
Также большим преимуществом является наличие множество библиотек
и плагинов, позволяющих довольно легко расширить функционал игры или
добавить особенные механики, к примеру Photon для мультиплеера, doTween
для анимации и т.д.
Можно сделать вывод, что Unity является хорошим движком и очень
мощной системой разработки различных игр, которая лучше всего подходит
для разработки игр данного жанра.

11
2.4 ОБЗОР ВОЗМОЖНЫХ РЕШЕНИЙ ДЛЯ
МУЛЬТИПЛЕЕРА
Для создания мультиплеерной игры необходимо понимать, что мы
хотим от игры, как много людей должно быть в одной сессии, и подразумевает
ли игра какой-либо рейтинг или соревновательный элемент. Для этого нужно
выделить возможные типы решений, которых основных итого 4:

1. Dynamic Single Player – этот тип может использоваться в любых играх,


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

2. Turned Based Multiplayer – тип, использующийся, как можно судить по


названию, в пошаговых играх. Особенность данного типа в том, что в них
подключение не зависит (в разумных пределах) от задержки, здесь нету
таких механик, вроде «Кто первый нажал, то и победил», так как часто
присутствуют большой набор анимации (Как в «Hearthstone») или ходы
передаются по очереди (Как в «Heroes of Might and Magic»). Так же не
подходит, так как игра требует постоянного нахождения в игре.

3. Persistent Game Spaces – решение, в котором есть одна игровая зона, в


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

4. Real Time Multiplayer – тип в реальном времени, в котором есть


определённое лобби, где находится заранее определённое количество
игроков (до 5, 10, 15 и т.д.). Игра происходит в реальном времени, где
нужно постоянно следить за игрой и предпринимать какие-либо действия.
Здесь часто требуется реакция, должен учитываться пинг игрока,
необходимы различные Гейм-менеджеры, которые предсказывают
поведение вещей в игре, чтобы вовремя давать отклик и уменьшить
задержку. К такому типу относятся практически все онлайновые
соревновательные проекты (как «Dota 2» «LoL» «Counter-Strike» и
другие). Этот тип подходит, т.к. у нас отчасти соревновательная игра, в
12
которой нужно вовремя реагировать, хоть и не настолько быстро как в
типичных представителей данного решения.

После того как мы определились с решением, нужно определить, какой тип


подключение будет использоваться в игре, и здесь так же есть несколько
вариантов:

1. Прямое соединение – подключение, при котором устройства


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

2. Доверенный сервер – подключение, при котором между устройствами


есть посредник в виде какого-либо серверной части (UNET, Photon, PUN
и так далее). Здесь так же есть хост, который принимает все сообщение с
других серверов, и так же отвечает через сервер остальным. Из явных
преимуществ можно выделить доступность, легко настраивается на
мобильных устройствах и вполне простая настройка, так же здесь можно
настроить матчмейкинг, который стал доступен из-за сервера. Из
недостатков можно выделить небольшое преимущество хоста перед
другими, но не такое явное, как в прямом соединении, так же проблема
читерства остается нерешённой.

3. Полностью контролируемый доверенный сервер – похожее на


прошлый тип подключение, которое имеет те же преимущества, и к тому
же в котором решена проблема читерства, т.к. абсолютно всё проходит
через сервер и отсылается им же, поэтому тем самым обеспечивается
полная защита от них. Так же отсутствует хост как таковой, что позволяет
поставить всех в равные условия. Несмотря на такое большое количество
плюсов, есть и пара минусов: во-первых, код сервера нужно писать
полностью самому, что очень сильно увеличивает время и сложность
разработки; во-вторых, сам сервер является довольно дорогой услугой,
13
если использовать чей-либо (Photon enterprise, AWS и другие), и ещё
более дорогой, если делать свой собственный.

Из всего вышеперечисленного первый вариант не подходит из-за плохой


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

Третий вариант не подходит ввиду высокой стоимости, и чрезвычайно высокой


сложности написания сервера, которая в игре такого типа попросту не нужна.

Методом исключения остается второй вариант, который хоть и не идеален


(возможное наличие читеров, преимущество хоста перед другими), но тем не
менее лучшее из возможных. Для реализации данного типа подключения есть
несколько решений, предлагаемых самим движком Unity, а именно Photon,
UNIX и PIN, так же есть и GameLift от Amazon.

Из всех вариантов был выбран фреймворк Photon, так как UNIX прекращает
поддержку в ближайшее время, поэтому при наличии перспектив для игры
нецелесообразное решение. PIN и GameLift, в отличие от Photon, не имеют
бесплатных возможностей для реализации сервера.

14
ГЛАВА 3
ПРАКТИЧЕСКАЯ ЧАСТЬ

3.1 Описание Unity


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

Рисунок 3.4 – Ярлык программы Unity

Открываем конструктор с помощью двойного щелчка левой кнопки


мыши по нему. Откроется главное окно программы, где можно выбрать
существующий проект или создать новый (рисунок 3.5).

Рисунок 3.5 – Главное окно программы Unity

Создадим новый проект для обзора программы. В меню программы


нажмем «New» (создастся новый проект). На рисунке 3.6 представлен
созданный новый проект.

15
Рисунок 3.6 – Новый созданный проект

Справа имеется «окно» называемое «inspector window», где будут


расположены свойства выделенного объекта. Свойства можно изменять или
добавлять новые.
Слева находится «Hierarchy window», где показывается выбранная сцена
и все находящиеся на ней объекты. В общих чертах напоминает всем известный
проводник. С объектами на сцене можно взаимодействовать: перетаскивать,
выделять, делать дочерними и многое другое.
Снизу расположено «Project window», где находится дерево проекта со
всеми папками, а также более подробное описание выбранной папки со всеми
вложенными файлами.
По центру расположено сама сцена, называемая «Scene view»,
позволяющая ориентироваться на сцене и изменять её. Можно смотреть как в
2D, так и в 3D перспективе.
Вверху расположен «Toolbar», который включает в себя базовые
функции (как, например, переключение между режимами взаимодействия, так
и возможность запустить сцену).
Используя различные объекты, плагины и поведения можно создать
потрясающий функционал игры либо приложения, создать все с нуля,
придумать свою идею, реализовать похожие проекты. Функционал движка
очень разнообразен и позволяет реализовать большинство задумок.

16
3.2 ОПИСАНИЕ ВОЗМОЖНОСТЕЙ ФРЕЙМОРКА
PHOTON
Photon – фреймворк, который предоставляет большие возможности в
создание мультиплеерных проектов и их поддержке. Он сочетает в себе
небольшую сложность в реализации и эффективность решения в итоге. Так же,
в отличие от множества других фреймворков, у Photon очень гибкая ценовая
политика, позволяющая использовать как бесплатные версии, так и
приобретать более затратные и масштабные варианты.

3.3 Разработка компьютерной игры


Разработка игры с помощью движка Unity очень увлекательный процесс,
где можно сразу видеть результат. На рисунке 3.7 представлена структура сцен.

Рисунок 3.7 – Структура сцен.

Так же на Рисунке 3.8 показано дерево проекта со всеми


составляющими.

17
Рисунок 3.8 – Структура проекта.

Главное окно программы – это сцена с названием «Menu». Из этого


уровня идет переход к сцене «Game», а также переход по кнопкам «Настройки»
и «Выйти из игры». В «Настройках» есть возможность изменить разрешение,
качество картинки или отрегулировать громкость.

На рисунке 3.9 представлена визуальная форма сцены «Menu».

Рисунок 3.9 – Сцена «Menu»

Для сцены «Menu» используются C# скрипт – «Loader». Он отвечает за


работу основного меню, так же, как и за настройками и их соблюдением. На
рисунке 3.10 изображены настройки сцены «Menu».

Рисунок 3.10 – Настройки


18
Вторая сцена называется «City» и представляет собой саму игру. Цель
игры – Уничтожить босса в подземелье.
Сами «Сцены» состоит из 2 частей – «Города» и «Подземелье»
(рисунок 3.11).

Рисунок 3.11 – Canvas и игровое поле соответственно

Для самой игры используются множество скриптов – GameManager,


BoardManager, PlayerController, LobbyManager, SyncData и многие другие
(см. Приложение А).
Для примера, LobbyManager отвечает за подключение и синхронизации
клиентов между собой, позволяет подключаться, менять настройки Photon и
управляет созданием лобби.
GameManager – отвечает за взаимодействие игроков во время игры,
сокращение задержки и переходы между сценами.
BoardManager – отвечает за игровое поле, взаимодействие игроков
между собой, игровую механику и именно этот скрипт отправляет данные
между игроками.
MessageGenerator – вместе с несколькими скриптами отвечает за диалоги
в игре и их функционал.
PlayerController – управление персонажем и взаимодействие с полем;
Механика игры проста и незатейлива, нужно уничтожить другого игрока
при помощи обрушивания их вниз. Ходы идут через определенные интервалы,
что позволяет сократить влияние задержки до минимума.
При разработке использовались корутины, внутренние функции такие
как Awake(), SceneManager, Start() и т.д.

3.4 Разработка дизайна


Разработка дизайна – это самая сложная и важная стадия разработки
приложения. Графика игры должна быть привлекательна для игрока, чтобы
завлечь его поинтересоваться разработкой. А так как это игра представляет

19
жанр HYPER-CASUAL, то дизайн должен быть максимально привлекательным
и затягивающим.
Для игры «Mine&Slay» были использованы различные графические
изображения, заимствованные из различных интернет-источников и
нарисованные во встроенном графическом редакторе Unity, так же некоторые
спрайты были созданы собственноручно.
Дизайн главного окна, где находится сцена «Menu», использовались
такие вещи как: фоновая картинка, кнопки для перехода в другие сцены или
окна, а также фоновая музыка. Фон и музыка были найдены в интернете.
Кнопки переходов выполнены в стиле встроенного редактора Unity с
пиксельным шрифтом (рисунок 3.12).

Рисунок 3.12 – Пример кнопок перехода

Для сцены «Game» использовались модельки, выполненные в стиле


Pixel Art. Как для игрока, так и для врагов используется набор моделей,
который меняются между собой (рисунок 3.13).

Рисунок 3.13 – Модель одного из персонажей

Окно игры состоит из квадратных полей, называемыми Tile –


особенность Unity, позволяющая создавать карты довольно просто. Так
называемые тайлы вместе образуют Tilemap, наложенные в несколько слоев
они создают полную и качественную картинку.
Картинки объектов были найдены в интернете. При генерации края зон
совпадают, из-за чего картинка выглядит бесшовной (рисунок 3.14).

20
Рисунок 3.14 – Различные текстуры замка

Так же имеется музыка, так же найденная в интернете, при различных


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

21
ГЛАВА 4
ОПИСАНИЕ ИГРЫ

4.1 Программно-аппаратные ресурсы


В процессе работы использовались следующие технические средства:
ноутбук Acer Aspire VX-15;
Параметры ноутбука Acer Aspire VX-15:
процессор AMD Ryzen 7 3750H 2300 МГц;
оперативная память 16Gb;
графический адаптер NVIDIA GeForce RTX 2060 6 ГБ;
видеоадаптер Intel(R) HD Graphics 3000;
локальная видеопамять 1Gb;
жесткий диск Samsung на 1000Gb;
SSD Crusial 512Gb;
монитор 15,6 дюймов;
Windows 10 Pro (64 Бит).
программные средства:
Word;
Unity.
В этой главе были указаны параметры всех используемых устройств для
разработки компьютерной игры и перечислены все программные средства,
которые понадобились в ходе работы.

4.2 Демонстративный пример работы игры


Для работы с компьютерной игрой «Mine&Slay», необходимо сначала
собрать её в проект через File-> Build and Run (рисунок 4.1).

Рисунок 4.1 – Сборка игры

После компиляции игры она сама запустится при условии компиляции


на компьютере, в нашем же случае он потребует подключённого Android

22
устройства, при закачке на который оно установится, после чего при загрузке
приложения появляется главное меню.

Рисунок 4.4 – Главное окно игры «Mine&Slay»

В главном окне имеется 3 кликабельных кнопки: «Начать игру»,


переключение музыки и «Выход» из игры. Так же на фоне играет музыка.

Рисунок 4.5 – окно старта игры

На этом уровне имеется 4 активных объекта:


23
Создание комнаты, то есть игровой сессии самостоятельно и заход в неё;
Присоединение к случайной;
Поле ввода никнейма (При отсутствии ввода определяется
автоматически)
Нажмём «Начать игру». После чего сначала нас сразу переключает на
игровое поле (рисунок 4.6).

Рисунок 4.6 – Начало игры


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

Рисунок 4.7 – Модели

Первый – это моделька игрока, вторая моделька – моделька всех


остальных игроков.

24
В игре реализована возможность передвижения по локации и
уничтожения блоков.
На картинке представлена примерная середина партии(рисунок 4.8)

Рисунок 4.8 – Диалог

Игра закончится, когда останется лишь один (рисунок 4.9).

Рисунок 4.9 – Бой в игре

25
Также во время игры имеется возможность выйти в меню заранее без
окончания игры. С помощью кнопки «Leave» вас сразу выкидывает в главное
меню.
4.3 Тестирование
По окончанию разработки необходимо проверить игру на полное
соответствие всем требованиям, выявить самые уязвимые места и устранить их.
Существует достаточно много видов тестирования игр и приложений.
Для тестирования игры «Mine&Slay» использовался в основном вид –
«Нагрузочное тестирование». Основной целью такого вида теста является
выявление всех несоответствий с необходимым функционалом. Для этого
пользователь, либо тестировщик должен несколько раз пройти всю игру,
научиться в нее играть до профессионального уровня и использовать
абсолютно весь функционал.
Функциональное тестирование проводилось на всех этапах разработки
компьютерной игры, так как ее можно разделить на некоторые модули. Когда
был обнаружен неверный функционал, то он сразу устранялся.
Существует позитивное и негативное функциональное тестирование. К
позитивному можно отнести проверку соответствуя определенным стандартам
и правилам игры, где игрок выполняет свои правильные действия, чтобы
достичь результата игры. А негативное, когда игрок пытается сделать то, чего
обычно не делают, но ему захотелось пойти против правил.
Тестирование игры происходило как на ноутбуке, так и на телефоне. В
ходе разработки было выявлено много багов и неисправностей, которые
мешали полноценному игровому процессу. От пропадающих юнитов до
сломанной механики персонажа. Как пример найденной ошибки представим на
рисунке 4.11.

Рисунок 4.11 – Фиксирование неправильной работы игры «Mine&Slay»


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

27
ЗАКЛЮЧЕНИЕ
В ходе выполнения дипломной работы были изучены основные
принципы разработки компьютерной игры средствами игрового движка Unity.
Был приобретен бесценный опыт работы в данном движке и получена
компьютерная игра «Mine&Slay».
В ходе исследования были решены следующие задачи:
определена структура игры, те результаты, которые должны быть по
окончанию разработки;
построено два вида UML-моделей, для визуализации создаваемой игры;
изучены технологии разработки компьютерных игр и выбран движок
для реализации;
проведен анализ движков, их сопоставление и выбор наиболее
подходящего для разработки компьютерной игры;
рассмотрен движок Unity, где были определены его достоинства для
реализации проекта;
была разработана компьютерная игра, средствами движка с разработкой
дизайна.
В первой главе дипломной работы рассматривалась теоретическая часть,
ставились цели и задачи для получения желаемого результата разработки.
Во второй главе рассматривались различные игровые движки и был
проведен анализ на выбор наиболее подходящего. В итоге был выбран движок
Unity.
При написании третьей главы – практической части, была произведена
настройка движка, а также был разработан полноценный программный
продукт.
Четвертая глава показала демонстрацию и полное описание всего
функционала, который получилось воспроизвести в полученной игре.
Компьютерная игра представляет собой законченный программный
продукт и может быть использована в реальной жизни.

28
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ:

1. Свободная энциклопедия Википедия https://ru.wikipedia.org.


2. Игровой движок Unity. https://unity3d.com/ru/get-unity/download.
3. Документация для Unity.
ttps://docs.unity3d.com/ru/current/Manual/index.html

29
ПРИЛОЖЕНИЕ А
Для создания мира и проработки всех его аспектов, нужно использовать
большую часть функционала Unity, однако так же необходимы скрипты,
которые будут регулировать правильную работу игры.

Один из таких скриптов – Board Manager, который в связке с другими


скриптами позволял реализовать полноценный мультиплеер:

Часть скрипта Board Manager

Этот скрипт создавал игровую сцену, где размещал игроков,


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

30
Ещё один скрипт использовался для реализации передвижения игрока,
перемещению его по полю и он же следил за возможной смертью персонажа.

Скрипт боевой системы получился довольно объемным, и представляет собой


реализацию пошаговой боевой системы по принципу «Игрок» – «Противник».

31
Частичная реализация кода игрока представлена на коде выше. При
нажатии определенной способности в код переносится определенное значение
переменной и при нажатии на противника срабатывает определенное действие.

После ход переходит к противнику и т.д.

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

33

Вам также может понравиться