1. Исследование понятия «компьютерная игра» и обзор технологий разработки компьютерных игр
1.1 Понятия и классификация компьютерных игр
Термином компьютерная игра (или иногда используют неоднозначный термин видеоигра) обозначается компьютерная программа, которая служит для организации игрового процесса (геймплея), связи с партнёром по игре, или сама выступающая в качестве партнёра. Компьютерные игры часто создаются на основе сторонних источников, таких как фильмы или книги, но в последнее время стали появляться обратные случаи, когда по известной игровой серии начинают выпускать дополнительные материалы, расширяющие вселенную игры.
Более того специально разработанные игры могут выступать в качестве обучающего материала или позволяют использовать игроков в научноисследовательских целях. Такие игры редко выпускаются в широкие массы. По некоторым играм проводятся любительские и профессиональные соревнования, которые называются киберспортом.
Компьютерные игры оказали столь существенное влияние на общество, что в последнее время в информационных технологиях появилась устойчивая тенденция к геймификации для неигрового прикладного программного обеспечения. Таким образом, в некоторых европейских школах начали использовать известную игру Minecraft для обучения, а для нужд армий стали создавать специальные симуляторы для тренировок солдат. Компьютерные игры так же с 2011 года официально признаны правительством США и американским Национальным фондом отдельным видом искусства, наряду с театром и кино, а в России киберспорт официально был причислен к видам спорта [3].
Из всего этого следует, что компьютерные игры плотно влились в нашу нынешнюю жизнь. Более того, сфера их использования за последние 10 лет сильно выросла, теперь игры используют не только для развлечения и отдыха, но и для обучения людей и проведения научных исследований.
Компьютерные игры классифицируют по нескольким основным признакам:
• жанр;
• количество игроков; • визуальное представление;
• платформа.
Жанр игры определяется целью и основной механикой игры. Основные жанры представлены в таблице 1.
Таблица 1 — Жанровая классификация
Представленные здесь жанры нельзя назвать полными, так как в последнее время стали появляться игры собственных жанров, которые можно отнести как к одному из представленных здесь жанров, так и к самостоятельному отдельно от них.
По количеству игроков игры разделяются на два вида:
• однопользовательские;
• многопользовательские;
По визуальному представлению компьютерные игры можно разделить на следующие виды:
• текстовые – минимальное графическое представление, общение с игроком проходит с помощью текста;
• 2D – все элементы отрисованы в виде двумерной графики (спрай-тов);
• 3D – все элементы отрисованы в виде трехмерной графики (3D – модели).
В данный список не включены такие категории как 2,5D и псевдо-3D, так как они являются лишь разновидностями представленных категорий и технологии их создания практически не отличаются от технологий создания основных представленных критериев.
По типу платформы:
• персональные компьютеры;
• игровые приставки/консоли;
• мобильные телефоны;
К сожалению, представленная здесь классификация не является полной и может быть дополнена. Так, к примеру, к жанрам можно добавить такой специфичный вид игр как музыкальные игры, где основное внимание уделяется музыке и/или звукам, а многопользовательские игры в свою очередь делятся на несколько подкатегорий. Но стоит понимать, что данной классификации достаточно для определения большинства из существующих игр, так как на сегодняшний день не существует однозначной и полной классификации для компьютерных игр. Это происходит из-за того, что многие игры нельзя отнести к каким-либо критериям. Например, игра может соответствовать сазу нескольким жанрам, выйти сразу на нескольких платформах или иметь как однопользовательский режим игры, так и многопользовательский.
Все это обусловлено тем, что игровая индустрия, в отличие от других сфер развлечений, появилась сравнительно недавно. Но как уже было сказано, данной классификации достаточно, для того что бы определить большинство компьютерных игр, существующих на данный момент.
Основываясь на данной классификации компьютерных игр было принято решение разработать двумерный однопользовательский платформер для персональных компьютеров. Данное решение было принято потому, что платформер обладает простой и понятной механикой, что означает легкость в разработке для начинающих игровых разработчиков. Так же двумерные игры проще в производстве, в отличие от трехмерных.
1.2 Общий алгоритм реализации проекта
Общий алгоритм разработки компьютерной игры мало чем отличается от алгоритма разработки любого другого программного продукта и включает в себя 3 больших этапа:
1 проектирование;
2 разработка;
3 издание и поддержка.
На этапе проектирования определяются цель игры и средства её разработки.
При определении цели выделяются идея, жанр и сеттинг игры. Идея – это то, что будет побуждать игрока играть в создаваемую игру, и она очень тесно связана с жанром. Так, к примеру, основная идея RPG – позволить игроку прожить свою роль так, как ему захочется, а основная идея шутера – позволить игроку поучаствовать в реальных или вымышленных боевых действиях. Таким образом, определив основные идеи игры, жанр будет подобран практически сразу.
Определившись с жанром и идеей игры, следующим шагом будет выбор сетинга. Сеттинг – это среда, в которой будет происходить основное действие игры. Он определяет место, время и условия действия. Выбор сеттинга может сильно облегчить разработку сценария для игры, поэтому его лучше выбирать заранее и основываясь на вкусах целевой аудитории.
К средствам разработки в первую очередь относят программный код и игровой движок. От их грамотного выбора зависит как скорость самой разработки, так и работоспособность самого продукта в дальнейшем. Программный код в первую очередь зависит от платформы, для которой будет создаваться компьютерная игра. Например, если игра создаётся для браузеров, то логично будет использование языка Java или Flash, но, если игра создается для персонального компьютера, оптимальным выбором будет, к примеру, язык программирования C#.
Игровой движок отвечает за низкоуровневое описание физики объектов, правил рендеринга графики и др. При выборе игрового движка первым делом смотрят на его доступность и уже сделанный выбор языка программирования. К примеру, игровой движок Unity позволяет разрабатывать игры на языке C# и он является бесплатным, если средний доход кампании не превышает $100000 в год.
После выбора цели игры и средств разработки, начинается второй этап реализации проекта – разработка.
Разработка самый крупный и долгий этап реализации проекта, он включает в себя большое количество шагов, без которых невозможно создать работоспособный продукт.
Первым делом нужно определиться с сюжетом и игровой механикой. Игровая механика основывается на цели игры, она определяет все объекты и правила, по которым игрок будет взаимодействовать с ними.
Обычно параллельно с разработкой игровой механики идет написание сюжета игры. Сюжет играет не маловажную роль, он определяет то, насколько будет игроку интересно играть в вашу игру. Сюжет представляют в двух вариантах: литературный и режиссёрский сценарии. Литературный сценарий описывает основные события и персонажей игры, которые участвуют в игре. Режиссерский же представляет собой подробное описание уровней игры, событий, которые на этих уровнях происходят
Так же на данном этапе начинается ранняя проработка графической составляющей и дизайна игры. На основе сюжета и заранее обговоренного дизайна, создаются ранние концепт-арты, на основе которых впоследствии будет проработан основной вид игры и персонажей.
После разработки сюжета и игровой механики начинается самая важная часть – разработка самой игры.
На основе сюжета и концепт-артов начинается создание персонажей и объектов игры, параллельно с этим идет разработка игровых уровней. При разработке игровых уровней изначально создается его упрощённый план, на котором схематично изображен сам уровень, а также изображены предметы, с которыми будет впоследствии взаимодействовать игрок.
Следом после этого создается первая версия уровня. Обычно, она представляет собой просто голую локацию, с минимумом необходимых для прохождения предметов. Эта версия уровня служит для того, чтобы протестировать уровень на проходимость. После теста, уровень начинают постепенно заполнять остальными объектами.
Вскоре после создания первых уровней идет сборка первого прототипа игры, который называют альфа-версией игры. Она необходима для того, чтобы разработчик мог провести тестирование (альфа-тестирование) основной механики игры, и проверить насколько она соответствует заявленным требованиям. Часто в альфа-версии игры, у объектов даже нет текстур или они вообще представлены в виде абстрактных объектов.
Если альфа-версия игры успешно проходит тестирование, наступает следующий этап разработки – проработка механики и объектов игры.
На данном этапе идет доработка уровней и механики игры, и начинают добавлять первые сюжетные события в игру, такие как видеоролики, сюжетные диалоги и кат-сцены. Так же исправляются первые ошибки и неисправности в коде игры, которые были обнаружены при тестировании альфа-версии игры.
После этого наступает этап создания второго прототипа игры, или, как принято говорить, бета-версии. Бета-версия служит для того, что протестировать игру на неисправности, фактически бета-версия представляет собой практически готовую игру. В ней могут отсутствовать какие-нибудь незначительные элементы, которые не влияют на геймплей игры. При тестировании бета-версии игры проверяется абсолютно все. Часто, особенно, если игра является мультиплеерной, на тестирование приглашаются обычные игроки – это позволяет сильно ускорить время проведения тестирования, а также снять часть нагрузки с команды разработки.
Если игра проходит бета-тестирование, она отправляется на окончательную доработку и исправление критических ошибок, после чего идет сборка финальной версии игры и следом наступает релиз игры.
После релиза игры последующая её поддержка. Поддержка заключается в выпуске патчей (файлов исправлений ошибок в готовом продукте). Так же для того, чтобы продлить жизненный цикл игры, для неё выпускают дополнительный контент в виде DLC (Downloadable content), которые добавляют различные предметы и/или возможности для игрока.
Таким образом, стало понятно, что этапы разработки компьютерных игр мало отличаются, от этапов разработки любого другого программного продукта.
1.3 Средства создания компьютерных игр
1.3.1 Анализ игровых движков
Основными средствами разработки игр являются игровые движки, которые отвечают за низкоуровневое описание физики игры, правил рендеринга графики и пр. и графические редакторы для отрисовки графики.
Для разработки компьютерной игры основным средством является игровой движок – программное средство, для разработки компьютерных игр. Игровые движки сразу включают в себя все необходимые алгоритмы для правильного функционирования игры и её разработки.
В настоящее время существует огромное количество различных игровых движков. Основные их различия заключаются в поддерживаемых языках программирования, функциональности и, что не менее важно, в стоимости лицензии. При выборе среды разработки основное внимание было уделено как раз на эти параметры. Для анализа выбрали следующие игровые движки Unreal Engine, Unity, и Game Maker: Studio.
Game Maker: Studio [12] – игровой движок, разработанный и поддерживаемый компанией YoYo Games, написан на Delphi (следующая версия на
C#).На данный момент является одним из наиболее популярных игровых движков для разработки двумерных игр для всех современных популярных платформ. Для разработки использует собственный упрощенный язык программирования GML (Game Maker Language).
Данный игровой движок имеет несколько версий распространения:
• Trial;
• Desktop;
• Web;
• UWP;
• Mobile;
Каждая из этих версий (кроме Trial) отличается платформой, для которой будет создана игра. Trial – версия является бесплатной и предоставляется для тех, кто хочет сначала опробовать игровой движок, имеет ряд ограничений на количество объектов, используемых в игре, а также позволят компилировать проект только для теста на операционной системе Windows.
Unreal Engine [24] – игровой движок, разрабатываемый и поддерживаемый компанией Epic Games.
Первая игра, созданная на этом движке — Unreal — появилась в 1998 году. С тех пор различные версии движка были использованы в более чем сотне игр и других проектов.
Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X; консолей Xbox, Xbox 360, Xbox One, PlayStation 2, PlayStation 3, PlayStation 4, PSP, PS Vita, Wii, Dreamcast, GameCube и др., а также на устройствах, управляемых системой iOS и Android.
Для упрощения портирования движок использует модульную систему зависимых компонентов; поддерживает различные системы рендеринга (Direct3D, OpenGL, Pixomatic), воспроизведения звука (EAX, OpenAL, DirectSound3D), средства голосового воспроизведения текста, распознавание речи, модули для работы с сетью и поддержки различных устройств ввода.
2 марта 2015 года Unreal Engine 4 стал бесплатным. Однако, разработчики игр, как и прежде, должны передавать 5 % от прибыли игры компании Epic Games, но при условии, что доходы игры составляют более $3000 за квартал.
Unity [21] – средство для разработки двух- и трехмерных игр, являющееся одним из наиболее популярных на сегодняшний день систем разработки. Позволяет создавать приложения, работающие под большинством современными операционными системами (Windows, OS X, Windows Phone, Android, Apple iOS, Linux), а также на игровых приставках Wii, PlayStation 3,
PlayStation 4, Xbox 360, Xbox One и MotionParallax3D дисплеях (устройства для воспроизведения виртуальных голограмм), например, Nettlebox. Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL. Последние версии Unity позволяют создавать приложения для очков виртуальной реальности.
Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок поддерживает два сценарных языка: C#, JavaScript (модификация). Расчёты физики производит физический движок PhysX от NVIDIA.
Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»). Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты.
Unity распространяется бесплатно, но помимо бесплатной, существуют четыре сборки - стандартная Unity, Unity iOS Pro, Android Pro и командная лицензия. Они отличаются стоимостью и функциональностью.
Бесплатная версия имеет некоторые ограничения, однако возможность распространять игры имеется, при условии, что ежегодный доход с игры не превышает 100 000$. С выходом Unity 5 многие ограничения Free версии были убраны, но ежегодный доход с игры всё также не должен превышать 100 000$.
Все это делает Unity одним из наиболее приоритетных движков для начинающих игровых разработчиков.
1.3.2 Анализ графических редакторов
Для обработки графической составляющей игры были отобраны три графических редактора: Adobe Photoshop, CorelDRAW Graphics Suite и PaintTool SAI.
Adobe Photoshop [7] – мощный графический редактор для фотографий и рисований, разработанный и поддерживаемый Adobe Systems. Работает с растровыми изображениями, однако имеет несколько векторных инструментов. Лидер рынка в области коммерческих средств редактирования растровых изображений и наиболее известный продукт фирмы Adobe.
Изначально задумывался как мощный графический редактор для растровых изображений в полиграфии, но быстро стал популярен в области Webдизайна. Позволяет работать в большинстве популярных цветовых моделях.
Все это делает Adobe Photoshop одним из лучших графических редакторов.
CorelDRAW Graphics Suite [8] – векторный графический редактор, разработанный и распространяемый компанией Corel. Является лучшим векторным редактором. В пакет CorelDRAW Graphics Suite также входит редактор растровой графики Corel PHOTO-PAINT и другие программы — например, для захвата изображений с экрана — Corel CAPTURE. Программа векторизации растровой графики Corel TRACE до 12 версии входила в пакет как самостоятельная программа.
CorelDRAW позволяет импортировать проекты в большинство современных графических форматах, а рисование в векторах позволяет безболезненно изменять размеры изображения, что несомненно является полезным свойством при разработке графического оформления для двумерных игр.
PaintTool SAI [17] - программа, предназначенная для цифрового рисо-
вания в среде Microsoft Windows, разработанная японской компанией SYSTEMAX.
Данная программа в первую очередь направлена на тех, кто для рисования использует графические планшеты. Обладает простым и понятным интерфейсом, значительно «легче» относительно Adobe Photoshop, благодаря чему обладает высокой скоростью работы и запуска даже на относительно слабых компьютерах. Поддерживает все популярные графические форматы.
Для разработки проекта был выбран игровой движок Unity, так как он проще в освоении и при этом предоставляет огромный функционал в создании различного рода игр, а бесплатная версия не обладает какими-либо серьёзными ограничениями. Так же он широко распространен среди разработчиков игр в России, что ещё сильнее упрощает его освоение.
Для создания графической составляющей игры было решено использовать Paint Tool SAI, так как к разработке графики был привлечен сторонний человек, который был лучше знаком с данным графическим редактором. Так же данный редактор обладает лучшей совместимостью с графическими планшетами, что упрощает процесс создания графики для игры.
1.4 Анализ существующих разработок
В качестве проекта был выбран однопользовательский 2D – платформер, поэтому основных конкурентов стоит искать в той же жанровой категории. Но стоит помнить, что данный жанр потерял свою популярность, из-за чего современные игры в этого жанра часто не являются чистыми платформерами. Самыми яркими представителями в последнее время были:
• Ori and the Blind Forest;
• Mark of the Ninja;
• Dust: An Elysian Tail;
• Limbo;
• DuckTales: Remastered;
• Wings of Vi.
Ori and the Blind Forest [16] – игра в жанре платформер разработанная студией Moon Studios и изданная Microsoft Studios для платформ Windows и Xbox One. Игра полностью выполнена в двумерном стиле и написана на игровом движке Unity.
Сюжет рассказывает о лесном духе Ори, который является небольшим листиком огромного духа-дерева, защищающее волшебный лес. Однажды штормовой ветер отрывает Ори и уносит его далеко в лес. Упав на землю, он превращается в небольшое белое существо и находит Нару – духа, живущего в лесу и похожего на большого черного медведя, - которое становится для Ори матерью.
Спустя время, темный дух Куро, крадет сердце Древа, и лес начинает стремительно увядать. Вскоре после этого Нару так же погибает и Ори остается один. Он пускается в странствие по погибающему лесу, но вскоре тоже умирает. Но Древо, рядом с которым Ори заканчивает свою жизнь, использует оставшиеся силы, воскрешает его и просит очистить волшебный лес от тьмы.
Игрок управляет небольшим белым существом Ори и небольшим лесным духом Сейном, который его защищает. Игровая механика представляет собой типичный платформер, игрок перемещается по большой карте преодолевая различные препятствия и сражается с различными врагами. В игре так же присутствует простая система прокачки в виде небольшого дерева умений. Для покупки новых умений нужно собирать небольшие сгустки энергии, разбросанные по миру игры. Карта мира загружается сразу и полностью, и игрок сам выбирает куда пойти. Единственным ограничением в данном случае является необходимость определенных способностей для прохождения определенных участков.
Игра отличается невероятно красивым оформлением, что, несомненно, выделяет её среди прочих игр данного жанра. За отличным сюжетом, рассказываемом в игре, интересно наблюдать, а звуковое сопровождение отлично задает нужную атмосферу. Минусом можно считать лишь несколько усложненный геймплей из-за неинтутивного управления, но во всем остальном, данную игру можно считать эталоном жанра.
Mark of the Ninja [15] – двумерный стелс-экшен , разработанный канадской студией Klei Entertainment для Xbox 360 и ПК, выпущенная в сервисах Xbox Live Arcade и Steam. Данная игра не является чистым платформером, но имеет большое количество атрибутов данного жанра.
Сюжет повествует о безымянном ниндзя, который носит звание Чемпиона клана Хисоми, так как получил особую татуировку, которая усиливает его способности, но взамен постепенно сводит его с ума. Он пытается освободить выживших членов его клана, которые попали в плен после атаки отряда Гессен.
Геймплей игры основан на скрытном прохождении уровня, избегании контактов с противниками и обезвреживании ловушек. Главный герой умеет прятаться в вентиляции, канализационных люках и за предметами интерьера.
Основное оружие — меч-ниндзято, которым можно выполнить бесшумное убийство ничего не подозревающей жертвы и бамбуковые дротики, предназначенные для отвлечения и уничтожения источников света. Несмотря на наличие смертельного оружия, игра в равной степени ориентирована как на устранение всей охраны уровня, так и на бескровное прохождение. В процессе прохождения покупается и открывается дополнительное снаряжение атакующего и отвлекающего действия.
Практически за каждое действие начисляются очки, на которые можно открыть новые приёмы, приобрести новое или улучшить старое снаряжение. Дополнительно на каждом уровне выдается 3 разных бонусных задания. После выполнения заданий одного типа становится доступным костюм, специализированный для определённого стиля прохождения.
Также на каждом уровне, в скрытых местах можно найти артефакты, которые дадут вам несколько сотен очков. Ещё на уровне присутствуют различные головоломки, которые называются Комнатами испытаний. По прохождении головоломки вы получаете 1 из 3 скрытых на уровне свитков Хисоми, который также дает дополнительные очки. В основном головоломка заключается в том, чтобы пройти комнату, избежав ловушек.
Данная игра является отличным стелс-экшеном среди двумерных игр подобного жанра, которых не так много производится в последнее время. Обладает стильным графическим оформлением, которое задает атмосферу всей истории. Минималистичный и информативный интерфейс, но несколько перегруженное управление, которое может отбить желание играть дальше.
Dust: An Elysian Tail [11] – экшен-РПГ с элементами платформера, разработанная независимыми разработчиком Дином Додриллом и опубликованная Microsoft Studios. Данная игра так же не является чистым платформером.
Dust происходит в вымышленном мире Фаланы, населенном антропоморфными животными. Игрок управляет титулярным главным героем, Дастом, который пытается вспомнить свое прошлое. В последствии ему предстоит узнать тайну своего появления, а также спасти свой мир от тирании Генерала Гайя. Даст обладает легендарным мечом, Лезвием Аарах. Фиджет, Хранитель меча, выступает в качестве компаньона Даста и может использовать магические атаки. Пока игрок и его компаньон путешествуют по миру, они могут приобрести бонусы, которые постоянно будут изменять геймплей, такие как возможность двойного прыжка или вход на ранее недоступные территории. Включающая в себя элементы ролевых игр, Даст может получать очки опыта, побеждая врагов, и в свою очередь повышать уровень. Они могут быть использованы, чтобы поднять различные атрибуты, такие как здоровье, сила, защита или магия.
Геймплей стандартный для платформеров – игрок передвигается по уровням, преодолевая препятствия, но стоит понимать, что в отличие от предыдущих 2х игр, здесь наиболее важным аспектом является развитие персонажа и убийство врагов. Из-за этого понятно, что данная игра скорее подвид платформера, который носит название метроидвания.
Limbo [13] – игра жанра пазл-платформер, созданная компанией Playdead.
Как такого сюжет здесь нет, все, что известно игроку, это цель игры – дойти до загадочной девочки. Геймплей представляет собой типичный платформер с элементами пазла – игроку нужно добраться от начала уровня к его концу избегая ловушек и врагов, попутно решая простые пространственные головоломки. Игра выполнена в стилистике минимализм, и в ней преобладают преимущественно темные тона, из-за этого ловушки не всегда заметно и игрок легко погибнуть.
Основной проблемой игры, является её собственная стилистика, которая хоть и создает нужную атмосферу, в некоторых случаях может очень сильно помешать при игре.