Академический Документы
Профессиональный Документы
Культура Документы
МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ
КОЗАК
Дмитрий Владимирович
Дипломная работа
Научный руководитель:
старший преподаватель
Политаев Дмитрий Николаевич
Минск, 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
ПОСТАНОВКА ЗАДАЧ
Главное меню
Игра Настройки
Боевая система
6
Игровой процесс отличается простотой и удобством;
В игре так же используется особенность «Easy to learn, hard to
master»
Если игра предполагает собой мультиплеер, то в этом случае
поиск матча и начало игры должны занимать наименее возможное
количество времени
Управление должно включать в себя максимально простое
управление
В игре должны быть персонажи, отличающиеся друг от друга;
Короткие игровые сессии;
1.4 Функциональная модель игры
Пользователь приложение имеет выбор, найти случайное лобби или
создать его самому. Также именно он отвечает за управление персонажем и
поведением его в игре.
На диаграмме прецедентов (рисунок 1.4) показаны отношения между
пользователем и приложением, что позволяет описать приложение на
концептуальном уровне, показать его общую структуру.
Вход в игру
Нахождение лобби/
Создание лобби
Управление персонажем
Пользователь
Выход
из игры
7
В этом разделе была приведена и описана диаграмма прецедентов
компьютерной игры «Mine&Slay». Теперь можно явно увидеть все отношения
между пользователем и функционалом приложения.
8
ГЛАВА 2
ОБЗОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ,
ИСПОЛЬЗУЕМЫХ ПРИ СОЗДАНИИ ИГРОВОГО
ПРИЛОЖЕНИЯ
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:
Из всех вариантов был выбран фреймворк Photon, так как UNIX прекращает
поддержку в ближайшее время, поэтому при наличии перспектив для игры
нецелесообразное решение. PIN и GameLift, в отличие от Photon, не имеют
бесплатных возможностей для реализации сервера.
14
ГЛАВА 3
ПРАКТИЧЕСКАЯ ЧАСТЬ
15
Рисунок 3.6 – Новый созданный проект
16
3.2 ОПИСАНИЕ ВОЗМОЖНОСТЕЙ ФРЕЙМОРКА
PHOTON
Photon – фреймворк, который предоставляет большие возможности в
создание мультиплеерных проектов и их поддержке. Он сочетает в себе
небольшую сложность в реализации и эффективность решения в итоге. Так же,
в отличие от множества других фреймворков, у Photon очень гибкая ценовая
политика, позволяющая использовать как бесплатные версии, так и
приобретать более затратные и масштабные варианты.
17
Рисунок 3.8 – Структура проекта.
19
жанр HYPER-CASUAL, то дизайн должен быть максимально привлекательным
и затягивающим.
Для игры «Mine&Slay» были использованы различные графические
изображения, заимствованные из различных интернет-источников и
нарисованные во встроенном графическом редакторе Unity, так же некоторые
спрайты были созданы собственноручно.
Дизайн главного окна, где находится сцена «Menu», использовались
такие вещи как: фоновая картинка, кнопки для перехода в другие сцены или
окна, а также фоновая музыка. Фон и музыка были найдены в интернете.
Кнопки переходов выполнены в стиле встроенного редактора Unity с
пиксельным шрифтом (рисунок 3.12).
20
Рисунок 3.14 – Различные текстуры замка
21
ГЛАВА 4
ОПИСАНИЕ ИГРЫ
22
устройства, при закачке на который оно установится, после чего при загрузке
приложения появляется главное меню.
24
В игре реализована возможность передвижения по локации и
уничтожения блоков.
На картинке представлена примерная середина партии(рисунок 4.8)
25
Также во время игры имеется возможность выйти в меню заранее без
окончания игры. С помощью кнопки «Leave» вас сразу выкидывает в главное
меню.
4.3 Тестирование
По окончанию разработки необходимо проверить игру на полное
соответствие всем требованиям, выявить самые уязвимые места и устранить их.
Существует достаточно много видов тестирования игр и приложений.
Для тестирования игры «Mine&Slay» использовался в основном вид –
«Нагрузочное тестирование». Основной целью такого вида теста является
выявление всех несоответствий с необходимым функционалом. Для этого
пользователь, либо тестировщик должен несколько раз пройти всю игру,
научиться в нее играть до профессионального уровня и использовать
абсолютно весь функционал.
Функциональное тестирование проводилось на всех этапах разработки
компьютерной игры, так как ее можно разделить на некоторые модули. Когда
был обнаружен неверный функционал, то он сразу устранялся.
Существует позитивное и негативное функциональное тестирование. К
позитивному можно отнести проверку соответствуя определенным стандартам
и правилам игры, где игрок выполняет свои правильные действия, чтобы
достичь результата игры. А негативное, когда игрок пытается сделать то, чего
обычно не делают, но ему захотелось пойти против правил.
Тестирование игры происходило как на ноутбуке, так и на телефоне. В
ходе разработки было выявлено много багов и неисправностей, которые
мешали полноценному игровому процессу. От пропадающих юнитов до
сломанной механики персонажа. Как пример найденной ошибки представим на
рисунке 4.11.
27
ЗАКЛЮЧЕНИЕ
В ходе выполнения дипломной работы были изучены основные
принципы разработки компьютерной игры средствами игрового движка Unity.
Был приобретен бесценный опыт работы в данном движке и получена
компьютерная игра «Mine&Slay».
В ходе исследования были решены следующие задачи:
определена структура игры, те результаты, которые должны быть по
окончанию разработки;
построено два вида UML-моделей, для визуализации создаваемой игры;
изучены технологии разработки компьютерных игр и выбран движок
для реализации;
проведен анализ движков, их сопоставление и выбор наиболее
подходящего для разработки компьютерной игры;
рассмотрен движок Unity, где были определены его достоинства для
реализации проекта;
была разработана компьютерная игра, средствами движка с разработкой
дизайна.
В первой главе дипломной работы рассматривалась теоретическая часть,
ставились цели и задачи для получения желаемого результата разработки.
Во второй главе рассматривались различные игровые движки и был
проведен анализ на выбор наиболее подходящего. В итоге был выбран движок
Unity.
При написании третьей главы – практической части, была произведена
настройка движка, а также был разработан полноценный программный
продукт.
Четвертая глава показала демонстрацию и полное описание всего
функционала, который получилось воспроизвести в полученной игре.
Компьютерная игра представляет собой законченный программный
продукт и может быть использована в реальной жизни.
28
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ:
29
ПРИЛОЖЕНИЕ А
Для создания мира и проработки всех его аспектов, нужно использовать
большую часть функционала Unity, однако так же необходимы скрипты,
которые будут регулировать правильную работу игры.
30
Ещё один скрипт использовался для реализации передвижения игрока,
перемещению его по полю и он же следил за возможной смертью персонажа.
31
Частичная реализация кода игрока представлена на коде выше. При
нажатии определенной способности в код переносится определенное значение
переменной и при нажатии на противника срабатывает определенное действие.
32
Для боевой системы используются атрибуты, от которых вычисляется
характеристики бойца, и от этих характеристик зависит урон, здоровье и т.д.
33