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

Содержание

Введение.........................................................................................................3

1. Аналитический обзор...........................................................................4

1.1 Обзор платформ и операционных систем....................................4


1.2 Классификация мобильных игр....................................................7

1.3 Выбор сетевой архитектуры........................................................13

1.4 Анализ инструментальных средств разработки........................14

1.4.1 Выбор игрового движка..........................................................14

1.4.2 Выбор средства создания моделей.........................................19

1.4.3 Выбор графического редактора..............................................23

1.5 Правила игры и игровые механики............................................26

1.6 Алгоритм Fast Loaded Dice Roller...............................................26

1.7 Обзор существующих аналогов..................................................28

1.8 Выводы по главе...........................................................................28

2. Технологическая часть.......................................................................28

2.1 Анализ двух похожих IDE, для последующего выбора


игрового движка................................................................................................28

2.3 Создание и настройка проекта в Unity.......................................47

2
Введение
Игровая сфера деятельности в настоящее время является одной из
самых быстро развивающихся среди индустрии развлечений, и в то же время
имеет дольно низкий порог вхождения для начинающих разработчиков.
Первые компьютерные игры появились еще в 70-ых годах 20 века и
изначально были доступны только на аркадных автоматах и не имели
большого разнообразия геймплея. Затем, в 90-ых основной их платформой
стали персональные компьютеры. Переход был обусловлен несколькими
факторами:

 Появление новых носителей информации, таких как CD и DVD


диски
 Развитие технологий визуализации 3D графики (ASIC,
видеокарты)
 Широкое распространение операционных систем с графическим
интерфейсом, таких как Microsoft Windows, Linux, Mac OS
 Увеличение производительности центральных процессоров CPU
 Повсеместное распространение интернета

В настоящее же время игровая индустрия занимает большую часть


рынка развлечений.

Цель проекта ВКР:

 Разработать многопользовательскую мобильную экономическую


стратегию

Задачи:

 Провести анализ предметной области.


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

3
 Сформировать правила и принципы работы игровых механик.
 Разработать игру

4
1. Аналитический обзор
1.1 Обзор платформ и операционных систем
За время существования мобильных устройств было разработано
множество операционных систем. С течением времени поддержка
некоторых, уже устаревших, прекращалась. Наиболее известные из них:

 Symbian OS – разработанная компанией Nokia в 1998, поначалу была


самой популярной среди мобильных телефонов, а затем некоторое
время использовавшаяся в смартфонах. Поддержка была прекращена в
2012 году.
 Windows Phone – платформа, изначально разработанная для
смартфонов, выпущенная компанией Microsoft 11 октября 2010 года.
Использовалась в ряде устройств различных производителей (HTC,
Nokia, Samsung, Huawei). Последнее обновление было выпущено 2
марта 2015 года.

В настоящее же время мобильных платформ осталось не так много. По


данным сайта StatCounter на январь 2021 года две ОС занимают более 99%
рынка, из которых 72,03% - Android и 27,44 - iOS.

5
Рисунок 1 – Доля рынка мобильных операционных систем на январь 2021
года

Android – мобильная операционная система, разработанная и выпущенная


компанией Google 23 сентября 2008 года, использующаяся в множестве
различных устройств. В их числе смартфоны, планшеты, электронные книги,
умные телевизоры, фитнес браслеты и другие устройства. Поддержка и
развитие платформы (последнее 8 сентября 2020) происходит до сих пор.

iOS – основной конкурент Android, выпускаемая компанией Apple Inc. с


2007 года, также используется в множестве девайсов, таких как умные часы,
планшеты и смартфоны. В отличие от аналога, имеет закрытый исходный
код, чем обуславливается её большая безопасность. Еще одним
преимуществом является её использование только в технике Apple, благодаря
чему достигается лучшая оптимизация под каждое устройство.

Поскольку данные платформы занимают основную часть рынка, было


принято решение вести разработку под них.

6
1.2 Классификация мобильных игр
Все игры можно разделить на некоторые группы по их жанровой
принадлежности. Рассмотрим статистику самых распространённых жанров
мобильных игр.

Рисунок 2 – Статистика популярности жанров мобильных игр

Одним из самых распространённых игровых жанров является


Головоломки (Puzzle на английском). К этому жанру относится все игры, для
прохождения, которых пользователю придётся подумать, чтобы найти
решение. Головоломки являются настолько популярными, потому что
большая часть игр, относящихся к этому жанру, являются казуальными
приложениями с низким порогом вхождения в них, главная цель которых
весело провести время. Данные игры в основном, никак не ограничиваются
возрастом. Они не требуют серьезных вложений времени, и игровые сессии
не отличаются долгой положительностью. Например, в головоломки
пользователь может играть в метро по пути, до места назначения, при
нахождении в какой-нибудь очереди и так далее.

7
Подобные игры из-за таких факторов охватывают очень большую
аудиторию. В основном такие игры являются бесплатными и монтируются с
помощью внутри игровых покупок или рекламы.

Примеры игр-головоломок

Сut the Rope – бесплатная мобильная игра, которая делится на


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

Candy crush – бесплатная мобильная игра, представляет собой игру три


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

TwoDots - бесплатная мобильная игра, геймплей в которой


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

2048 – также бесплатная мобильная игра, игровое поле которой,


представляет собой поле 4 на 4. Целью данной игры является получения
плитки со значением 2048, путем перемещения плиток по игровому полю. И
если плитки с одинаковыми значениями соприкасаются они преобразуются в
одну значение которой равно удвоенному значению составных.

После головоломок идет жанр игр Казино(Casino). Геймплей в таких


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

Монтируются такие игры путем продажи данной игровой волюты за


реальные деньги.

Следующий по популярности является жанр RPG, что


расшифровывается как ролевая игра (role play game на английском). Игры
8
данного жанра основаны на некой системе настольных игр. В игровом
процессе данного жанра игроку предоставляется контроль над персонажем,
который с имеет определённые параметры (например сила, ловкость,
интеллект и т.д.). Данные параметры принимают числовые значения,
которые описывают уровень данного навыка. В зависимости от уровней
характеристик игрок может использовать различные игровые предметы, а
также разблокировать новые навыки, что непосредственно влияет на
геймплей.

Далее игроку придётся отыгрывать своего персонажа, как бы вживаясь


в его роль. От этого и появилось название RPG. Данные игры развлекают
пользователя интересной и захватывающей историей, в которую
пользователь погружается, отыгрывая своего персонажа.

В основном игры данного жанра имеют более высокий порог входа, и


имеют ограничение по возрасту для пользователя. Поэтому эти игры
охватывают меньшую аудиторию.

Монтируются данные игры путем покупки игры или же


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

Примеры игр:

Titan Quest – является портированной версией популярной hack-and-


slash игры с настольных компьютеров.

Pascal`s Wager – ролевой экшен, основанные на томной фэнтези.

Star Wars KOTOR – как и Titan Quest является портированной версией


игры с персональных компьютеров ролевой игры по вселенной звездных
войн.

9
ATOM RPG – это пошаговая ролевая игра, в постапокалиптическом
сеттинге разработанная как для персональных компьютеров так и для
мобильных телефонов.

Далее идет жанр стратегий (Strategy на английском). Данный жанр


характеризуется тем, что для прохождения игр данного жанра нужно
использовать стратегическое мышление. В основном стратегии делятся на
стратегии в реальном времени (Real Time Strategy RTS на английском) или
пошаговые стратегии (Turn Based Strategy TBS Turn Based Strategy).

Игры такого жанра имеют почти сравнимый с ролевыми играми порог


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

Монетизация данных игр похожа на монетизацию ролевых, либо


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

Примеры игр:

Clash of clans – стратегическая игра, где геймплей основывается на


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

Rome: Total War: - портированная на мобильные устройства глобальная


стратегическая игра, основанная на системе стратегии в рольном времени.

Plague Inc – мультиплатформенная стратегическая игра, с элементами


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

10
распространению вируса и противостоять, разрабатывающейся по мере
прохождения игровой сессии, вакцине.

Симуляторы занимают следующее место, после стратегий. Игры


данного жанра основаны на имитации какого-то реально существующего
процесса.

В основном такие игры захватывают пользователя интересной идей,


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

Их монетизация происходит путём продажи электронной копии игры


за определенную стоимость, внутриигровых покупок и показа пользователям
рекламы.

Примеры игр:

Mineacraft – мультиплатформенная симулятор-песочница, где


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

Stardew Valley – так же мульти платформенная игра, симулирующая


жизнь фермера.

SimCity Buidit – мобильный симулятор постройки города, является


ответвлением градостроительных игр на персональных компьютерах.

Следующим по популярности жанром является шуетр (Shooter на


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

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

Примеры игр:

Call of Duty: Mobile – многопользовательский шутер от первого лица


для мобильных устройств, который является ответвлением популярной серии
игр Call of Duty.

Fortnite – многопользовательский шутер от третьего лица основный на


идее королевской битве. Данная игра является кроссплатформенной, а также
в ней предусмотрен кроссплей.

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


battle royale, с возможностью выбора геймплея от первого или третьего лица.

N.O.V.A – Legacy – одиночный шутер от первого лица.

Спортивные игры, чем-то схожи с симуляторами, но в них в основном


симулируется спортивные матчи и соревнования. В большинстве случаев
данные игры монтируются внутриигровыми покупками.

Примеры игр:

FIFA mobile – бесплатная мобильная игра, где сессии симулируют


футбольные матчи.

NBA mobile – так же как и FIFA mobile является бесплатной мобильной


игрой, но в ней симулируется баскетбольные матчи.

Наименее популярный по статистике жанр это AR – VR. Игры этого


жанра основываются на технология дополненной реальности и виртуальной
реальности.

Примеры игр:

12
Pokemon Go – бесплатная мобильная игра по популярной серии игр про
покемонов, которая основана на технологиях дополненной реальности.

1.3 Выбор сетевой архитектуры


Под сетевой архитектурой подразумевается способ подключения и
общения клиентов (устройств игроков) между собой в
многопользовательских играх.

Существует два вида реализации многопользовательских игр:

 Peer-to-peer (P2P)
 Клиент-серверная архитектура

Для реализации данного проекта была выбрана клиент-серверная


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

Плюсы клиент-серверной архитектуры.

Одним из важнейших плюсов данной архитектуры является


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

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

Благодаря клиент-серверной архитекторе при желании можно


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

1.4 Анализ инструментальных средств разработки


1.4.1 Выбор игрового движка
Перед началом разработки необходимо выбрать инструментарий,
с помощью которого будет осуществляется реализация видеоигры. Для их
создания используются игровые движки – базовое программное обеспечение,
использующееся для разработки игр. В него входит комплекс прикладных
программ для графической визуализации объектов, их перемещения,
взаимодействия друг с другом при помощи скриптов, создания катсцен,
реализации физики, обеспечения звукового сопровождения и ряда других
задач.

В разных движках все компоненты отличаются:

 Используются разные языки программирования


 Рендеринг объектов
 Интерфейс
 Библиотекой ассетов
 Настройкой физики объектов
 Поддерживаемые платформы
 Обучающими материалами для новичков
 Стоимость подписки

14
Рассмотрим наиболее популярных представителей из них.

Рисунок 3 – популярность использования различных движков для разработки


мобильных игр

Unity – самый популярный на сегодняшний день кроссплатформенный


игровой движок, разрабатываемый компанией Unity Tecnologies. Первая
версия была выпущена еще в 2005 году, однако поддержка и обновление
происходит до сих пор (последняя версия 13.01.2021 года). Хоть и написан
он на C++, программирование игровой логики и скриптов происходит
посредством языка C#. На данный момент имеет поддержку более чем 25
различных платформ, в том числе Windows, Android, iOS.

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


игры, так и полноценные AAA проекты:

 2D – Heartstone, Cuphead, Hollow Knight, Ori and the Blind Forst


 3D – Escape from Tarkov, Superhot
 AR – Pokemon Go
15
 VR – пример Beat Saber

Можно выделить основные положительные черты данного ПО:

 Поддержка множества различных платформ


(кроссплатформенность)
 Наличие выбора среди языков написания скриптов (C#,
JavaScript, Boo)
 Наличие большого количества обучающих материалов
 Большой выбор бесплатных ассетов
 Широкая поддержка импортируемых файлов
 Не сильно ограниченная в функционале бесплатная версия
(оборот или объем привлеченных инвестиций не превышает 100
тыс. $ за последние 12 месяцев)

Минус Unity

 Данный игровой движок после установки займет много


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

Unreal Engine 4 – следующий по количеству пользователей игровой


движок, разрабатываемый и поддерживаемый компанией Epic Games. Его
главным отличием от Unity является язык программирования – C++ в
отличие от C# в Unity.

Также ключевой особенностью является альтернативный визуальный


скриптовый язык Blueprints. С помощью него появляется возможность
написать логику для игры или сцены, не углубляясь в языки
программирования C++ и C#.

К плюсам данного движка можно отнести:

16
 Кроссплатформенность
 Поддержка множества ассетов
 Поддержка AR, VR платформ
 Язык визуального программирования Blueprints

Минусы:

 Сложный для новичка интерфейс.

Следующим по популярности игровым движком является CryENGINE,


разработанный немецкой компанией Crytek. Так же как Unreal Engine
CryENGINE написан на языке программирования C++.

Игры разработанные на данном движке

 серия игр Crysis – представителями данной серии являются


одиночным шутером от первого лица с элементами стелса.
 Warface – многопользовательский шутер от первого лица,
 Kingdom Come: Deliverance – однопользовательская Action/RPG,
 Hunt: Showdown - многопользовательский шутер от первого лица c
элементами survival horror,
 Prey – однопользовательский шутер с элементами immersive sim.

Плюсы CryENGINE

 Кроссплатформенность
 Простое создание визуально красивого игрового окружения.
 Визуальное качество графики игр

Минусы

 Скудная документация.
 Не дружелюбен к новым пользователям

17
Установка 2D Легкость Интеграция и Поддержка Служба
и владение /3D использования совместимость VR поддержки

2D
Unity 4/5 4/5 5/5 Есть 4/5
/3D

Unreal 2D
4/5 4/5 5/5 Есть 4/5
Engine /3D

2D
Godot 4/5 3/5 3/5 Нет 4/5
/3D

2D
CryENGINE 3/5 2/5 4/5 Есть 3/5
/3D

2D
GameMake 4/5 3/5 3/5 Нет 3/5

Таблица 1 – анализ функционала различных IDE для разработки


программных продуктов

18
1.4.2 Выбор средства создания моделей
Так же рассмотрим самые популярные средства создания различных
3D моделей.

Blender Zbrush Cinema 4D Maya 3d Max

Компания Open-souce Pixologic Maxon Autodesk Autodesk

Дата создания 203 1999 1990 1998 2004

Язык
программиро
Изменяемые Моделирован Поддержка вания,
Главные Дополнитель кисти, ие, захвата моделировани
функции ные аддоны, скульптурные Дружелюбны движений, е органики и
слои й интерфейс слои, объектов с
твёрдыми
гранями
Моделирован
Скульптинг и
ие, анимация, Моделирован Анимация и
Высоко Моделирован
Предназначение скульптинг, ие и визуальные
полигональное ие
визуальные анимация эффекты
моделирование
эффекты
Сложнее Сложная
Сложность Легкая Средняя Средняя
среднего

$895 или
Цена Бесплатно $700 $1,470 за год $1,479 за год
$39.95 в месяц

Таблица 2 – анализ различных сред для разработки моделей для


продукта

Начнем с такого средства создания 3D моделей как Zbrush. Zbrush – это


очевидный выбор, если нужно создать сложную высоко полигональную
модель с помощью техники создания 3D скульптур. Zbrush вполне может
справляться с моделями, количество полигонов, которых может превышать
более 200000, что делает это программное обеспечение, как говорилось
ранее, идеальным инструментом для создания высоко полигональных
моделей.

19
Так же в этом средстве для создания 3D моделей есть мощная и
детализированная система изменяемых кистей для скульптинга. Данная
программа поддерживает несколько уровней полигональной детализации.

Плюсы Zbrush

 Фотореалистичный рендер
 Можно создавать собственные кисти
 Возможность работать с очень большим количеством полигонов

Минусы

 Цена.
 Сложность в изучении
 Не стандартное меню

Далее рассмотрим Cinema 4d. Cinema 4d существует уже давно и


пользуется особой популярностью среди motion graphics художников. При
открытии данного приложения пользователю откроется довольно-таки
удобный для новичков интерфейс. Также Cinema 4d известен своей
стабильностью и простотой обучения.

Плюссы Cinema 4d

 Простота обучения.
 Расширяемость с помощью плагинов
 Стабильность

Минусы

 Цена

Maya довольно популярное программное обеспечения среди 3D –


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

Данное приложение хорошо справляется с моделированием,


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

Плюсы Maya

 Обширный набор инструментов


 Мощный инструмент

Минусы

 Дорогая
 Сложна для изучения

3ds Max – это средство для создания трехмерной графики от компании


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

В набор данной программы входит симуляция волос, жидкости, меха,


риггинг и анимация персонажей. Для создания можно воспользоваться либо
полигональным моделированием или процедурным моделированием, а
большая библиотека модификаторов сильно упрощает процесс создание 3D
моделей.

Плюсы

 Легче изучать, чем Maya


 Существенный набор функций

21
Минусы

 Цена

Blender – самое лучшее бесплатное программное обеспечение для


создание 3D моделей. В функционал Blender входит моделирование создание
текстур, создание анимации, рендеринг, скульптинг, программирование,
создание композиций и шейдеров.

Также Blender обладает широким инструментарием для 3D-


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

Так же данное программное обеспечение славится совей


расширяемостью благодаря пользовательским дополнениям.

Плюсы Blender

 Бесплатность
 Открытый код
 Большой набор инструментов
 Возможность создать законченную модель без использования
сторонних приложений

Минусы

 Сложность в начале обучения.

22
1.4.3 Выбор графического редактора
Рассмотрим популярные графические редакторы.

Photoshop – это мощный редактор изображений и художественное


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

В современности большинство людей уже знакомы с редактированием


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

Еще одно из преимуществ Photoshop является возможность создания


фотореалистичных материалов текстур, основанных на физическом
рендеринге (PBR расшифровка аббревиатуры Physically Based Rendering на
английском). Также в данной программе можно создавать текстуры
стилистики вручную нарисованных (hand painted на английском).
Популярным примером данной стилистики выступает игра World of Warcraft
от компании Blizzard World. Так же в данном программном обеспечении
можно создавать пиксельные текстуры, которые создают ощущения ретро
стилистики.

Photoshop также можно использовать вместе с другими способами


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

Для использования программы Photoshop нужно оплачивать $20.99 в


месяц.

GIMP (GNU Image Manipulation Program) похож не некоторую копию


инструмента в стиле Photoshop с урезанным функционалом, но это
обуславливается тем, что данное приложение является бесплатным и имеет
открытый исходный код.
23
В данном программном обеспечении нет многих функций премиум-
программ, и также GIMP не позволит рисовать на моделях или что-то
посложнее этого, кроме основ создания и редактирования изображений, но
этого достаточно для полноценного процесса создания разнообразных
нужных текстур.

Quixel – это приложение, которое раньше работало в программе


Photoshop и которое могло быстро и легко сгенерировать текстуры, которые
основаны на физическом рендеринге. Но с некоторых пор это прекратилось и
теперь Quixel почти полностью сосредоточился на Megascans (Megascans –
это огромная библиотека отсканированных материалов, сделанных с
реальных объектов, которое можно быстро применить к созданным моделям
и настроить как этого требует проект.

Недавно Quixel объединилась с компанией Epic Games. Это позволяет


бесплатно использовать функции Megascans в своих проектах в Uneal Engine,
но они не являются эксклюзивными для этого движка. А могут быть
приобретены для использования вместе с другими игровыми движками,
включая собственные игровые движки.

Subsance Suite – является набором программ, разработчиком которых


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

Substance Source и Substance Alchemist являются аналогами Megascans


и Quixel. Substance Source – это большая библиотека материалов Substance,
которые можно использовать в любых программах, входящих в набор
Subsance Suite, или полноценно накладывать на модель. Но хоть и
библиотека Algorithmic меньше чем Megascans, ее основное преимущество
заключается в возможности использования материалов в других программах,
а также простая настройка этих материалов. Substance Alchemist аналогична

24
программе Quixel Mixer, и также позволяет легко и эффективно смешивать
различные материалы.

Substance Painter – это мощная программа, которая предосталяет


широкий спектр возможностей для редактирования и создания текстур и
материалов, которые основаны на физическом рендеринге, которые в
реальном времени отображаются на 3D модели. Substance Painter делает это
намного эффективнее своих аналогов, а так же поставляется с большим
списком инструментов, которые делают эту программу намного мощнее.
Можно привести хороший пример этого – возможность рисовать по
поверхности модели не только цветом, а полноценным материалом, который
влияет на цвет (за это отвечает Albedo map), шероховатость (за это отвечает
Roughness map) отображения металлических деталей (за это отвечает metallic
map) и даже отображаемую высоту с помощью карт нормалей (или normal
map) одним мазком виртуальной кисти. Так же можно воспользоваться
функцией “умных материалов”, которая способна генерировать такие
особенности модели как небольшие отверстия, или щели, скопления грязи ил
царапины на определенные области модели, с помощью только материалов.

Substance Designer – это более технический подход к созданию текстур.


С помощью систем, основных на узлах, можно создавать из материалов
различные сложные элементы. Также можно осуществлять случайную
генерацию некоторых функций для отображения материалов, а также влиять
на их параметры. Это позволит данному инструменту создавать почти
бесконечное количество похожих текстур за короткий срок. Примером этого
может быть текстура деревянных досок с простыми настройками, которые вы
можете изменить, которые изменят количество досок, цвет древесины или
даже узор текстуры древесины всего за несколько простых щелчков мышью.

После появления пакета Substance, он изменил представление о


разработки разнообразных текстур для игр. Также стало понятно, что данный
пакет программного обеспечения будут использовать различные игровые
25
компании для значительной части работ связанных с материалами объектов.
Для большинства художников это стало стандартом и позволило творчеству
этих художников достичь новых высот.

1.5 Алгоритм Fast Loaded Dice Roller

Быстрая и эффективная генерация случайных чисел долгое время была


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

Исследователи Массачусетского технологического института


разработали алгоритм, который, по крайней мере, для некоторых задач,
может выдавать случайные числа с наилучшим сочетанием скорости,
точности и низких требований к памяти, доступных сегодня. Алгоритм,
получивший название Fast Loaded Dice Roller (FLDR), был создан
аспирантом Массачусетского технологического института Ферасом Саадом,
научным сотрудником Камероном Фриером, профессором Мартином
Ринардом и главным научным сотрудником Викашем Мансингхкой, и он
будет представлен на следующей неделе на 23-й Международной
конференции. по искусственному интеллекту и статистике.

Проще говоря, FLDR — это компьютерная программа, которая


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

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

В FLDR игральные кости «идеально» загружены, что означает, что они


точно достигают заданных вероятностей. Например, с помощью
четырехгранной кости можно расположить так, чтобы числа 1,2,3 и 4
выпадали ровно в 23%, 34%, 17% и 26% случаев соответственно.

Чтобы смоделировать бросок загруженных игральных костей с


большим количеством сторон, команде Массачусетского технологического
института сначала пришлось использовать более простой источник
случайности - компьютеризированную (двоичную) версию подбрасывания
монеты, дающую либо 0, либо 1, каждый с 50-процентной вероятностью.
Эффективность их метода, ключевого критерия разработки, зависит от того,
сколько раз они должны использовать этот случайный источник - количество
«подбрасываний монеты», другими словами - для имитации каждого броска
костей.

В статье 1976 года компьютерные ученые Дональд Кнут и Эндрю Яо


разработали алгоритм, который мог имитировать бросание загруженных
игральных костей с максимальной теоретически достижимой
эффективностью. Хотя их алгоритм был оптимально эффективен в
отношении времени он неэффективен с точки зрения пространства или
памяти компьютера, необходимого для хранения этой информации.
Фактически, объем требуемой памяти растет экспоненциально в зависимости
от количества сторон на кубике и других факторов. Это делает метод Кнута-
Яо непрактичным, за исключением особых случаев, несмотря на его
теоретическую важность.

27
FLDR был разработан для большей полезности. FLDR может
использовать до 10 000 раз меньше места в памяти, чем подход Кнута-Яо,
при этом на одну операцию уходит не более чем в 1,5 раза больше времени.

На данный момент основным конкурентом FLDR является метод Alias.


При теоретическом анализе, FLDR имеет одно явное преимущество перед
ним: он более эффективно использует случайный источник - «подбрасывание
монеты». Более того, в некоторых случаях FLDR быстрее, генерирует броски
загруженных игральных костей.

1.6 Обзор существующих аналогов


Catan Universe – игра студии USM. Многопользовательская игра, по
правилам настольной игры Settlers Of Catan. На момент разработки
дипломного проекта:

 Не поддерживает русский язык


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

1.7 Выводы по главе

28
2. Технологическая часть
2.1 Анализ двух похожих IDE, для последующего выбора
игрового движка

Перед началом своей работы мною было принято решение


разъяснить, что из себя представляет «Unreal Engine 4».

Unreal Engine – это обширный набор инструментов для разработки


игр, имеющий огромные возможности для дальнейшей работы с этим
программным обеспечением: от создания стандартных 2D игр на мобильные
устройства, до AAA – проектов для консольных платформ.

Разработка в «Unreal Engine 4» очень проста в освоении и


последующей работы с ней. С помощью внутренней системы визуального
преобразования скриптов, так же называемой «Blueprints Visual Scripting»,
можно создавать готовые игры, не написав ни строчки кода. В сочетании с
удобным интерфейсом это позволяет быстро можно таким образом очень
быстро создавать действующие прототипы.

В этой части n – работы(название работы) мы ознакомимся с основной


экосистемой программного продукта ее возможностями и разнообразием.

Для установки «Unreal Engine 4» используется «Epic Games Launcher».


Переходим на сайт разработчика «Unreal Engine 4» и нажимаем на кнопку
«Get Unreal» в правом верхнем углу.

Перед самой установкой ПО необходимо создать учетную запись.


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

29
После скачивания и установки программной обеспечения откроем
«лаунчер», это приводит к появлению окна на вашем рабочем столе:

Введите свою электронную почту и пароль, которую вы ранее


заполняли в предыдущем абзаце, после выполнения пользователем входа
откроется следующее окно:

30
В появившемся окне нажимаем на «Install Engine», в левом верхнем
углу панели. Программа запуска перейдет к следующему экрану в котором
пользователь может выбрать возможные библиотеки самой программы, эти
же библиотеки можно будет «докачать» позже, таким же образом можно
использовать пользовательские библиотеки, которые делают сами авторы для
этого движка, что сильно ускоряет процесс разработки.

31
Epic Games постоянно обновляет Unreal Engine, поэтому ваша версия
движка может слегка отличаться от представленной на «скриншотах».
По умолчанию выбраны «Starter Content, Templates and Feature Packs» и
«Engine Source». Они будут полезны по следующим причинам:

 «Starter Content»: это коллекция ассетов (ресурсов), которые можно


бесплатно использовать в собственных проектах. В том числе это
модели и материалы. Их можно использовать как временные ресурсы
или в уже готовой игре.
 «Templates and Feature Packs»: шаблоны (Templates) задают базовые
возможности выбранного жанра игры. Например, при выборе шаблона
«Side Scroller» будет создан проект с персонажем, простыми
движениями и камерой на фиксированной плоскости.
 «Engine Source»: «Unreal» — это движок с открытым исходным кодом,
то есть вносить в него изменения может кто угодно. Если вам
понадобится добавить к редактору дополнительные кнопки, то это
можно сделать, изменив исходный код.

Под списком есть список возможных платформ. Если не планируете


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

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

Далее нажимаем на одну из кнопок «Launch», чтобы открыть «браузер


проектов»(Project Browser), после успешного запуска переходим на вкладку
создания проекта «New Project»,

33
нажимаем в появившемся поле на метод разработки под названием
«Blueprint», т.к это небольшая вводная часть перед главным проектом
создадим шаблон «Blank»

Ниже же будут перечислены нужные параметры для сборки проекта.

Вот, за что отвечает каждая опция:

 «Target Hardware»: при выборе «Mobile/Tablet» будут


отключены некоторые эффекты постобработки. Так же можно
будет использовать мышь для сенсорного ввода. Для примера
мною выбрано «Android/Console»;
 «Graphical Target»: при выборе «Scalable 2D or 2D» будут
отключены некоторые параметры постобработки. Выбираем
здесь «Maximum Quality»;
 «Starter Content»: можно выключить эту опцию, чтобы добавить
базовый контент(Starter Content), для дальнейшей работы с
проектом в этом параметре выберем «No Starter Content»

Кроме всего прочего, здесь есть раздел для выбора местоположения


каталога или же папки для хранения проекта в этом же окне можно задать
имя файлу и т.д.

Сменить папку хранения проекта можно, нажав на многоточие в конце


поля «Folder».

Имя самого проекта, не отвечает за название самой игры, для этого в


этом «IDE» есть другая вкладка, поэтому при полной адаптации проекта
можно будет его назвать как угодно в строке/поле Name.

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

1. «Content Browser» в этой панели программой отображаются все


файлы проекта. Ее так же используют для создания
папок/каталогов, и упорядочивания файлов. В этой же вкладке
можно выполнять поиск по файлам с помощью поисковой строки
или же фильтров;
2. «Modes» в этой панели пользователь может переключаться
между имеющимися у него «под рукой» инструментами,
например «Landscape Tool» и «Foliage tool». Изначально
пользователь имеет инструмент «Place Tool», он в свою очередь
позволяет располагать на локации различные объекты, например
источники освещения или же камеры;
3. «World Outliner» отображение объектов на текущем
поле/локации;

35
4. «Detail» параметр отвечающий за отображение свойств объекта,
эта панель предназначена для работы или изменения параметров
объекта;
5. «Tool Bar» в себе он содержит множество различных функций, но
зачастую его чаще используют для воспроизведения прототипов
игры;
6. «Viewport», это обзор самого уровня, т.е нажав на правую кнопку
мыши мы можем осмотреть наше место действия, которое мы
преобразовываем;
Чтобы Unreal мог использовать файлы, их нужно импортировать.
Переходим в Content Browser

Находим папку в которой хранятся наши готовые ассеты и можем


использовать все эти файлы

36
Программа предложит несколько вариантов импорта наших файлов.
Снимаем флажок с «Import Materials», т.к в дальнейшем для игры будут
создаваться материалы без привязки каким либо авторам, это нужно для того,

37
что бы не было нарушения авторских прав пользователя.

Нажимаем на кнопку «import», множество файлов появятся в «Content


Browser»

38
при импорте файла на самом деле он не сохраняется в проекте, если
только не указать это естественным образом, нажав на наши файлы правой
кнопкой мыши и выбрав «Save», все полученные нами файлы занесутся в лог
программы.
Далее мы создаем меши, для нашего уровня, чтобы в дальнейшем
можно было использовать эти меши как объекты. Чтобы перенести объект из
панели «Content Browser», во «Viewport» на нужном объекте мы кликаем
правой кнопкой мыши и переносим наш объект в рабочее пространство.

Эти же объекты можно перемещать, поворачивать или


масштабировать. Для всех этих действий существуют и клавиши, которыми
можно пользоваться W, E и R. После нажатия каждой из этих кнопок на
клавиатуре появляется манипулятор для объекта.
Для того чтобы объяснить как работают материал вы этой программе,
мною был создан один из объектов, в котором хранятся следующие базовые
параметры:
 «Base Color». Цвет или же текстура модели. Используется для
добавления детализации объекта или же градиента цвета;

39
 «Metallic». Насколько материал используемый нами
металлический, т.е насколько он выглядит металлическим;
 «Specular». Преобразование блеска неметаллических
поверхностей;
 «Roughness». Насколько текстура объекта шероховатая.

Ниже представлен пример трех различных материалов. Они имеют


одинаковые цвет, но разные атрибуты. Каждый материал имеет высокое
значение соответствующего атрибута. Значение же остальных атрибутов
является 0:

Например, для создания материала нам нужно перейти снова на


вкладку «Content Browser» и нажать на зеленую кнопку «Add New».
Появляется окно со списком ассетов, которые мы можем собственно ручно
создать. Для работы с материалами нажимаем «Material».

40
Даем название материалу «Banana_Material», а затем дважды кликаем
левой клавишей мыши на созданном нами файле, чтобы открыть его же
редактор.

Перед нами встает панель редактора материалов и он состоит из пяти


основных панелей:

41
1. «Graph», эта панель отвечает за ноды(узлы);
2. «Details» эта панель отвечает за отображение свойств
используемого объекта или же нода. Если нод не был выбран
пользователем, то здесь отображается текущее свойство
материала;
3. «Viewport» эта панель отвечает за меши предварительного
просмотра, представленного материала, в ней же можно
поворачивать камеру, удерживая левую кнопку мыши и двигая
ее;
4. «Palette» отображает список всех доступных нодов для данного
материала.

Прежде чем приступать к созданию материала, нам нужно более


подробно узнать о том, какие объекты используются при его создании: ноды.

Ноды составляют огромную часть большинства материалов


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

У нодов есть входы и выходы, представленные кругом со стрелкой.


Входы расположены слева, а выходы справа.
42
Вот пример использования нодов «Multiply» и «Constant3Vector»,
добавляющих текстуре желтого цвета:

У всех материалов есть особый нод, так же называемый нодом


«Result», который в нашем случаем уже создан как «Banana_Material». Таким
образом мы можем определить, имеет ли конец ноды или же нет, если все
таки нет, то скорее всего тот в свою очередь был поврежден или же не
доделан. То, что подключено к этому ноду, определяет внешний вид
конечного материала:

43
Для добавления модели цвета и деталей нам необходима текстура.
Текстура — это просто двухмерное изображение. Обычно они проецируются
на трёхмерные модели, придавая им цвет и детали.

Для текстурирования банана мы используем «Banana_Texture.jpg».


Применить в материале текстуру позволяет нод «TextureSample».
Перейдите к панели «Palette» и найдите «TextureSample». Добавьте нод,
удерживая левую клавишу мыши и перетащив его на схему:

44
Для выбора текстуры необходимо сначала выделить нод
«TextureSample». Перейдите в панель «Details» и нажмите на
раскрывающийся список, расположенный справа от «Texture».

Откроется меню, в котором перечислены все текстуры проекта.


Выберите «Banana_Texture»

45
Чтобы увидеть текстуру на меше предварительного просмотра, нужно
подключить её к ноду «Result». Удерживайте левую клавишу мыши на белом
контакте выхода нода «TextureSample». Перетащите его на входной контакт
«Base Color» нода «Result».

Вернитесь во «Viewport», чтобы увидеть текстуру на меше


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

46
Нажмите на «Apply» в «Toolbar», чтобы обновить материал, и закройте
редактор материалов после завершения.

Чтобы применить созданный нами материал к нашему примеру, мы


должны вернуться к Content Browser и дважды нажать на «Banana_Model»,
чтобы открыть его. Появится следующее окно редактора:

Переходим в новую панель «Details» и мы можем там обнаружить


раздел «Materials». Кликаем на раскрывающееся меню, расположенное
справа от Element 0, и выбираем наш уже существующий объект
«Banana_Material»

47
Сделав это, мы можем закрыть редактор мешей и вернуться к
основному редактору и взглянуть на Viewport. Можно увидеть, что теперь на
нашем примере есть текстура банана.

Даже имея как пример текстуру банана, можно добавить еще немного
различных элементов для этого объекта, например вращение. В простейшем
варианте «blueprint – ы», они представляют собой «вещи». С помощью
«blueprint – ов», пользователь может свои поведения для объектов, эти же
объекты могут иметь различные свойства, как статические(запас здоровья у
игрока), так динамические(вращение объекта или же любые другие действия
заданные пользователем).

Как и рассмотренные нами ранее материалы, «blueprints», сделаны на


основе нодов, это значит, что можно делать продукт не имея под собой не
единой строки кода. «Blueprint» просты в использовании, однако по скорости
они очень медленные, как например специальные классы в C++, язык

48
которого используется в «Unreal Engine», как основной язык
программирования.

Но независимости от того, что пользователь выберет, в его проекте


всегда могут возникать различные ситуации в которых он может
использовать как скрипты на языке программирования C++, так и просто
«blueprint»:

 Обычно «Blueprint», оформляются намного быстрее чем скрипты


на C++;
 Простота упорядочивания. Можно разделять ноды на разные
области, например на функции и графы;
 Если команда разработчиков никогда не сталкивалась с
программированием, то использование «blueprint – ов», пойдут
команде на пользу из – за простоты использования и легкости в
понимании за что каждая из них отвечает.

Переходя на вкладку «Content Browser» нажмем «Add New» и


выбираем из выпавшего списка «Blueprint Class»

49
Открывается окно с несколькими запросами. Наш класс «Blueprint»,
будет наследовать переменные, функции и компоненты, которые ему будут
предоставлены пользователем/разработчиком.

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


самым правильным решением будет взять ему класс «Actor»

Кликнув два раза на объект «Banana_Blueprint», чтобы мы могли


открыть окно с настройкой самого «Blueprint – а»

50
Для начала, выбираем в выбившемся окне редактора «Blueprint editor»,
вкладку «Event Graph», сам же редактор состоит из четырех основных
панелей:

 «Components», содержит в себе список имеющихся


объектов/компонентов;

51
 «My Blueprint», этот раздел используется в основном для
управления имеющимися графами, функциями или же
переменными;
 «Details», отображение свойств различных объектов классов,
функций или же переменных;
 «Graph», все ноды и логика создаваемая пользователем,
находятся здесь. Перемещаться по самой панели возможно за
счет нажатия левой клавишей мыши и перемещая саму мышь. А
изменение масштаба выполняется прокрутка колесика мыши;
 «Viewport», отображение всех компонентов, имеющие
визуальные элементы.

Теперь нужно сделать, чтобы сам стол начал вращаться. В этом деле
нам наконец понадобятся ноды «Blueprint».

В отличии от своих предшественников – материалов – ноды


«Blueprint», они имеют свои особенности, называемыми «связываемыми
контактами». «Execution». Контакт слева – это вход, контакт справа – выход.
У всех нодов есть хотя бы по одному входу и выходу, иначе созданные
пользователем ноды, не смогут работать, за неимением входов и выходов,
через которые они бы смогли выполнять заданную последовательность
действий.

Если нод имеет в своем же «контакте» имеет, лишь вход, то в любом


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

52
«Node A» и «Node B» будут выполняться, потому что у их входных
контактов есть подключение. Node C и Node D никогда не выполняются,
потому что входной контакт Node C не имеет подключения.

Проанализировав и опробовав работу одной из программ(«Unreal


Engine 4»), я сделал вывод, что это прекрасная программа для больших
проектов и длительной разработки, это можно видеть как складывается
процесс всех элементов в программе ее основную структуру и необычайно
большой спектр всех инструментов, которые она имеет в своем репертуаре,
но для того, чтобы сама IDE становилась лучше ей нужен конкурент, и им
непосредственно стало «Unity», о котором дальше пойдет речь.

2.3 Создание и настройка проекта в Unity

Чтобы сделать отличную игру, нужна хорошая идея, мотивация и цель


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

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

«Unity», считается лучшим игровым движком для инди – разработки в


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

Перед началом своей работы мною было принято решение разъяснить,


что из себя представляет «Unity».

«Unity» является современным кросс-платформенным движком для


создания игры и приложений, разработанный Unity Technologies. С помощью
данного движка можно разрабатывать не только приложения для ПК, но и
для мобильных устройств, игровых приставок и других девайсов.

Стоит заметить, что в сам «Unity» вшит его игровой движок, иначе
говоря, с помощью самой «Unity» можно протестировать работу своей игры,
так же эта IDE поддерживает импортирования большого количества
различных форматов, что позволяет программисту, что помогает
пользователю быстро построить нужную ему модель, ну и в заключении
написание «сценариев»/скриптов осуществляется за счет одних из самых
востребованных и популярных на данный момент языках программирования
JavaScript и C#.

Для того, чтобы полноценно владеть этой платформой один из этих


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

Помощник по загрузке Unity – это небольшая исполняемая программа


(размером примерно 1 МБ), которая позволяет вам выбирать, какие
компоненты редактора Unity вы хотите загрузить и установить.

Если вы не уверены, какие компоненты хотите установить, оставьте


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

55
Здесь выберите компоненты, которые вам понадобятся. Для этой серии
мы хотим установить компоненты, которые вы видите на изображении. Этот
выбор включает в себя сам движок, документацию к движку, IDE;
инструменты сборки для Android и набор ресурсов, которые вы можете
добавить в свой проект позже.

Нажмите кнопку Далее, следуйте инструкциям и опциям, откройте


«Unity», и далее мы создадим наш первый проект.

Unity одинаково подходит как для 2D, так и для 3D игр. Все игры,
созданные в Unity, начинаются как проекты с экрана запуска, откройте
только что установленную копию «Unity»; появится экран, как показано
ниже:

56
Ваши существующие проекты будут отображаться в размытой области,
как на изображении выше.

Теперь же нажимаем на кнопку в верхней панели «New» и переходим к


настройке самого проекта.

Нажав на значок, вы попадете на экран настройки проекта.

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

А пока давайте назовем наш первый проект «Hello world» и переведем


его в 2D-режим.

Нажимаем на кнопку «Создать проект» и далее Unity настраивает


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

Как только ваш новый проект будет создан и откроется Unity, появится
следующий экран:

58
Давайте быстро рассмотрим то, что видно в этом окне. На данный
момент нас интересуют четыре основных параметра/окна:

В этом окне мы будем строить наши сцены. Сцены – это уровни, на


которых происходит все в вашей игре. Если вы нажмете на вкладку «Small
game», вы увидите окно предварительного просмотра того, как выглядит игра
для игрока. На данный момент это должен быть простой синий фон.

59
Этот регион является «Inspector». Сейчас он пуст, потому что в нашей
сцене нет никаких объектов. Позже мы увидим, как он используется.

Наконец, этот регион является окном активов проекта. Все активы в


вашем текущем проекте хранятся здесь. Все внешние импортированные
ресурсы, такие как текстуры, шрифты и звуковые файлы, также хранятся
здесь до их использования в сценах.

60
В Unity весь игровой процесс происходит в сценах. Сцены – это
уровни, на которых происходят все аспекты вашей игры, такие как игровые
уровни, главный экран, меню и ролики.

По умолчанию новая сцена в Unity будет содержать объект камеры в


сцене, называемый «Основной камерой». На сцену можно добавить
несколько камер, но пока мы будем иметь дело только с основной камерой.

Основная камера отображает все, что она видит или «захватывает», в


определенной области, называемой «окном просмотра». Все, что попадает в
этот регион, становится видимым для игрока.

Вы можете увидеть этот экран в виде серого прямоугольника, поместив


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

61
Сама сцена состоит из объектов, называемых «игровыми объектами».
«Игровыми объектами» может быть все, что угодно, от модели игрока до
графического интерфейса на экране, от кнопок и врагов до невидимых
«менеджеров», таких как источники звука.

Игровые объекты имеют набор прикрепленных к ним компонентов,


которые описывают, как они ведут себя в сцене, а также как они реагируют
на других участников сцены.

Нажмите на Главную камеру в Иерархии сцен и посмотрите в


«Inspector». Теперь он не будет пустым; вместо этого в нем будет ряд
«модулей».

62
Наиболее важным компонентом для любого игрового объекта является
его «компонент преобразования». Любой объект, существующий в сцене,
будет иметь преобразование, которое определяет его положение, поворот и
масштаб по отношению к игровому миру или его родительскому объекту,
если таковой имеется.

Дополнительные компоненты можно прикрепить к объекту, нажав


кнопку «Добавить компонент» и выбрав нужный компонент.

Давайте теперь рассмотрим несколько примеров компонентов:

 «Render», отвечает за визуализацию и отображение объектов;


 «Collider», определяет границы физических столкновений для
объектов;

63
 «Rigidbody», Придает объекту физические свойства в реальном
времени, такие как вес и гравитация и.т.д;
 «Audio Source», придает объекту свойства для воспроизведения и
хранения звука. компонент, который на самом деле «слышит»
звук и выводит его на динамики плеера, по умолчанию один из
них находится в основной камере;
 «Animator», Предоставляет объекту доступ к системе анимации;
 «Light», заставляет объект вести себя как источник света с
множеством различных эффектов.

На этой диаграмме мы видим, как Unity складывается из игровых


объектов в сцены.

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

Прежде чем создать свой проект — подумайте, что он должен в себя


включать (какие сцены). Составьте список сцен (на листочке), обдумайте, что
64
каждая сцена будет в себе содержать. Теперь постарайтесь каждую сцену
разбить на «подсцены», чем больше их будет, тем легче будет вашему ЦП.

Конечно, не стоит перебарщивать с количеством сцен. Предположим,


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

Дробление же каждого этажа на сцены с комнатами — не оптимально.


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

Помните, что хороший создатель должен учитывать то, что его игра,
либо приложение, будет использоваться на различных ЭВМ, а это означает,
что свой контент необходимо отладить так, чтобы он мог использоваться на
различных устройствах. Самый очевидный и важный момент отладки —
оптимизация приложения под различные разрешения экранов. Это важный
момент и создатель игры обязательно должен обратить на него свое
внимание, в противном случае, результатом своей работы сможет быть
доволен только он один.

При конструировании игры важно помнить о структурировании


данных — немаловажном аспекте. Имеется ввиду, что все должно быть на
своем месте. Создаете скрипты? — создайте папку для скриптов, там и
храните их, с большой вероятностью, у вас будет не один скрипт,
разбрасывать их по всему проекту не есть хорошо, сами потом будете
мучиться. По своему опыту могу сказать, что вам точно понадобится создать
папки со скриптами, звуковыми файлами, с «GUI» текстурами, материалами,
анимациями, быть может, «префабами» и собственными моделями
(импортированные из 3Ds max'а объекты лучше хранить именно в последней

65
папке, дабы не разбрасывать все модели по проекту в хаотичном порядке).
Когда вы создаете тот или иной скрипт, помните о том, что название
переменных, классов и т.п. должны говорить все сами за себя. Если вы
хотите создать скрипт для инвентаря (поднять предмет, использовать
предмет), то лучше все скрипты однообразных действий (например,
поднятия) начинать с ключевого слова, например: Catch<имя предмета>;
Use<имя предмета>, в таком случае вам будет легче ориентироваться в
проекте, да и выглядит так намного симпатичнее.

Unity3d — такой движок, что если у вас имеются ошибки в написании


скриптов, то игра ваша не запустится. Если же нет явных ошибок, то игра
запускается.

66
Это предупреждения, они просто говорят вам о возможных недочетах,
недоработках или что-то идет не так, то консоль вам об этом обязательно
сообщит.

Это ошибки, если такие имеются, то игра не запустится:

Unity3d — очень гибкий движок, предоставляющий большую свободу


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

В этой части мы узнали, как работает такой программный продукт как


«Unity», на основе выше написанного, можно сделать вывод о том, что
«Unity», просто в применении, а так же будет полезен в более быстрой
разработке программного продукта, исходя из этого стоит обращаться к
этому IDE в том случае если проект небольшой и имеет, цели стать «инди -
игрой», которые имели постоянную популярность у пользователей, за счет их
легкости и пространства для разворота довольно интересных и самобытных
игр, различной направленности, от программных продуктов
предназначенных для ПК, так и для пользователей мобильных устройств
Android и IOS, таким образом покрывая весь рынок новых и интересных
технлогий.

2.4 Вывод по главе.


Если рассматривать эти IDE на уровне разработки или же на уровне
кода, то здесь однозначно выбора за «Unity», он выигрывает за счет того, что
язык, который используется этой программой это простой в использовании и
быстрый в разработке C#, у самого «Unity», повсеместно находится
различные сообщества, а соответственно поиск подходящего материала

67
облегчается и соответственно найти нужные материалы очень просто,
именно поэтому даже не имея навыков программирования с помощью этого
игрового движка можно сделать что-то простое, но в то же время интересное.

«Unreal Engine 4» в свою же очередь подходит для быстрого создания


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

У самой «Unity», слегка ниже системные требования, а сам движок и


проекты на нем занимают совсем немного места на жестком диске.

Два этих движка могут иметь абсолютно одну и ту же графику.


Изначально она будет лучше в «Unreal Engine 4», но все эти факторы зависят
от способностей самых разработчиков, чем опытнее они, тем лучше проекты
создаваемые ими.
С другой стороны, при создании небольших 2D и 2,5D – игр, «Unity» -
это лучший выбор для разработчика, особенно когда речь заходит о продукте
с сенсорным интерфейсом. Обратная же сторона это закрытый код «Unity» и
без использования «Bolt» нужно учиться программировать. Но все обучение
сводится к относительно простым уроками или курсам предоставляемыми в
сети – интернет.
Из всего вышеперечисленного можно сделать вывод создание
программного продукта зависит от того, какими проектами хочет заниматься
команда разработчика, или же сам разработчик. Если это мобильная
разработка в 2D или в 2,5D – то это явно по части «Unity» из – за ее простоты
и не особой нуждаемости в коде, в то время как UE4, предназначен для более
крупных и сложно – проработанных проектов, т.к сам по себе «Unreal
68
Engine», не создавался для 2D – игры, именно поэтому реализация проекта
давит ненужную сложность и «вес» в проект. Но если разработчиком было
задумано сделать файтинг, гонку или же серьезный шутер –
предпочтительней выбрать «Unreal Engine 4».

Мнений по поводу каждого движка уйма и многие субъективны. Оба


инструмента мощны и эффективны, а документации по ним много, поэтому
однозначно сказать, что у UE4 явное преимущество по всем составляющим,
нельзя.

Разработчики годами пытаются вырваться из замкнутого круга -


«большая игра в 3D – UE4», «маленькая в 2D – Unity» и до конца этого не
получается. Везде находятся свои исключения: The Forest (новая Sons of the
Forest), Subnautica, Escape from Tarkov, Valheim, Wasteland 3, Green Hell, Rust,
Boneworks – сделаны на Unity.

Если вы начинающий разработчик и стоите перед выбором –


рекомендуем учиться и творить в Unity. После того, как придёт опыт и
захочется создать что-то грандиозное можно переключиться на Unreal – это
идеальный движок, если вы хотите выжать максимум из графики и игрового
процесса.

69
ЗАКЛЮЧЕНИЕ

По итогу данной дипломной работы, над android – приложением, было


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

В работе был разработан простой и удобный в пользовании интерфейс,


вкладки меню при первом и последующих запусках самой игры, для сетевых
схваток между игроками был сделан сервер засчет скриптов
предоставляемых «Unreal Engine 4», чтобы пользователи могли в свободные
минуты провести это время вместе, если в этом будет необходимость, если
же ты хочешь поиграть в одиночку, то внутриигровой бот не заставит
скучать.

Таким образом, все поставленные задачи были выполнены,


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

70

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