АННОТАЦИЯ

Работа Писарева Дмитрия Александровича выполнена на тему «Разработка компьютерной игры в жанре Adventure horror». Актуальность работы обусловлена быстрым ростом объема рынка компьютерных игр и высокий спрос данной продукции у пользователей. Объектом исследования является компьютерная игра в жанре adventure horror – «Divine Providence», предметом – игровые механики adventure horror игр. Цель данной работы – разработка компьютерной игры в жанре adventure horror, отвечающей современным тенденциям рынка компьютерных игр, с учетом требований заказчика. Магистерская диссертация имеет структуру в виде разделения на две главы: теоретическую и практическую, введение, заключение, список источников. Результатом работы является прототип игрового приложения с использование программного обеспечения Unity. Магистерская диссертация содержит: 71 страницу, 35 рисунков, 1 таблицу, 72 литературных источника.

3 ANNOTATION

The study of Pisarev Dmitry was done the topic «Development of computer game in adventure horror genre». The relevance of the study is due to the rapid growth of the market for computer games and the interest of users in this product. The object of the study is computer game in adventure horror genre – «Divine Providence», the subject – game mechanics of adventure horror genre. The purpose of the study is to develop a computer games in the adventure horror genre that meets current trends in the computer games market, taking into account customer requirements. The master's thesis has a structure in the form of a division into two chapters: theoretical and practical, introduction, conclusion, list of references. The result of the work is a prototype computer gaming application with using Unity technologies software. Master’s thesis contains: 71 pages, 35 figures, 1 table, 72 references.

4 ОГЛАВЛЕНИЕ

Введение ...... 7

Глава 1 Особенности разработки adventure horror игр ...... 10

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

1.2 Особенности игровых механик жанра adventure horror ...... 11

1.2.1 Механизмы прогрессии ...... 12

1.2.2 Экономические механизмы ...... 14

1.2.3 Тактические механизмы ...... 15

1.3 Обзор игр–аналогов ...... 16

1.3.1 Slender: The Arrival ...... 16

1.3.2 SCP: Containment Breach ...... 18

1.3.3 Outlast ...... 19

1.3.4 Dead space ...... 21

1.3.5 Resident evil 3 (Remake)...... 22

1.3.6 The Last of Us ...... 24

1.3.7 Until dawn...... 25

1.4 Выбранные механики и особенности ...... 26

Глава 2 Разработка прототипа компьютерной игры ...... 28

2.1 Выбор среды разработки ...... 28

2.1.1 Unreal Engine 4 ...... 29

2.1.2 Cry Engine 5 ...... 31

2.1.3 Unity ...... 32

2.2 Выбор средств разработки ...... 33

2.2.1 Средство для написания и отладки кода ...... 34

5 2.2.2 Средство редактирования трехмерной графики ...... 34

2.2.3 Средство текстурирования моделей ...... 35

2.3 Проектирование игрового приложения ...... 36

2.3.1 Составление дизайн документов ...... 36

2.3.2 Проектирование архитектуры игры ...... 38

2.4 Реализация ...... 42

2.4.1 Ресурсы игры ...... 42

2.4.2 Использование встроенных инструментов Unity ...... 45

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

интерфейса ...... 53

2.4.4 Использование инструментов постобработки ...... 55

2.4.5 Инструменты работы со сценой ...... 56

2.4.6 Использование сторонних инструментов ...... 57

2.4.7 Апробация прототипа ...... 61

Заключение ...... 63

Список используемых источников ...... 65

6 ВВЕДЕНИЕ

В настоящее время с развитием цифровых технологий современные компьютерные игры стали неотъемлемой частью человеческого рода деятельности, при этом являясь не просто элементом досуга, а неся в себе глубокую смысловую нагрузку. Игровые подходы активно встраиваются в другие виды деятельности человека, такие как учеба или работа. Компьютерные игры – это огромный сегмент индустрии развлечений, постоянно развивающийся и растущий. C каждым годом появляются множество новых игр разнообразных жанров на различные платформы, а игровые корпорации готовы тратить огромные средства на разработку новых, либо на продолжение уже существующих и получивших огромную популярность игр. Так согласно статистике аналитического агентства Newzoo [48] объем рынка компьютерных игр на 2019 год составляет $148,8 млрд., при этом за период 2018-2022 совокупный среднегодовой темп роста будет составлять 8,1% [31]. Все это говорит не только о быстром развитии рынка, как самих игр, так и игровых платформ, но и о постоянно растущих потребностях пользователей, что определяет актуальность данной работы. Развитие технологий позволяет направить силы в сторону улучшения визуальной составляющей, таким образом, можно сказать, что индустрия компьютерных игр, выступает на равных с индустрией кино. Но, в отличии с индустрией кино, игры обладают возможностью взаимодействия с протекающим игровым процессов в реальном времени, с возможностью влиянии на исход событий, что усиливает эффект присутствия и позволяет пользователям глубже погружаться в виртуальный игровой мир [16]. Поэтому компьютерные игры остаются одной из самых популярных форм развлечения в мире, и множество игроков готовы проводить по несколько часов в день, играя в различные стратегии, шутеры, хорроры, MMORPG [18].

7 Одним из наиболее популярных жанров компьютерных игр является adventure horror, который представляет собой интерактивную историю с яроко выраженным акцентом на нагнетание атмосферы тревоги и страха, а также выживание игрового персонажа, подобно сюжетам фильмов ужасов и литературных произведений. Наиболее важным элементом данного жанра игр является сюжетное повествование и исследование мира, а также решение логических задач, которые потребуют от игрока умственных усилий. Не смотря на сходство данного жанра с другими видами приключенческих игр, стоит отметить, что в процессе игры пользователь не ощущает полноценного контроля над происходящими событиями. Это достигается различными игровыми механиками – набором возможностей, которые определяют возможности интерактивного взаимодействия между пользователем и игровым миром или так называемый геймплей (от англ. gameplay) [32]. Не только качество визуального контента привлекает пользователей будущей игры, а также новый игровой контент, новые игровые механики или новые сочетания уже имеющихся механик. Ведь если пользователю понравится пройденная игра, то он с большой вероятностью будет искать подобную игру, но более качественную и популярную, с хорошими отзывами других пользователей. Поэтому большую часть времени геймдизайнеры уделяют проектированию будущего продукта, его механикам и игровому контенту, поскольку от этого зависит не только будущий рейтинг игры и разработчика внутри игрового сообщества, но и прибыль от продаж. Объект исследования – компьютерная игра в жанре adventure horror – «Divine Providence». Предмет исследования – игровые механики adventure horror игр. Цель работы – разработка компьютерной игры в жанре adventure horror, отвечающей современным тенденциям рынка компьютерных игр, с учетом требований заказчика. Для достижения поставленной цели требуется решить следующие задачи:

8 1. Выявить среди игр-аналогов игровые механики. 2. Выбрать игровой движок и программные средства разработки. 3. Спроектировать архитектуру игры. 4. Реализовать MVP прототип игрового приложения. 5. Апробировать игру. В основу теоретико-методической базы входят труды, посвященные разработке компьютерных игр и проектированию игровых механик, созданных бывшими, так и действующими разработчиками, такие как E. Adams, C. Bateman, C. Crawford, A. Rollings. Также для реализации данного приложения были рассмотрены документации к множеству программ, таких как Unity, Blender, Substance Painter и другого программного обеспечения, используемого в данном проекте. Теоретическая значимость состоит в возможности использования опыта, полученного в работе при создании компьютерной игры, с учетом требований заказчика. Практическая значимость заключается в разработке прототипа игрового приложения, направленного на современный рынок компьютерных игр. Структура работы, с учетом поставленных задач, представлена в виде двух глав. Первая глава – теоретическая, в которой на основе игр-аналогов будут рассмотрены механики игр жанра adventure horror и их особенности, на основе которых будет спроектирована концепция будущего игрового приложения. Вторая глава – практическая, посвященная реализации готового прототипа, выбору среды и средств разработки, прототипированию архитектуры.

9 Глава 1 Особенности разработки adventure horror игр 1.1 Описание предметной области

Компьютерные игры – вид программ, которые используются для организации игрового процесса, внутри которого пользователю предоставляется возможность изменять внутриигровую ситуацию посредством интерактивного взаимодействия с компьютером, выполняющим роль ведущего или партнера по игре и, возможно, с другими пользователями (онлайн игры и кооперативные игры) [36, 58]. Индустрия компьютерных игр зародилась в середине 1970-х годов как движение энтузиастов, а на сегодняшний она включает в себя огромное число направлений, по которым в мире работают тысячи человек [33]. Современные электронно-вычислительные машины привнесли множество новшеств в данную область, среди которых особо значимым является развитие графических ускорителей и центральных процессоров, которые за десятки лет развития эволюционировали в направлении увеличения числа полигонов, разрешения текстур. Например, на сегодняшний день современные видеокарты способны воспроизводить разрешение 8k Ultra HD или поддерживать трассировку лучей (Ray Tracing) в реальном времени, производя сложные расчеты за доли миллисекунд. Можно сказать, что современные игры являются одним из самых требовательных приложений к персональному компьютеру, и мощные компьютеры покупаются игроками для воспроизведения новейших игр, что тесно связывает современную игровую индустрию с индустрией производства компонентов для компьютера, так как игры практически всегда требуют высокие аппаратные мощности, нежели бизнес-приложения [8]. Компьютерные игры, в зависимости от наличия или отсутствия определенных игровых механик и общих черт, можно классифицировать по определенным жанрам, хотя принятых стандартов таксономии как самих

10 жанров, так и определенных механик компьютерных игр на данный момент не существует [27]. Наиболее популярными из них являются игры следующих жанров [31]:  Action – динамичные игры, требующих от игрока быстрой реакции.  Adventure – приключенческие игры, в которых игроку требуется решать логические головоломки;  Shooter – игры в которых игроку требуется уничтожать большое количество врагов с использованием разнообразного оружия. Часто данные жанры объединяют между собой в разных пропорциях, выбирая те или иные игровые механики, присущие им, что в итоге позволяет разнообразить игровой опыт будущих игроков. Стоит отметить, что adventure horror является частным проявлением игр жанра adventure, поэтому для них характеры общие игровые механики, но с некоторыми особенностями, с которыми необходимо ознакомиться перед разработкой будущего продукта.

1.2 Особенности игровых механик жанра adventure horror

Так как не существует четких стандартов игровых механик, то за основу возьмем труды геймдизайнера Эрнеста Адамса [20], который выделяет три основных игровых механизма для всех игр жанра adventure: 1. Прогрессии. 2. Экономические. 3. Тактические. Здесь порядок очередности указывает относительную важность представленной механики для данного жанра. Также помимо выше представленных игровых механизмов авторы выделяют еще два вида механик, которые не используются (однако могут встречаются как побочный результат) в играх жанра adventure или adventure horror:

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

1.2.1 Механизмы прогрессии

Механизмы прогрессии являются основными для игр жанра adventure horror, поскольку именно этот механизм отвечает за динамику игрового процесса и продвижение игрока по сюжету игрового мира. Данная механика представляет собой игровые события, внутри или между которых повествуется сюжет. Внутри такого события имеются четко определенные задание: аватару игрока требуется сделать определенные действия, например, добраться из точки А в точку Б, решить логическую задачу или победить противника, чтобы пройти дальше. Стоит отметить, что в таких играх прогресс игрока жестко контролируется рядом механизмов, которые могут блокировать или разблокировать доступ к следующим событиям. Это могут быть различные препятствия. Например, короткий путь к конечной точке может быть прегражден огромной ямой, и персонажу требуется искать обходной путь. Прямой путь также может быть блокирован различными противниками, вынуждающих главного героя, укрываться в укромных местах, используя различные предметы окружения.

1.2.1.1 Механика lock and key

Зачастую игровой процесс ограничен внутри определенного пространства. В случае игр жанра adventure horror такие пространства целенаправленно делают достаточно малыми (в виде тесных коридоров) и

12 лишь в редких случаях – достаточно большими, с плохим освещением и неудобными углами обзора, умышленно вызывая у игроков чувство страха и клаустрофобии [19]. В таком случае часто используют так называемый механизм «блокировки ключом» (с англ. lock and key). Фактически данная механика может быть описана как поиск ключа, чтобы открыть замок, при этом сами «ключи» и «замки» не обязательно должны быть явными. Например, в качестве замка или блокирующего элемента может выступать противник, которого необходимо победить, используя определенное оружие, которое будет ключом. Другим вариантом ключа может быть способность главного героя взламывать определенные двери, которую он может получить в процессе прохождения. Предполагается, что игрок найдет «замок» прежде, чем он найдет «ключ», на что есть несколько причин [46, 57]:  если игрок найдет ключ раньше условного замка, то это может сильно упростить игровой процесс, сделав его скучным;  когда игрок увидит замок, то ему легче будет понять то, какой именно ключ ему нужен, что усиливает участие пользователя, делая игровой процесс более интересным;  игроки, преодолевая препятствия, которые они не смогли преодолеть ранее из-за отсутствия ключа, будут испытывать прогресс, что увеличивает реиграбельность – повторное прохождение игры или возращение на уже изведанные локации с целью пройти ранее пропущенный участок [21].

1.2.1.2 Использование Quick time event, как механизма прогрессии

Другая механика, используемая в играх – Quick time event (или QTE), где игроку требуется быстро выполнить определенное действие, например, дерганье рычага геймпада или быстрый клик нужной клавиши на клавиатуре в нужное время [24]. В большинстве случаев провал quick time event приводит

13 к отрицательным последствиям, как для главного героя, так и ключевых персонажей, например к смерти главного героя. Quick time event используют, чтобы создать эффект присутствия, когда в момент приложения игровым персонажем сильных физических усилий игроку требуется постоянно кликать одну клавишу. Другой вариант использования QTE – передача движений от персонажа пользователю, то есть эмулировать его действия, например подъем по лестнице или выбор варианта ответа в диалоге за ограниченный промежуток времени. Популярность данного типа игровых событий объясняется возможностью всплеска адреналина у игроков. В отдельных случаях у него может возникнуть желание отчаянно биться за жизнь главного героя. Правильно проработанные QTE могут дополнить кат-сцены, так называемые эпизоды, в которых игрок не влияет на происходящие события, исключая паузы, чтобы игрок не потерял интерес к игровому процессу [37]. С другой стороны, данная механика неоднократно критикуется. Например, из-за постоянных повторов кат-сцен, если игрок пропустит резко появившееся событие. В игровом сообществе подобного рода механики называют словами «Нажми X, чтобы выиграть», что делает игровой процесс монотонным. Также большинство игроков жалуются, что QTE только мешает вовлечению в сюжет [39].

1.2.2 Экономические механизмы

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

14 очки опыта и другие. Традиционные компьютерные приключенческие ролевые (RPG) игры имеют очень сложную и детально проработанную экономику, предоставляющую пользователям большое количество всевозможных вариантов использования в процессе игры. В то время как в adventure horror играх подобной механикой главного героя стараются ограничить в своих действиях. Если в игре предусмотрена боевая система (игра с элементами shooter), то игрок не может полностью вооружить игрового персонажа или должным образом подготовиться к предстоящему сражению. В adventure horror у персонажа всегда ограниченный запас здоровья и боеприпасов, а также ограничен инвентарь, при этом его могут сталкивать с большим количеством врагов [44]. В таких играх разработчиками предусмотрено большое количество противников в результате чего в игре пользователю требуется правильно рассчитывать свои возможности и приспосабливаться к изменяющемуся ходу событий, а иногда, предпочтительнее будет отступить и не вступать в открытое сражение, что позволит сэкономить ресурсы и применить их в другой ситуации. В играх (зачастую, с элементами stealth), в которых не предусмотрена боевая система, экономика ограничивается параметрами самого персонажа, в первую очередь здоровьем. В таких играх здоровье может быть ограничено двумя-тремя попытками, которые даются игроку если его настиг противник, и зачастую, если игроку удается долго скрываться от противника, его здоровье регенерируется.

1.2.3 Тактические механизмы

Тактические механики представляют собой важность принятия в игре тактических решений во время игрового процесса. В первую очередь такие механики лежат в основе геймплея игр жанра real time strategy (RTS). Однако и в играх других жанрах от игрока может потребоваться использование

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

1.3 Обзор игр–аналогов

В настоящее время существует достаточно игровых площадок, таких как , Epic Games Store, PlayStation Store и Windows Store, на которых находятся множество игр подобного жанра. Рассмотрим наиболее популярные игровые приложения, чтобы определить то, какие игровые механики и особенности в них используются и в каких пропорциях, а также рассмотрим их достоинства и недостатки. Это позволит избежать ошибок и спроектировать игру с наиболее интересным игровым процессом, соблюдая современные тенденции развития компьютерных игр. Для рассмотрения возьмем популярные игры, имеющие высокий рейтинг на сайте-агрегаторе рецензий Metacritic [42].

1.3.1 Slender: The Arrival

Slender: The Arrival (с англ. — Слендер: Прибытие), разработанная компанией Blue Isle Studios в 2013 году. Имеет оценку на Metacritic 65 баллов [59]. Игра основана на интернет-фольклоре о персонаже по имени Слендермен (англ. Slenderman), с которым предстоит столкнуться в игре главному герою. Игровой процесс достаточно простой, в основе которого

16 лежит механика lock and key. Игрок, находясь на большой заброшенной территории (дом, лес, шахта и так далее) должен собрать необходимое количество записок или включить несколько электрогенераторов, после чего игра пропустит игрока дальше. Персонаж не может дать отпор противнику и вынужден только убегать или не подпускать к себе, светив на него фонариком, который есть у персонажа в наличии (рис 1.1). Также в наличии у главного героя есть камера, которая посредством помех символизирует о приближении противника.

Рисунок 1.1 – Кадр из игры Slender: The Arrival Сам игровой процесс рассчитан на нагнетание атмосферы ужаса, нежели исследование мира, из-за чего игра получила смешанные отзывы. Пользователи отмечали «слабый» и короткий нарратив, а также повторяющийся геймплей. Из чего можно сделать вывод, что данная игра слишком простая и не годится в качестве полноценного примера для будущей разработки.

17 1.3.2 SCP: Containment Breach

SCP: Containment Breach (с англ. — SCP: Нарушение условий содержания) – инди-проект, разработанный в 2012 году, основанный на интернет рассказах о вымышленной организации SPC [60]. Целью главного героя данной игры – выжить и покинуть один из комплексов данной организации, внутри которой произошла авария, повлёкшая за собой нарушение содержания особо опасных объектов (рис 1.2).

Рисунок 1.2 – Кадр из игры SCP: Containment Breach: в левом нижнем углу представлены параметры «моргания» и выносливость Игра построена на механике lock and key. Персонажу необходимо покинуть комплекс, для чего ему потребуется найти некоторые предметы – ключ карты и активировать необходимый ряд замков. В процессе игры главный герой буде сталкиваться с различными противниками. Также в процессе прохождения главный герой может найти различные записки, описывающие внутренний мир, читая которые, игрок не только сможет больше ознакомиться с игровым миром, но и узнать о противниках, чтобы понять, как правильно их избегать.

18 Отдельным параметром в данной игре представлена потребность «моргания», что связано с особенностью одного из противников – передвигаться, пока он находится вне чьего-либо поля зрения. Совокупность данного параметра и выносливости персонажа составляет экономические механики игры. Не смотря на большое количество недоработок игра получила положительные отзывы от игроков. В журнале PC Gamer игра получило 22-ю позицию из 75 в рейтинге бесплатных игр [62]. Многие люди отмечают, что это произошло за счет интернет – рассказов об SCP. Данный аналог может использоваться в качестве ориентира для будущего проекта, как игра с обширным игровым миром и плавным игровым процессом.

1.3.3 Outlast

Outlast (с англ. – Пережить), разработанная компанией Red Barrels в 2013 году, имеющая пользовательскую оценку 80 из 100 баллов [49] с тиражом более 15 миллионов проданных копий. Игра (рис 1.3) повествует о журналисте, расследующим дело о психической больнице, внутри которой над пациентами ставят незаконные опыты [50].

19

Рисунок 1.3 – Кадр из игры Outlast Игра больше ориентирована на исследование игрового мира, поэтому в основе ее механик лежит механизм прогрессирования – lock and key, персонажу постоянно требуется найти ключ, включить рычаг и так далее, при этом в процессе выполнения задания персонажа преследует противник. Также в игре присутствуют пара QTE моментов. Персонаж не может дать отпор противникам, а вынужден только убегать и прятаться, для чего в игре предусмотрены различные укрытия. Герой имеет в наличии камеру, оснащенную ночным виденьем, для работы которой требуются наличие батареек, которые игроку необходимо искать на протяжении всей игры. Количество здоровья ограничено парой попыток, которые даются игроку, если его настиг противник, регенерирующие с течением времени. Данные параметры (здоровье и заряд батареи в камере) составляют внутреннюю экономику и спроектированы таким образом, чтобы у персонажа не было большого количества батареек, держа игрока в напряжении, сопровождая это страхом темноты. Игровой процесс плавный с ярко выраженным акцентом на исследование игрового мира, для изучения которого в игре предусмотрена система записок, подбирая которые игрок больше узнает о сюжете.

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

1.3.4 Dead space

Dead space (с англ. – Мертвый космос) представляет собой серию игр, разработанную компанией Visceral Games (бывшее название EA Redwood Shores). Включает в себя три игры (основная серия игр, не считая спин-оффы) в жанре научной фантастики. Первая часть данной серии (рис. 1.4) вышла в 2008 году на PC, игровых консолях, а также позднее на мобильные устройства. Игра рассказывает о инженере Айзеке Кларке и его противостоянии с «некроморфами» – мертвыми людьми, воскресшими под действием инопланетного артефакта [30]. Первая игра серии получила рейтинг 86 балов на сайте Metacritic [29].

Рисунок 1.4 – Кадр из первой игры Dead Space Игра позиционируется как шутер от третьего лица и ориентирована как на сюжетное повествование, так и на сражение с большим количеством

21 противников, для чего игроку предоставлены различные виды оружия. В игре в равной степени представлены все три типа описанных выше игровых механик. Прогрессия в игре представлена механикой lock and key. В игре присутствуют редкие QTE моменты, с целью передать игроку физическую нагрузку персонажа. В момент отталкивания противника, игроку требуется активно кликать по определенную клавишу и провал QTE всегда приводит к смерти главного героя. Экономическая механика в данной игре представлена, как и реальными предметами (игроку необходимо собирать патроны для оружия, аптечки и деньги для покупки в специальных магазинах различных улучшений, оружия и боеприпасов), так и абстрактными понятиями (у игрока есть шкала здоровья, запас баллона с кислородом и так далее). Все ресурсы в игре не бесконечны, игроку доступно ограниченное количество ресурсов и улучшений оружия, а также ограничен и максимальный инвентарь, в результате чего игроку следует внимательно продумывать свои действия. В виду наличия боев игра предлагает тактических подход. Игрок может использовать части уже убитых врагов, различные взрывающиеся или замедляющие противников бочки, взаимодействуя с которыми игрок может сэкономить имеющиеся ресурсы или выжить, если этих ресурсов у него нет. Отличительной особенностью данной игры является ее интерфейс, все элементы которого вписаны в игровой мир, так называемый диегетический интерфейс [9]. Однако реализовать такой интерфейс крайне тяжело, требуется детальная проработка игрового мира, и самого интерфейса, чтобы он был прост для будущего пользователя. Игра также предлагает качественную графику (на момент разработки) и музыкальное сопровождение.

1.3.5 Resident evil 3 (Remake)

Resident Evil (с англ. – Обитель зла) – серия игр, созданная японской компанией Capcom. Игра Resident evil 3 (рис 1.5) разработана в 2020 году и

22 является переизданием (ремейком) одноименной игры 1996 года. Игра повествует о выживании девушки Джилл Валентайн в вымышленном городе «Раккун-Сити» (от англ. – Raccoon City), охваченном зомби-эпидемией [53]. Рейтинг данной игры составил 77 баллов из 100 [52].

Рисунок 1.5 – Кадр из игры Resident Evil 3 (Remake) Как и выше представленная Dead space данная игра позиционируется как динамичный шутер от третьего лица. Игроку предстоит сражаться с толпой ходячих мертвецов. Как и Dead Space – данная игра имеет похожие механики и особенности. Игроку часто требуется найти необходимый предмет, отслеживать показатель здоровья и, так как инвентарь ограничен, носить только нужные предметы. На локациях игрок имеет возможность взрывать красные бочки, уничтожая большое количество противников, что позволяет сэкономить ресурсы. Несмотря на высокое качество графики и проработанный игровой мир из-за большого количества динамики игра имеет быстрый темп повествования, в результате чего игровой процесс сместился от выживания в сторону обычного шутера, и игра уже не вызывает чувства напряжения у пользователя. При проектировании механик это следует учитывать, чтобы оставаться в рамках жанра adventure horror.

23 1.3.6 The Last of Us

The Last of Us (в российском переводе – Одни из нас) игра, разработанная компанией Naughty Dog эксклюзивно для платформы Sony PlayStation 3 в 2013 году. Сюжет данной игры рассказывает о путешествии главных героев – контрабандиста Джоэла и девочки подростка Элли на территории США, охваченных глобальной пандемией спустя двадцать лет. Игра (рис 1.6) получила множество наград за сюжет, визуальное и звуковое сопровождение, а ее рейтинг составил 95 балов [63].

Рисунок 1.6 – Кадр из игры The Last of Us Игровой процесс плавный, акцентирован на исследовании игрового мира и сюжетном повествовании. На протяжении большей части игры персонаж путешествует по обширным территориям, на которых необходимо выполнить определённую задачу, зачастую представляющую собой переход от точки А в точку Б, иногда, выполняя простые головоломки. В определенные моменты игры главный герой сталкивается с противниками – выжившими или жертвами эпидемии. Персонаж может использовать огнестрельное оружие, однако боезапас, по сравнению с другими играми сильно ограничен, вынуждая игрока экономить и как правило

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

1.3.7 Until dawn

Until Dawn (в российском переводе – Дожить до рассвета) компьютерная игра, разработанная в 2015 году компанией Supermassive Games, эксклюзивно для платформы Sony PlayStation 4. На сайте Metacritic игра получила 79 баллов из 100 возможных [69]. Игра (рис 1.7) представляет собой интерактивное кино.

Рисунок 1.7 – Кадр из игры Until Dawn: индикатор на экране отображает движение геймпада в пространстве Пользователю предстоит играть за различных персонажей и на протяжении всей игры принимать сложные моральные решения, которые будут влиять на них в дальнейшем (на основе «Эффекта бабочки»), в результате чего в игре имеется большое количество концовок [70]. Игра полностью построена на механике QTE: игроку в необходимый момент времени требуется выбирать варианты ответа в диалогах, нажимать определенную клавишу или держать неподвижно геймпад, чтобы персонажа

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

1.4 Выбранные механики и особенности

Из рассмотренных механик и игр-аналогов можно выделить основные типы adventure horror игр: 1. Приключенческие adventure horror (пример: Slender: The Arrival, SPC: Containment Breach, Outlast). В данном типе основной механикой выступает lock and key и игроку постоянно требуется выполнить определенное задание, связанное с поиском ключа или решением головоломки. Игра сосредоточена на исследование мира и сюжетном повествовании. В таких играх отсутствует боевая система и игрок не может дать отпор противникам, что вынуждает его только убегать, следовательно, здесь отсутствуют тактические механики. Экономические механики здесь представлены либо здоровьем самого персонажа, либо другими его параметрами (как в игре SPC: Containment Breach и Outlast). Данный вариант является достаточно простым для реализации, однако однообразный игровой процесс может наскучить игрокам. 2. Игры с элементами action (пример: Dead Space, Resident Evil 3 Remake), где, в отличии от предыдущего типа, у игрока есть возможность дать отпор, используя разнообразное оружие. Прогресс ограничен lock and key и большим числом противников. Игра предлагает тактическое разнообразие и проработанную экономику, требуя от игрока правильно распоряжаться имеющимся ресурсами. При проработке игр данного типа следует

26 внимательно соблюдать баланс между повествованием и динамичными событиями. 3. Игры – интерактивное кино (пример: Until Dawn), в основе которых лежит механизм QTE с минимумом интерактивности, при этом в игре отсутствуют какие-либо другие механики. Игры подобного жанра требуют детальной проработки не только игрового мира, но и большого количества графических ресурсов, в результате чего данный тип игры не подходит для будущего проекта. При разработке проекта, исходя из вышеперечисленных итогов, следует ориентироваться на механики первого типа игр, так как они просты в разработке. Игра в первую очередь должна быть сосредоточена на сюжетном повествовании и исследовании игрового мира. Стоит отметить, что использование локаций коридорного типа, позволит сделать их более детальными, что также скажется на данной особенности. Однако во избежание однообразия геймплея следует обратить внимание на механики игр с элементами action. В качестве ориентира можно выделить аналоги такие как Outlast и Dead Space. Темп игры должает быть плавным, но, чтобы не наскучить игроку, в процессе прохождения в игре должны присутствовать динамичные моменты. Например боевая система построенная таким образом, то возможность дать отпор противнику предоставляется постепенно по ходу прохождения игры.

27 Глава 2 Разработка прототипа компьютерной игры 2.1 Выбор среды разработки

В нашем случае выбор игрового движка является одной из стартовых задач, решить которую необходимо еще на начальных этапах разработки. Игровой движок представляет собой программное обеспечение, которое используется при разработке компьютерной игры, предоставляя разработчикам огромное количеств инструментов, позволяющих сократить разработку, а также давая возможность сборки готовой игры на различные платформы, то есть обеспечивает кроссплатформенность, что позволит избежать повторного написания кода под различные платформы. На сегодняшний день существует большое количество игровых движков, поэтому разработчик игровых приложений сталкивается с проблемой выбора, которая заключается в подборе подходящего игрового движка с учетом условий его использования и предоставляемых возможностей. Необходимо учитывать, что ряд игровых движков некоторые компании разрабатывают для внутреннего использования, другие же разрабатывают игровые движки для того, чтобы сторонние разработчики или дизайнеры могли использовать их для своей разработки игр. Можно самостоятельно написать игровой движок. В таком случае его преимуществом будет улучшенная специализированность под конкретный жанр и платформу, в результате чего он будет работать быстрее, так как универсальность всегда медленнее и менее производительна [7]. Но следует учесть, что разработка собственного движка – процесс очень трудоемкий, требующий большого количества времени и знаний, поэтому использование готового продукта, содержащего необходимый функционал, является целесообразным выбором. Поэтому проведем обзорный анализ современных игровых движков, используемых в современной игровой индустрии.

28 2.1.1 Unreal Engine 4

Unreal Engine 4 (рис 2.1) – программа, разработанная компанией Epic Games с доступным исходным кодом. Движок разработан на языке программирования C++ и поддерживает большинство платформ, в число которых входит PC (Windows, Linux, Mac OS), консоли PlayStation 4 и , Nintendo Wii и Switch, а также мобильные платформы iOS и Android и прочие [68]. В наличии также имеет удобный редактор сцен.

Рисунок 2.1 – Интерфейс Unreal Engine 4 Данный движок поддерживает большинство технологий рендеринга, таких как Direct3D 12, Vulcan API, Pixomatic и OpenGL и воспроизведения аудио: DirectSound, OpenAL и EAX. Также данный движок включает в себя множество компонентов и библиотек для работы с сетью, поддержки распознавания речи и различных устройств ввода. Отличительной особенностью данного игрового движка является возможность написания сценариев с помощью системы визуального программирования Blueprint (рис. 2.2.), в результате чего разработка может быть ускорена, так как нет необходимости изучать и писать код. Помимо этого, данный движок поддерживает написание скриптов с использованием

29 языка программирования C++, которые также можно сочетать с Blueprint, что позволяет писать для данной системы собственные компоненты [67].

Рисунок 2.2 – Система Blueprint в Unreal Engine 4 Из плюсов данного движка можно выделить возможность создавать игры с качественной визуальной составляющей и большой выбор имеющихся инструментов. Как показывает практика данный движок наиболее популярен для создания больших AAA-проектов, разрабатываемых в крупных игровых студиях, а также открытость исходного кода, в результате чего движок можно дорабатывать самостоятельно если есть необходимость. Также стоит отметить то, что движок распространяется абсолютно бесплатно, а согласно роялти, разработчик игр выплачивает отчислении в размере 5%, если выручка за квартал составляет $3 тыс. только после получения прибыли в размере $1 млн. Однако из минусов можно выделить то, что для полноценной работы редактора требуется большое количество вычислительных ресурсов, а изучение работы системы blueprint и языка программирования C++ требует значительного времени. Так как у команды нет опыта работы с данным игровым движком, а быстрота разработки является одним из ключевых факторов, то данный игровой движок не является лучшим кандидатом для разработки проекта.

30 2.1.2 Cry Engine 5

Данный игровой движок (рис 2.3) разрабатывается компанией Crytek и, как представленный выше Unreal Engine 4, тоже имеет возможность создания игр с использованием современных библиотек рендеринга и аудио, и поддерживая большое количество разнообразных (за исключением мобильных) платформ. В наличии также имеется удобный редактор сцен. Программа имеет открытый исходный код. Данный движок позволяет разрабатывать проекты с использованием языка программирования C#, С++, а также при помощи системы визуального создания сценариев Flowgraph [28].

Рисунок 2.3 – Интерфейс Cry Engine 5 Данный движок позволяет создавать игры с качественной графикой и также используется для создания ААА-проектов, а роялти составляет 5% от суммы прибыли, превышающей $5 тыс. Однако, как и в случае с Unreal Engine, у команды нет опыта работы с данным движком, в результате чего он не подойдет для разработки.

31 2.1.3 Unity

Данная среда разработки (рис 2.4) создана компанией Unity Technologies. Этот игровой движок позволяет создавать как 3D, так и 2D игры на большое количество платформ, в число которых входят компьютеры, современны игровые консоли и мобильные системы, а также возможность создания интернет-приложений. Движок работает с большим количеством библиотек и поддерживает написание сценариев на ООП языке программирования C#, а с новыми версиями при помощи системы визуального программирования. Unity предлагает редактор с удобный пользовательским интерфейсом для управления объектами, расположенными в сцене.

Рисунок 2.4 – Интерфейс Unity Немаловажным преимуществом является поддержка модульного компонентно-объектного подхода, когда объекты в сцене представляют собой набор определенных компонентов, которые можно редактировать. В наличии имеется и большое число инструментов для создания графики, анимаций и работы со звуком [71].

32 Движок распространяется бесплатно, однако для коммерческого использования, при доходе свыше $100 тыс., требуется наличие лицензионной подписки, стоимостью от $399 в год. Unity используется как крупными студиями, позволяя создавать кроссплатформенные игры с качественной графикой, так и имеет популярность у инди-разработчиков из-за своей простоты, предлагая гибкое визуальное редактирование объектов и низкие системные требования. Так как в команде есть опыт работы с данным игровым движком, позволяющим создать игру с качественной визуальной составляющей в максимально короткий срок, то выбор Untiy является идеальным решением, так как он позволяет легко производить манипуляцию с игровыми компонентами, имеет в наличии простой интерфейс, модульную систему компонентов, поддержку большинства технологий и платформ, а также поддерживает написание скриптов на объектно-ориентированном языке программирования C#. При этом к программе имеется подробная документация по данному движку на официальном сайте производителя.

2.2 Выбор средств разработки

Так как сам движок не включает в себя средство создания визуального контента и IDE для написания кода необходимо выбрать соответствующее программное обеспечение: 1. Средство для написания кода с возможностью отладки; 2. Средство создания трехмерных моделей, текстурной развертки и анимаций для готовы моделей; 3. Средства создания текстур для готовых моделей.

33 2.2.1 Средство для написания и отладки кода

Актуальным также является выбор удобного IDE, позволяющего просто работать с языком программирования C#. На сегодняшний день существуют множество редакторов кода, из которых можно выделить два, наиболее популярных инструмента Microsoft Visual Studio и JetBrains Rider. Обе программы представляют собой интегрированную среду разработки, позволяющую писать программы на языке программирования C# и имеющую различные средства отладки и рефакторинга кода, а также поддерживающую работу с игровым движком Unity. Так как программы имеют одинаковый функционал, то в данном случае главным критерием выбора соответствующей программы является удобство и наличие опыта работы с программой. В результате чего выбор сделан в пользу JetBrains Rider (рис 2.5), с которым имеется опыт работы.

Рисунок 2.5 – Интерфейс программы JetBrains Rider

2.2.2 Средство редактирования трехмерной графики

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

34 множество профессиональных программ, позволяющих производить создание и редактирование трехмерных моделей. Одним из таких редакторов является программа Blender (рис 2.6).

Рисунок 2.6 – Интерфейс программы Blender Данная программа является абсолютно бесплатной для коммерческого и некоммерческого использования, обладает большим количество инструментов полигонального моделирования, создания текстурной развертки готовых моделей и анимации. Так как Blender не уступает аналогам, а также у команды имеется опыт работы с данной программой, следует использовать ее при разработке проекта.

2.2.3 Средство текстурирования моделей

Помимо создания трехмерных моделей также требуется их текстурирование. Изначально текстурные карты создавались в графических редакторах, например, Adobe Photoshop или GIMP. Однако такой подход неудобен в следствии того, что художнику трудно ориентироваться одновременно при работе с трехмерной моделью и двухмерной картой развёртки. В результате чего для создания текстурных карты выбрана программа Allegorithmic Substance Painter (рис 2.7).

35

Рисунок 2.7 – Интерфейс программы Substance Painter Данная программа предлагает мощные инструменты для быстрого создания процедурных текстур моделей, с возможностью экспорта во все возможные форматы изображений. Рабочий процесс данной программы схож с работой современных графических редакторов, программа использует систему слоев, позволяя как создавать текстуры из готовых изображений, так и рисовать вручную по самой модели. Отличительной особенностью данной программы является наличие так называемых генераторов, эмулируя на модели различные царапины, загрязнения или ржавчину. Учитывая данные особенности и простоту работы, данная программа будет использоваться при разработке проекта.

2.3 Проектирование игрового приложения 2.3.1 Составление дизайн документов

Неотъемлемый частью разработки игры является составление дизайн- документов. Дизайн-документ документ создается геймдизайнером, совместно с другими разработчиками, такими как главный дизайнер, сценарист, звукорежиссёр, а также издателем или заказчиком. Процесс также

36 включает в себя детальное описание будущего разрабатываемого продукта [2]. Дизайн-документ включает в себя описание целевой аудитории, описание игрового процесса, а также сеттинга. В данном документе также расписываются все задания, требования к графике, анимации, звукам и т.д. Дизайн-документ также из детального плана работы на весь период разработки [10]. В процессе работы команда придерживается данного документа на протяжении всего периода разработки игры.

2.3.1.1 Сюжет

Для прототипирования сюжета в команде были привлечены два сценариста. В результате совместной работы для игры был собран сюжет, рассчитанный на 4-5 часов геймплея. Краткое описание сюжета: Тёмный мир Аргата обрывает судьбу Бокхориса. Теперь он — вечный беглец от смерти, ведомый клятвой перед призраками родных. А пока герой пытается выжить, весь Аргат сотрясают события, которые могут привести к концу света. Бессмертные властители станут пылью, обнажат свои лица истинные игроки — существа, не дающие ответы. Поисками этих существ занимается ночной народ, ищущий свой дом, но находящий лишь войну1.

2.3.1.2 Концепт-арты

Так как игра является трехмерной, то для реализации проекта потребуется большое количество 3D моделей окружения и персонажей с текстурами, а также анимации. Для создания трехмерных моделей изначально требуется их детальная проработка путем создания концепт-артов (рис 2.8) с подробным описанием будущей модели [4, 14].

1 Группа игры Divine Providence в социальной сети ВКонтакте [Электронный источник] – URL: https://vk.com/divprov 37

Рисунок 2.8 – Концепт-арт В последующем данные концепт-арты передаются 3D-моделлерам, которые на основе данных иллюстраций создают трехмерные модели персонажей, окружения и так далее.

2.3.2 Проектирование архитектуры игры 2.3.2.1 Архитектурные особенности Unity

Написание скриптов – очень важна составляющая при разработке игр. Для любой игры требуется написание скриптов с целью обеспечить интерактивное взаимодействие игрока с игрой. При помощи скриптов возможно создание различных графических эффектов, управление физическими свойствами объектов, а также реализации искусственного интеллекта персонажей игры. Разработчики Unity придерживаются компонентно-ориентированного подхода (КОП), когда компоненты с включенными в них скриптами позволяют запускать игровые события, таким образом один объект-контейнер включает в себя множество компонентов. Данный подход достаточно прост, однако при увеличении проекта это может привести к раздуванию объектов [13], затрудняя возможность их редактирования.

38 Так как Unity использует объектно-ориентированный язык программирования C#, то в процессе разработки мы также можем пользоваться всеми преимуществами объектно-ориентированного подхода (ООП), которые дают нам возможность использовать различные паттерны проектирования, упрощая разработку [23]. Но стоит учитывать, что в играх довольно сложная архитектура и с ростом проекта, она постоянно расширяется, в результате чего появляются сложны сущности с сильными связями между ними [13]. Поэтому при использовании только ООП подхода появляется постоянная необходимость в правках большого количества кода, что увеличивает длительность разработки. Идеальным вариантом будет правильное совмещение двух подходов, позволяя взаимоисключать недостатки обоих подходов и выделять их достоинства.

2.3.2.2 Использование шаблона Одиночка

Одиночка (англ. Singleton) – шаблон проектирования, позволяющий создавать только единственный экземпляр определенного класса в игровой сцене, предоставляя глобальную точку доступа, для последующего взаимодействия. Попытка создать новый экземпляр класса будет успешной только в том случае, если экземпляр еще не существует. Данный шаблон проектирования (рис 2.9) идеально подойдет для реализации игровых менеджеров – скриптов, управляющих игровыми объектами, такими как интерфейс.

39

Рисунок 2.9 – Диаграмма класса Singleton В дальнейшем, чтобы не писать один и тот же код для всех одиночных классов, целесообразно сделать универсальный шаблонный (generic) класс Singleton, который можно наследовать. При помощи данного шаблона реализован игровой менеджер, хранящий в себе ссылки на компоненты пользовательского интерфейса. Таким образом при необходимости мы можем обращаться к нужным методам из любого скрипта. Такой же шаблон применен к скрипту игрока, для возможного отслеживания его текущего состояния, что в первую очередь используется для реализаций анимаций камеры и модели. Также скрипт используется для реализации менеджера интерактивного взаимодействия, применяемый в игре для возможности осмотра и взятия предметов.

2.3.2.3 Использование шаблона Состояние

При проектировании внутриигровых сущностей возможна ситуация, когда необходимый объект должен действовать определенным образом в различных условиях, то есть состояниях. Однако простой перебор условий посредством оператора if-else приведет к большому количеству однообразного кода. В таком случае можно воспользоваться шаблоном состояние. Шаблон состояние (англ. State) – является поведенческим шаблоном проектирования, который позволяет настроить поведение некоторого объекта 40 в зависимости от его текущего состояния. С помощью данного шаблона проектирования очень удобно реализовать управление персонажа, которое представляет собой перебор возможных состояний посредством нажатия клавиш. Unity-программисты предлагают два вида использования данного шаблона: через реализацию интерфейса (рис. 2.10) или с использованием enum-switch (рис. 2.11). При этом вокруг второго варианта использования ведутся споры, называя его антипаттерном [1]. Однако использование его оправдано тем, что в таком случае не потребуется создавать множество файлов с классами, реализующими состояния, а также если состояния схожи между собой [35, 51].

Рисунок 2.10 – Диаграмма классов шаблона State (через реализацию интерфейса) При создании персонажа множество состояний имеют одинаковые функции. Например, состояния ходьбы, а также бега и подкрадывания выполняют одну и туже функцию – передвижения персонажа, меняется только параметры, такие как скорость или анимация модели персонажа. В таком случае целесообразно использовать enum-switch, при помощи которого мы определяем состояние персонажа, на основе которого устанавливаем необходимые параметры.

41

Рисунок 2.11 – Диаграмма классов шаблона State (использование Enum- switch) Для реализации игрового контроллера используется второй вариант, так как у персонажа малое число enum состояний: холостое, движение, подкрадывание и скольжение. Первое состояние активно, когда персонаж стоит на месте, второе и третье при аналогичных движения, скольжение активно в случае если персонаж встает на крутую поверхность и скатывается вниз под действием гравитации. Также имеется два надсостояния, отвечающие за бег и за то, находиться ли персонаж на поверхности.

2.4 Реализация 2.4.1 Ресурсы игры 2.4.1.1 Графические ресурсы

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

42 полигонов. В современных играх среднее число полигонов на модель персонажа варьируется от 20 до 50 тысяч полигонов.

Рисунок 2.12 – Пример модели: слева модель с текстурами, справа без текстур Каждая модель должна содержать в себе пакет текстур - растровых изображений, накладываемых на поверхность полигональной модели для придания ей цвета, окраски или фактуры. Пример видов текстур представлены ниже. В процессе реализации для игры создано более сотни различных моделей окружения (рис 2.13), архитектурных сооружений разной степени сложности. В число моделей входят различные многообразные виды растений, деревьев (рис. 2.14) и моделей интерьера. В число моделей также вошли различные каменные колонны, дома, пещеры и т. д.

Рисунок 2.13 – Пример модели окружения: слева полигональная сетка, справа – модель с текстурой 43

Рисунок 2.14 – Пример моделей дерева Также для моделей нужно создать характерные анимации. Так, например, для персонажей необходимо создать анимации ходьбы, бега, в зависимости от используемого оружия требуется создать анимации ударов мечом или выстрелы из лука. Unity имеет множество инструментов для работы с анимацией, что позволяет создавать качественные движения, при этом анимации одного персонажа можно использовать для другого. Для главного героя требуется создавать отдельные модели и анимации. Связано это с тем, что модель главного героя от первого лица (которые видны от ракурса глаз персонажа) максимально приближены к игроку и, следовательно, должны быть наиболее качественными. Анимации же в данном случае должны быть упрощенными, но максимально отражающими выполняемое действие персонажа. Например, анимации удара мечом главного героя от лица персонажа выглядят как обычный взмах, в то время как со стороны это может выглядеть как комбинация различных ударов.

44 2.4.1.2 Звуковые ресурсы

Для придания большей атмосферности и усиления эффекта погружения, игре необходимо соответствующее звуковое сопровождение:  фоновая музыка,  звуковые эффекты,  озвучка персонажей. Проработкой звуковых ресурсов занимаются звукорежиссёры. В игре для создания фоновой музыки использовались классические музыкальные инструменты, такие как виолончель и скрипка. Для игры записано семь композиций. Фоновая музыка в игре должна в нужный момент усиливать эмоциональное переживание игрока для большего погружения. При повествовании сюжета также используется озвучка персонажей, которая была заранее записана.

2.4.2 Использование встроенных инструментов Unity 2.4.2.1 Материалы и шейдеры

Для рендеринга игровой движок Unity использует систему материалов. Материалы определяют, как должна отображаться поверхность, они содержат информацию о текстуре, о том, как текстура будет накладывается на поверхность, а также различные параметры, зависящие от используемого шейдера [45]. На сегодняшний день популярны PBR-материалы (англ. physically based rendering) – физически корректная визуализация. Данный метод визуализации позволяет отображать материалы более достоверно, моделируя поток света в реальном мире. Окно настройки материала в программе Unity выглядит следующим образом (см рис. 2.15):

45

Рисунок 2.15 – Меню настройки материала Для правильной работы материалов требуются текстуры, которые служат источником данных для них. В Unity для материалов используются следующие виды текстур (рис 2.16): 1. Текстуры цвета и прозрачности (англ. Albedo) – используются для отображения цвета объекта. Очень важно, чтобы данная текстура не содержала в себе какой-либо информации об освещении (в ней должны отсутствовать блики и тени), так как освещение объекту будет добавлено в зависимости от окружения, в котором будет виден объект. 2. Карта отражения (англ. Metallic) – используются для указания коэффициента отражения материала и показывает, насколько металлоподобна поверхность. Текстура для данного параметра всегда в градациях серого, так как используется значение от 0 – неметаллическая поверхность (черный цвет), до 1 – полностью металлическая поверхность (белый цвет). Аналог данной текстуры – карта шероховатости (англ. Specular), которая, наоборот, отображает то, где поверхность наиболее шероховатая.

46 3. Карта нормалей (англ. Normal) – особый вид текстуры, который позволяет добавлять детали поверхности, такие как неровности, бороздки и царапины, к модели, которые взаимодействуют с освещением, эмулируя реальную геометрию. 4. Карта затенения (англ. Ambient occlusion или AO) - используется для предоставления информации о том, какие области модели должны получать высокое или низкое непрямое освещение, то есть посредством отражения света от другой поверхности. Это изображение в градациях серого, с белым цветом обозначены области, которые должны получать полное непрямое освещение, и черным цветом - отсутствие косвенного освещения. 5. Карта эмиссии (англ. Emission) – используется для контроля цвета и интенсивности света, излучаемого с поверхности. Эмиссионные материалы обычно используются на объектах, где какая-то часть должна казаться освещенной изнутри, например, экран монитора.

Рисунок 2.16 – Виды текстур: 1 – Albedo; 2 – Metallic; 3 – Normal; 4 - AO Шейдер — это скрипт, который содержит математические вычисления и алгоритмы того, как должны выглядеть пиксели на поверхности модели. В

47 Unity шейдеры (рис 2.17) разрабатываются на языке программирования GLSL [56].

Рисунок 2.17 – Пример работы различных видов шейдеров. Слева представлена модель со стандартным шейдером Стандартный шейдер выполняет сложные и реалистичные расчеты освещения. Другие шейдеры могут использовать более простые вычисления, чтобы показать различные результаты. Внутри любого шейдера есть ряд переменных, которым может быть присвоено значение материала, использующего этот шейдер. Этими свойствами могут быть число, цвет или текстуры. Затем материалы используются компонентами рендерера, прикрепленными к игровым объектам, для последующей визуализации.

2.4.2.2 Collider и Rigidbody

Rigidbody – компонент, позволяющий просчитывать физическое взаимодействие для определенного объекта. Если на объекте имеется данный компонент, то он будет реагировать на гравитацию, а также получать импульс при столкновении. Используя Unity API возможно применение физической силы, например, ускорения [54]. Если Rigidbody отвечает за физику объекта, то компонент Collider отвечает за коллизию объекта, то есть за столкновение с другими объектами, тем самым определяя форму объекта. Зачастую коллайдеры имеют грубое

48 приближение геометрии, в отличии от самой модели, что позволяет упростить расчет столкновений [25, 43]. Для создания перемещения персонажа в игре использовался компонент игрового движка Character Controller (рис 2.18), который включает в себя описанные выше компоненты Collider и Rigidbody. При нажатии клавиши данный контроллер передвигает персонажа в направлении, которое определяется как поворотом мыши, так и нажатием нужных клавиш клавиатуры или же стиками геймпада. При этом каждый игровой кадр происходит обновление состояние персонажа, определяется его столкновения с другими объектами (коллизия), а также то, находиться ли персонаж на земле или в воздухе. Все это требуется для того, чтобы управление было максимально отзывчивым, не возникало задержек, персонаж не проходил сквозь объекты, анимации воспроизводились вовремя. Созданный контроллер состоит из трех скриптов. Первый отвечает за регистрацию нажатия клавиш. Второй за движение объекта по игровому миру и проверку коллизии. Третий скрипт представляет собой главный контроллер, который осуществляет между ними взаимодействия, обновляя состояния персонажа. Персонажу доступны такие виды взаимодействия, как ходьба, бег. Также персонаж может прыгать, чтобы взбираться на препятствия.

49

Рисунок 2.18 – Пример коллайдера Character Controller в виде капсулы на модели персонажа

2.4.2.3 Animator

Аниматор позволяет управлять анимацией любого объекта в Unity. При помощи данного инструмента создается специальная блок-схема (рис. 2.19), использующая заранее готовые анимации, состоящая из специальных состояний, между которыми возможно осуществлять переход [22].

Рисунок 2.19 – Интерфейс инструмента Animator

50 Переходы между состояниями осуществляются посредством изменения создаваемых параметров различного типа (целые и вещественные, а также булевы переменные). Для управления данным компонентом также используется специально разработанный для этого скрипт, отслеживающий состояние персонажа и переключающий анимации в нужный момент времени, управляя заранее созданными параметрами. Анимации персонажа объединены в специальные группы, в которых находятся определенные анимации. Также используя данные параметры, можно управлять скоростью воспроизведения анимаций, например, если управление осуществляется при помощи геймпада и от угла наклона стика зависит скорость персонажа.

2.4.2.4 Инструменты работы с искусственным интеллектом

Данные инструменты (рис 2.20) в unity используются для создания персонажей, управляемых искусственным интеллектом (ботов) [47].

Рисунок 2.20 – Компоненты для работы искусственного интеллекта

51 NavMech – навигационная сетка, использующаяся для того, чтобы ИИ понимал, какие зоны можно использовать для прохождения по игровой сцене. Обходные зоны определяют места на сцене, где агент, который в Unity описан как цилиндр, может стоять и двигаться. Проходная зона автоматически строится из геометрии сцены путем тестирования мест, где может стоять агент. Затем локации соединяются с поверхностью, лежащей поверх геометрии сцены. NavMesh Agent – компонент позволяет создавать персонажей, которые могут использовать навигационную сетку, чтобы двигаться к определенной точке. Агенты рассуждают об игровом мире и о своем положении, используя NavMesh. При помощи него агенты знают, как избегать друг друга, а также преодолевать препятствия. Off-Mesh Link – компонент, позволяющий включать навигационные ярлыки для тех мест, которые не могут быть достигнуты напрямую. Используя данный компонент, агент может, перепрыгивать через препятствия. NavMesh Obstacle – компонент, позволяющий описать движущиеся препятствия (бочки, ящики и т.д.), которые должны избегать агенты во время навигации. Пока препятствие движется, агенты делают все возможное, чтобы избежать его, но как только препятствие становится неподвижным, оно вырежет дыру в навигационной сетке, чтобы агенты могли изменить свой путь и обойти данное препятствие, проследовав к конечной точке. Используя данный компонент, были созданы противники, преследующие главного героя, если он подойдет слишком близко. В случае если же игрок не оторвется от преследования, то он погибает, после чего возрождается на точке сохранения – checkpoint. Однако данный компонент не обязательно можно использовать для создания управляемых компьютером персонажей. Данный компонент использовался для разработки системы кат-сцен, таким образом мы можем сэкономить время на создания анимаций этого этапа. В момент, когда

52 требуется воспроизвести кат-сцену, мы отключаем контроллер персонажа и включаем компонент NavMesh Agent.

2.4.3 Инструменты для создания пользовательского интерфейса

Для создания пользовательского интерфейса Unity предлагает специальный инструмент для работы с UI – Canvas. Используя данный компонент для игры, был разработан пользовательский интерфейс, представляющий собой подсказки управления персонажем, а также предоставляющий возможность пользователю взаимодействовать с интерактивными предметами (рис 2.21).

Рисунок 2.21 – Пример взаимодействия с предметом. Внизу выведена информация о предмете и возможные действия Игрок может осмотреть предметы интерьера, а ему предлагается выбор дальнейшего функционала в зависимости от вида предмета. Если это лампа или ключ, то взять их, если записки – прочитать, для чего игроку выведется текст найденной записки. При наведении на интерактивный предмет игроку покажется информация о том, что данный предмет можно осмотреть (рис. 2.22), а метка по центру экрана станет красного цвета, сигнализируя об этом.

53

Рисунок 2.22 – Подсказка интерактивного взаимодействия на экране Так как в игре имеется наличие темных пространств, то игроку помимо осмотра предметов, предлагается возможность использовать подобранный фонарь (рис 2.23)

Рисунок 2.23 – Использование фонаря

54 2.4.4 Использование инструментов постобработки

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

Рисунок 2.24 – Скриншот игры без постобработки

55

Рисунок 2.25 – Скриншот игры с постобработкой

2.4.5 Инструменты работы со сценой

Все уровни в Unity состоят из сцен, которые можно редактировать внутри редактора (рис 2.26). Данный редактор включает в себя инструмент Terrain для создания ландшафта. Изначально при помощи данного инструмента создается общая форма уровня, а в последующем на нее выставляются объекты. Данный инструмент имеет большое количество возможностей, такие как создания высот и низин в реальном времени при помощи использования кистей.

56

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

2.4.6 Использование сторонних инструментов

Не смотря на наличие множества уже имеющихся инструментов, может возникнуть необходимость использовать сторонние, чтобы упростить разработку. Особенностью Unity можно отметить возможность использовать различные дополнительные надстройки – плагины. Такие плагины позволяют дополнить функционал игрового движка. Данные плагины имеются в открытом доступе или приобретаются на официальной площадке Unity под названием Asset store.

57 2.4.6.1 FMOD

Так как функционал Unity для полной работы со звуком несколько ограничен, то следует воспользоваться внешним программным продуктом, что также ускорит разработку звуковых эффектов дизайнерам звука. Таким инструментом выступает программа Fmod – программа, предоставляющая набор библиотек для работы со звуком, предлагая расширенный функционал как программистам, так и дизайнерам звука, что позволяет ускорить разработку [34]. Программа распространяется бесплатно для проектов с бюджетом меньше 500 тыс. долларов. Сравнение функционала Fmod со стандартным аудиодвижком Unity представлено в таблице 2.1. Таблица 2.1 – Сравнение функционала Fmod и Unity Unity FMOD Варьирование Частично Реализовано SFX Смешивание эффектов Частично Частично Случайное воспроизведение Частично Реализовано 3D звук Реализовано Реализовано Кривые затухания Реализовано Реализовано Управление параметрами Частично Реализовано дистанции Динамическая музыка Частично Реализовано 3D Музыкальные вступления и Не реализовано Реализовано выходы Звуковые переходы Частично Реализовано Зацикливание аудиодорожки Частично Реализовано Редактирование звуковых Не реализовано Реализовано переходов

58 Продолжение таблицы 2.1 Unity FMOD Определение положения / Реализовано Реализовано Приглушение Mixing Смешивание звуков Реализовано Реализовано Смешивание в реальном Реализовано Реализовано времени Отладка Частично Реализовано Редактируемые профили Не реализовано Реализовано Параметры Частично Реализовано Проектирование Реализовано Реализовано Поддержка сборки Web Реализовано Реализовано System приложений Импорт формата MP3 Реализовано Реализовано Импорт формата Ogg Реализовано Реализовано Преобразование формата Реализовано Реализовано сжатия звука Потоковое аудио Реализовано Реализовано

Данный инструмент используется для упрощения настройки звука в игровом движке, а также быстрой передачи звуковых дорожек между звукорежиссёром и программистом. FMOD имеет встраиваемое в проект Unity FMOD Studio API и независимой редактор для работы со звуками FMOD Studio.

2.4.6.2 Shader forge

Одна из проблем работы с шейдерами в Unity – их сложная разработка, требующая изучение языка GLSL, который является достаточно сложным в изучении. Поэтому в данном случае целесообразно воспользоваться внешним 59 инструментов, позволяющим упростить и, как в следствии, ускорить разработку шейдеров. В качестве такого инструмента идеально подходит плагин Shader forge [55]. Это визуальный редактор шейдеров (рис 2.26), основанный на системе узлов. Посредством расстановки узлов, которые выполняют определенные вычисления, и связей между ними можно быстро создать требуемый шейдер.

Рисунок 2.27 – Пример работы в Shader forge Плагин поддерживает предварительный просмотр готовых шейдеров в реальном времени и имеет интуитивно понятный интерфейс, а также легко устанавливается и настраивается. Использование данного плагина позволяет намного быстрее создавать новые виды шейдеров. С помощью данного плагина был доработан стандартный шейдер, в результате чего теперь он поддерживает возможность подключения карт шероховатости, изначально вместо которых в игровом движке устанавливался числовой параметр, отвечающий за это значение, в тоже время именно использование карт шероховатости позволит делать некоторые модели не полностью шероховатыми, а лишь в требуемых местах. Другой пример шейдера – полупрозрачные и анимированные, работающие на основе текстурных карт шума (рис 2.28), при этом мы можем управлять

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

Рисунок 2.28 – Полупрозрачный шейдер: слева – модель с применённым шейдером, справа – карта шумов

2.4.7 Апробация прототипа

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

61 движка до последней версии позволило существенно увеличить производительность, но для озвучки персонажей требуется подбор актёров. Согласно новостному издательству РИА Томск: "Наибольший интерес у избранной публики вызвали игры Divine Providence и Into the Depths. Divine Providence – это игра в жанре сюжетного психологического хоррора (ужаса), а Into the Depths – это мрачная и запутанная история с сюжетом из скандинавской мифологии. Большинство участников выставки отметили эти игры за интересный сюжет и красивую графику".2

2 "Мрачные" видеоигры вызвали наибольший интерес томичей на Future GAMES [Электронный ресур] // РиаТомск – Режим доступа: https://www.riatomsk.ru/article/20190616/mrachnie-videoigri-vizvali- naiboljshij-interes-tomichej-na-future-games/ 62 ЗАКЛЮЧЕНИЕ

Объем рынка компьютерных игр многочисленных жанров показывает, что данная индустрия непрерывно растет и пользуется активным спросом, наряду с развитием технологического прогресса и роста вычислительных мощностей. На текущий момент не существует четкой классификации жанров компьютерных игр, что связано с тем, что большинство игровых механик в различных жанрах схожи между собой, однако, в зависимости от жанра, имеют свои особенности. В процессе анализа многочисленных игр-аналогов выявлены игровые механики и особенности игр жанра adventure horror. Материалы по исследованию игровых механик опубликованы в сборнике XXII международной конференции молодых учёных – «Актуальные проблемы социальных наук 2020». На основе имеющихся материалов был спроектирован и разработан прототип компьютерной игры – «Divine Providence». В процессе проектирования была выбрана среда разработки – игровой движок Unity, который позволяет быстро создавать компьютерный игры с качественной графикой и имеет множество инструментов для реализации. Для разработки также выбрано необходимое для создания игры программное обеспечение, в число которых вошло средство работы с кодом JetBrains Rider, а также программы для создания трехмерных моделей Blender и их текстурирования Substance Painter. В процессе разработки в качестве дополнительного инструментария Unity выбраны плагины, позволившие упростить и ускорить разработку проекта. Для игры спроектирована архитектура с использованием компонентно- и объектно-ориентированного подхода. В результате разработан прототип компьютерной игры. Прототип игры рассчитан на исследование игрового мира, для чего была спроектирована игровая сцена, с присутствующей в ней большим количеством интерактивных предметов, которые можно осмотреть или взять. В игре предусмотрены

63 противники, которые будут преследовать главного героя, если он подойдет слишком близко. В процессе реализации была спроектирована архитектура, в которой использовались компонентно- и объектно-ориентированный подходы. Также было создано большое количество различных моделей, для которых в процессе текстурирования были подготовлены комплекты текстурных карт. Для игры произведена постобработка, для необходимых моделей созданы требуемые шейдеры. Графическая составляющая разрабатывалась с учетом современных требований разработки графики в компьютерных играх. Прототип прошел апробацию на выставке компьютерных игр, собрав большое количество положительных отзывов за интересный сюжет и современную графику, что говорит о высокой заинтересованности игроков в данном проекте компьютерной игры. Разработанный прототип компьютерной игры прошел апробацию на Томской выставке компьютерных игры Future Games, где вызвал наибольший интерес у игроков, которым было предложено опробовать пятиминутный геймплей. Проект получил положительные отзывы за сюжет, а также качественные визуальные и звуковые составляющие В дальнейшем данная компьютерная будет дорабатываться до полного релиза. Для проекта планируется привлечение инвесторов и издателей, выход на международный рынок компьютерных игр и публикация на различных платформах, а именно PC, PlayStation 4 и Xbox One.

64 СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Антипаттерн Enum-switch [Электронный ресурc] // Хабр – 2016. – URL: https://habr.com/ru/post/312792/ (дата обращения 25.04.2020). 2. Бирюкова А. Д., Новикова М. В. Жизненный цикл разработки компьютерных игр //Вестник научных конференций. – ООО Консалтинговая компания Юком, 2016. – №. 12-4. – С. 24-25. 3. Букреев А. В. Использование систем трехмерного моделирования в современном мире / А. В. Букреев, И. С. Егоров //European research: innovation in science, education and technology. – 2019. – С. 32-34. 4. Гарбар Ю. И. Особенности создания концепт-арта компьютерной игры. / Ю. И. Гарбар, Т. А. Колесникова // Полиграфические, мультимедийные и web‐технологии: материалы молодежной школы‐семинара 1‐й международ. науч.‐техн. конф. – Харьков, 2016. – №2. – С. 19-22. 5. Гришин О. Е. Компьютерные игры как элемент массовой политической культуры и коммуникации / О. Е. Гришин, Д. А. Иглин // PolitBook. – 2015. – №1. URL: https://cyberleninka.ru/article/n/kompyuternye- igry-kak-element-massovoy-politicheskoy-kultury-i-kommunikatsii (дата обращения: 25.04.2020). 6. Дементьева Л. А. Создание концепт-арта с использованием традиционной и компьютерной техники // Вестник молодых ученых Санкт- Петербургского государственного университета технологии и дизайна. – 2019. – №. 4. – С. 200-206. 7. Зачем писать свой игровой движок? [Электронный ресурc] // Хабр – 2018. – URL: https://habr.com/ru/company/socialquantum/blog/423175/ (дата обращения 20.03.2020). 8. Костичев Д. А. Создание игрового приложения для разных платформ средствами Unity // Информатика: проблемы, методология, технологии. – 2016. – С. 397-400.

65 9. Как интерфейс рассказывает истории в видеоиграх [Электронный ресурс] – 2020. – URL: https://habr.com/ru/company/plarium/blog/493828/ (дата обращения 20.03.2020). 10. Калимулина О. В. Особенности рынка компьютерных игр //Российский внешнеэкономический вестник. – 2010. – №. 5. URL: https://cyberleninka.ru/article/n/osobennosti-rynka-kompyuternyh-igr (дата обращения: 10.05.2020). 11. Кузьмина Г. П., Сидоров И. А. Компьютерные игры и их влияние на внутренний мир человека // Вестник ЧГПУ им. И.Я. Яковлева. – 2012. №2-2. URL: https://cyberleninka.ru/article/n/kompyuternye-igry-i-ih-vliyanie-na- vnutrenniy-mir-cheloveka (дата обращения: 19.05.2020). 12. Максимов А. А. Полигональное моделирование в системе современной компьютерной графики //Решетневские чтения. – 2019. – С. 305- 306. 13. Приемы при проектировании архитектуры игр [Электронный ресурc] – URL: https://habr.com/ru/post/255561/ (дата обращения 25.04.2020). 14. Роганова Д. А., Аккуратова О. Л. Исследование семантики, истории термина «концепт-арт». Проблема идентификации направления среди видов цифрового искусства // Редакционная коллегия. – 2017. – С. 79. 15. Статистика пользователей интернет – платформы Steam [Электронный ресурс] – URL: https://store.steampowered.com/stats/ (дата обращения: 24.12.2019). 16. Тармаева В. И. Компьютерные игры и игровая журналистика // Вестник ЧелГУ. – 2015. №5 (360). URL: https://cyberleninka.ru/article/n/ kompyuternye-igry-i-igrovaya-zhurnalistika (дата обращения: 19.05.2020). 17. Хитрякова А. И. «Серьезные игры» в обучении //Инновационная наука. – 2015. – №. 10-1. URL: https://cyberleninka.ru/article/n/serieznye-igry-v- obuchenii (дата обращения: 11.04.2020). 18. Часовский Н. В., Часовский П. В. Медиавирусы компьютерных игр (на примере vault boy из серии компьютерных игр Fallout) // Челябинский

66 гуманитарий. 2015. №4 (33). URL: https://cyberleninka.ru/article/n/mediavirusy- kompyuternyh-igr-na-primere-vault-boy-iz-serii-kompyuternyh-igr-fallout (дата обращения: 24.12.2019). 19. Adams E. Fundamentals of Game Design. 3rd ed. - New Riders, 2013. 20. Adams E., Dormans J. Game mechanics: advanced game design. – New Riders, 2012. 21. Adellin R., Khuan C. T., Gertrude L. D. Conceptual Framework Puzzle Game with High Replayability //Journal of Physics: Conference Series. – IOP Publishing, 2019. – Т. 1228. – №. 1. 22. Animator controller: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/class-AnimatorController.html (дата обращения: 24.02.2020) 23. Baron D. Hands-On Game Development Patterns with Unity 2019: Create engaging games by using industry-standard design patterns with C. – Packt Publishing Ltd, 2019. 24. Bjork S., Holopainen J. Patterns in game design. – Hingham : Charles River Media, 2005. 25. Box collider: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/class-BoxCollider.html (дата обращения: 24.02.2020). 26. Carvalho M. B. et al. An activity theory-based model for serious games analysis and conceptual design //Computers & education. – 2015. – Т. 87. – С. 166- 181. 27. Connolly T. M. et al. A systematic literature review of empirical evidence on computer games and serious games //Computers & education. – 2012. – Т. 59. – №. 2. – P. 661-686. 28. Cry Engine: Documentation [Электронный ресурс] URL: https://docs.cryengine.com/ (дата обращения: 16.10.2019). 29. Dead space: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/pc/dead-space (дата обращения: 16.12.2019).

67 30. Dead space: Official EA website [Электронный ресурс] URL: https://www.ea.com/ru-ru/games/dead-space/dead-space/ (дата обращения: 16.12.2019). 31. Digital Video Game Trends and Stats for 2020 // Filmora [Электронный ресурс] URL: https://filmora.wondershare.com/infographic/video-game-trends- and-stats.html (дата обращения: 15.03.2020). 32. Does Survival Horror Really Still Exist? // Kotaku [Электронный ресурс] URL: https://kotaku.com/does-survival-horror-really-still-exist-5056008 (дата обращения: 24.12.2019). 33. Egenfeldt-Nielsen S., Smith J. H., Tosca S. P. Understanding video games: The essential introduction. – Routledge, 2019. 34. FMOD [Электронный ресурс]. – URL: https://www.fmod.com/ 35. Game programming patterns in Unity with C# [Электронный ресурс] URL: https://www.habrador.com/tutorials/programming-patterns/ (дата обращения 25.04.2020). 36. Henry E. Electronic game // Encyclopedia Britannica. [Электронный ресурс] URL: https://www.britannica.com/topic/electronic-game (дата обращения 16.03.2020). 37. Kotsev V. et al. Investigating the usage of thermal feedback as an active game element //Proceedings of the 16th International Conference on Mobile and Ubiquitous Multimedia. – 2017. – P. 91-95. 38. Krzywinska T. Gaming horror’s horror: representation, regulation, and affect in survival horror videogames //Journal of visual culture. – 2015. – Т. 14. – №. 3. – С. 293-297. 39. Kuchera B. Quick time events: Tap «A if you're tired of them» // Ars technical., 2008. URL: https://arstechnica.com/gaming/2008/09/quick-time-events- tap-a-if-youre-tired-of-them/ (дата обращения: 18.03.2020). 40. Kuo A., Hiler J. L., Lutz R. J. From Super Mario to Skyrim: A framework for the evolution of video game consumption //Journal of Consumer Behaviour. – 2017. – Т. 16. – №. 2. – P. 101-120.

68 41. Mayer R. E. Computer games in education //Annual review of psychology. – 2019. – Т. 70. – С. 531-549. 42. Metacritic [Электронный ресурс] URL: https://www.metacritic.com/ (дата обращения: 16.03.2020). 43. Mesh render: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/class-Mesh.html (дата обращения: 24.02.2020) 44. Miller V. Understanding digital culture. – SAGE Publications Limited, 2020. 45. Materials: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/Materials.html (дата обращения: 24.02.2020). 46. Montola M. et al. Pervasive games: theory and design. – 2009. 47. Navigation system in Unity: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/nav- NavigationSystem.html (дата обращения: 24.02.2020) 48. Newzoo Adjusts Global Games Forecast to $148.8 Billion; Slower Growth in Console Spending Starts Sooner than Expected // Newzoo [Электронный ресурс] URL: https://newzoo.com/insights/articles/newzoo-adjusts-global-games- forecast-to-148-8-billion-slower-growth-in-console-spending-starts-sooner-than- expected/ (дата обращения: 16.03.2020). 49. Outlast: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/pc/outlast (дата обращения: 16.12.2019). 50. Outlast: Official Red Barrels website [Электронный ресурс] URL: https://redbarrelsgames.com/games/outlast/ (дата обращения: 16.12.2019). 51. Pattern Matching, Part 1: switch, enums & where clauses [Электронный ресурс] URL: https://alisoftware.github.io/swift/pattern-matching/2016/03/27/ pattern-matching-1/ (дата обращения 25.04.2020)

69 52. Resident Evil 3: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/pc/resident-evil-3 (дата обращения: 28.04.2020). 53. Resident Evil 3: Official website [Электронный ресурс] URL: https://www.residentevil.com/re3/ (дата обращения: 28.04.2020). 54. Rigidbody: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/class-Rigidbody.html (дата обращения: 24.02.2020) 55. Shader forge [Электронный ресурс] URL: http://www.neatcorporation.com/Projects/ShaderForge/Media/ShaderForge_Quick Start-en.pdf (дата обращения 24.02.2020). 56. Shaders overview: Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ru/2019.3/Manual/ShadersOverview.html (дата обращения: 24.02.2020). 57. Short T., Adams T. (ed.). Procedural generation in game design. – CRC Press, 2017. 58. Simons I., Newman J. A History of Videogames. – Carlton Books, Ltd., 2018. 59. Slender: The Arrival: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/pc/slender-the-arrival (дата обращения: 16.12.2019). 60. SPC Foundation: Official website [Электронный ресурс] URL: http://www.scp-wiki.net/ (дата обращения: 16.12.2019). 61. Stenros J. The game definition game: A review //Games and culture. – 2017. – Т. 12. – №. 6. – P. 499-520. 62. The best free PC games in 2019 // PC Gamer [Электронный ресурс] URL: http://www.pcgamer.com/the-best-free-pc-games (дата обращения: 23.03.2020).

70 63. The last of us: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/playstation-3/the-last-of-us (дата обращения: 16.03.2019). 64. Treanor M. et al. AI-based game design patterns. – 2015. 65. Vachiratamporn V. et al. An analysis of player affect transitions in survival horror games //Journal on Multimodal User Interfaces. – 2015. – Т. 9. – №. 1. – С. 43-54. 66. Vahlo J. et al. Digital game dynamics preferences and player types //Journal of Computer-Mediated Communication. – 2017. – Т. 22. – №. 2. – P. 88- 103. 67. Unreal Engine 4: Documentation [Электронный ресурс] URL: https://docs.unrealengine.com/ (дата обращения: 16.10.2019). 68. Unreal Engine 4: Official website [Электронный ресурс] URL: https://www.unrealengine.com/ (дата обращения: 16.10.2019). 69. Until Dawn: Metacritic review [Электронный ресурс] URL: https://www.metacritic.com/game/playstation-4/until-dawn (дата обращения: 16.03.2019). 70. Until Dawn: Official Super massive website [Электронный ресурс] URL: https://www.supermassivegames.com/games/until-dawn (дата обращения: 28.04.2019). 71. Unity documentation [Электронный ресурс] URL: https://docs.unity3d.com/ (дата обращения 16.10.2019). 72. Ye M., Hu G. Game design and analysis for price-based demand response: An aggregate game approach // IEEE transaction on cybernetics. – 2016. – Т. 47. – №. 3. – С. 720-730.

71