Книги: на русском вышло «Введение в дизайн игровых систем» от дизайнера Guitar Hero 6 и Syphon Filter 5
В российскую розницу поступило «Введение в дизайн игровых систем. Пошаговое руководство по созданию сбалансированных игр», — сообщает издательство «Бомбора». Это книга про разработку для начинающих (в ней прописаны самые основы работы). Делимся отрывком.
К слову, автор книги — Дакс Гэзеуэй (Dax Gazaway). С 2013 года он преподает гейм-дизайн в Университете Полных Парусов во Флориде. До этого он более десяти лет занимался гейм-дизайном. За это время он успел поработать в 3DO, Lucas Arts, Sony Interactive Entertainment и Vicarious Visions. В его портфолио дизайн таких тайтлов, как Star Wars: Obi-Wan, Marvel Ultimate Alliance 2, Syphon Filter 5 и Guitar Hero 6.
ГЛАВА 4
ИНСТРУМЕНТЫ СИСТЕМНОГО ДИЗАЙНА
В игровой индустрии, как и следовало ожидать, используют самые разные компьютерные программные инструменты. У каждой команды и у каждого отдела, проекта и игры свои потребности, и для удовлетворения этих потребностей существует множество инструментов. Некоторыми инструментами пользуются чаще, чем другими. В этой главе описываются некоторые из наиболее распространенных используемых в игровой индустрии категорий инструментов, но для начала мы рассмотрим, что именно подразумевается под термином «данные».
Что такое данные?
В этом и последующих разделах часто будут упоминаться инструменты и концепции, связанные с данными. Но что такое данные? В рамках этой книги «данные» — числа или текст, используемые для описания чего-либо. Важно отметить, что с данными можно действовать, но сами по себе они этого не делают. Рассмотрим несколько примеров.
Допустим, у героя есть атрибут «здоровье», с которым связаны некоторые правила. Правила боя определяют количество здоровья, которое теряется при атаке или восстанавливается при исцелении. В настоящее время показатель здоровья героя равен 100. В данном случае 100 — это данные. Это число, соотнесенное с атрибутом здоровья, и с ним можно что-то сделать согласно правилам.
В таблице 4.1 приведено еще несколько примеров данных, относящихся к различным атрибутам и правилам.
Обратите внимание на то, что некоторые данные в таблице 4.1 числовые, другие бинарные (двоичные), а третьи — текстовые. Независимо от своего типа все данные из этой таблицы каким-то образом используются согласно правилам игры. Но сами по себе данные не содержат никаких правил.
Инструменты игровой индустрии
Инструменты игровой индустрии охватывают несколько типов программного обеспечения и приложений, включая инструменты документирования, инструменты редактирования изображений, инструменты 3D-моделирования, инструменты построения блок-схем, базы данных, программы отслеживания ошибок, игровые движки и электронные таблицы. В следующих разделах подробно рассматривается каждый тип инструментов.
Инструменты документации
Текстовые процессоры — одни из самых старых и наиболее используемых компьютерных инструментов; разработчики игр пользуются ими постоянно, в основном для создания и поддерживания документации. Как правило, для каждой особенности, концепции, каждого уровня или игрового персонажа, каждой системы делается заявка. После того как ее предлагают, она обсуждается, уточняется и документируется. Такое обсуждение и наброски дизайна можно быстро сделать в текстовом процессоре, не боясь внести в игру какие-то ошибки. Все концепции или большинство их разработчики описывают в «гейм-дизайн-документации игры» (Game Design Document, GDD (ГДД)). Это может быть как простой документ с перечислением ключевых идей, так и огромнейший монстр на сотни страниц. В некоторых крупных командах есть даже специальный разработчик, единственная обязанность которого — составлять и поддерживать гейм-дизайн- документ игры.
Примеры популярных программ для документации: Microsoft Word, Google Docs (иллюстрация 4.1) и Apache OpenOffice Writer.
Инструменты редактирования изображений
Все, что раньше рисовали карандашами или писали красками, теперь создается или изменяется с помощью инструментов редактирования изображений. Эти инструменты могут импортировать необработанные изображения с камеры или сканера, либо их можно использовать для создания совершенно новых изображений. Современные инструменты редактирования изображений обладают огромной мощью и позволяют художникам быстро создавать и редактировать 2D-изображения ими. Разработчики игр используют инструменты редактирования изображений для множества задач, включая создание пользовательского интерфейса, создание текстур для 3D-объектов, создание скинов для моделей персонажей, концепт-арт и многое другое. Несмотря на то что инструменты редактирования изображений — это в первую очередь сфера деятельности художников, его основы полезно изучить всем разработчикам, включая гейм-дизайнеров.
Примеры популярных для этого инструментов: Adobe Photoshop (иллюстрация 4.2) и GIMP.
Инструменты 3D-моделирования
В трехмерной видеоигре пользователь видит трехмерные объекты и взаимодействует с ними. Для создания таких объектов художники и дизайнеры используют инструменты 3D-моделирования. Их интерфейс позволяет создавать трехмерные объекты и манипулировать ими в смоделированном 3D-пространстве. Обычно у инструмента есть несколько видов камеры, позволяющих рассматривать объект с нескольких точек зрения одновременно. Эти инструменты также имеют элементы управления для редактирования 3D-объектов: растягивания, вырезания, скручивания, изменения размера, разделения и присоединения 3D-фигур. Большинство этих функций имеют очень специфические названия в инструментах /3D-моделирования, поэтому гейм-дизайнерам пригодится знание жаргона этих инструментов.
После создания 3D-объектов в большинстве инструментов можно наложить на объекты текстуру. Под текстурой в играх понимают не совсем то же самое, что в реальном мире. В реальном мире текстуру можно ощутить физически. В игровом мире текстура моделируется с помощью изображения. В инструмент 3D-моделирования можно импортировать изображение, созданное в инструменте редактирования изображений, и наложить его на поверхность трехмерного объекта, создавая иллюзию текстурированной поверхности.
Во многих инструментах 3D-моделирования можно также анимировать 3D-объекты. Разработчики игр используют анимацию для создания предварительных кинематографических сцен (кат-сцен) или экспортируют анимацию в виде инструкций для игрового движка в реальном времени.
Последняя задача инструмента 3D-моделирования — экспортировать объект в формат файла, понятный игровому движку.
Примеры популярных инструментов 3D-моделирования: 3D Studio Max /(иллюстрация 4.3), Maya и Blender.
Инструменты создания блок-схем
Блок-схемы (схемы работы), вроде показанной на иллюстрации 4.4, используются для организации идей и показа последовательности действий в системе. В отличие от письменного текста или линейного списка, в блок-схеме можно графически отображать разветвления, циклы, точки принятия решений и условия завершения. Очень часто дизайнеры уровней используют блок-схемы, чтобы набросать концепцию уровня, прежде чем тратить время на создание карты или 3D-модели уровня. Гейм-дизайнеры и инженеры часто используют блок-схемы, чтобы показать работу системы в процессе и быстро набросать концепцию, прежде чем закладывать время на ее создание в игровом движке.
Примеры популярных инструментов создания блок-схемы: Google Drawings, Visio и OmniGraffle.
Базы данных
База данных хранит большие объемы данных, которые можно извлечь и использовать в дальнейшем. Простой игре, возможно, база данных и не нужна, но для очень большого проекта количество хранимых данных бывает огромным, и хранить их в движке или в скрипте бывает тяжело. Гейм-дизайнеры должны уметь пользоваться базами данных, поскольку именно они часто управляют данными игры. Они обычно используются для хранения данных об оружии, броне, транспортных средствах, бонусах используемых игроком предметов, персонажах ИИ и других типах врагов. База данных объектов служит центральным хранилищем игровых объектов, и благодаря им поддерживается согласованность во всей игре. Представьте, как трудно было бы разбирать все сценарии, написанные для MMO, в поисках отдельных предметов и персонажей. Хорошая аналогия базы данных — картотека. Можно открыть картотеку, найти нужный объект, а затем либо сослаться на него для использования в игре, либо внести в «карточку» изменения, которые повлияют на всю игру.
Система управления предоставляет инструменты для фактического доступа ко всем данным в базе данных. Чтобы понять разницу между базой данных и системой управления базами данных, представьте, как хранится ваша музыкальная коллекция. У вас на жестком диске могут быть сотни или тысячи песен различных групп и жанров. В данном случае ваш жесткий диск похож на базу данных, где хранится вся музыкальная информация, включая сами песни. Для того чтобы найти какую-то информацию, можно просто просматривать папки файлов Windows, но это будет очень медленно и неэффективно, и, скорее всего, часть важной информации вы пропустите. Вместо этого можно воспользоваться приложением для воспроизведения музыки, которое, по сути, является специализированной системой управления базой данных. В таком приложении музыку можно отфильтровать по жанру, можно найти каждую песню конкретной группы, найти содержимое одного альбома или как-то еще получить доступ к данным. В мире разработки игр системы управления базами данных выполняют работу, аналогичную вашему приложению для воспроизведения музыки. При разработке большой ролевой игры всегда возникает необходимость найти, допустим, все мечи, или только щиты, или только предметы 22-го уровня, которые используются рыцарями. В базе данных хранятся данные обо всех видах оружия, доспехов и классах персонажей, а система управления базой данных позволяет получить доступ только к той информации, которая вам нужна.
Но разве электронные таблицы не могут решать те же задачи, что и система управления базой данных? Да, могут, и во многих небольших играх так и есть. Но электронные таблицы загружают всю хранящуюся в них информацию при каждом использовании. Если обратиться к очень большому объему данных, работа электронных таблиц замедлится. Кроме того, если загружать только те элементы, которые нужно отредактировать, будет меньше шансов наделать ошибок в других объектах.
Пример популярной базы данных — Microsoft Access, а примеры систем управления данными — MySQL и Microsoft SQL Server.
Программное обеспечение для отслеживания ошибок
Программное обеспечение для отслеживания ошибок — особый тип системы управления базами данных. В этой базе данных хранится информация об ошибках в игре. Система управления настроена специально для работы с информацией и задачами, которые необходимо решать при работе с ошибками. В отличие от общей системы управления базой данных, программное обеспечение для отслеживания ошибок не требует ручной настройки. Его можно использовать для записи информации о новых ошибках, поиска похожих или дублирующих ошибок, назначения ошибки другому владельцу, отслеживания процесса исправления, а также фильтрации уже исправленного.
Популярные инструменты отслеживания ошибок — Jira, Bugzilla, Plutora и Backlog.
Игровые движки
Игровой движок — это то, на чем собирается вся игра. При создании любой игры часто возникают проблемы, одинаковые независимо от конкретного проекта. Например, везде нужно делать рендеринг графики на экране, определять столкновения объектов друг с другом и извлекать из памяти художественные ассеты (объекты). Для таких задач не имеет смысла программировать их с нуля каждый раз. Поэтому команды разработчиков, студии и специализированные компании собирают в один пакет все общие функции, необходимые для создания большинства частей игры, создавая программу, которая называется «игровой движок».
Помимо управления основными функциями игры движок организует интерфейс для разработки. Например, многие движки имеют трехмерный вид, и разработчики могут перемещаться в трехмерном пространстве, видеть, где в игре расположены объекты уровня, настраивать их или добавлять их. В игровых движках также обычно есть встроенная система управления файлами, чтобы художники, гейм-дизайнеры и программисты могли работать друг с другом, оживляя объекты в игре.
В настоящее время некоторые компании выпускают «промежуточные» движки, не предназначенные для какой-то конкретной игры или команды, а разработанные для использования всеми, кому понадобится простое решение для разработки игр. Преимущество промежуточного программного обеспечения заключается в том, что оно предназначается для огромного числа команд разработчиков, и потому отличается гибкостью. Недостаток же в том, что в нем всегда будут отсутствовать ключевые компоненты, делающие каждую игру уникальной.
Примеры популярных игровых движков — Unity 3D, Unreal Engine, CryEngine и Cocos.
Дальнейшие шаги
После завершения этой главы рекомендуется некоторое время попрактиковаться на реальных примерах и попробовать использовать рассмотренные здесь концепции. Для получения более четкого представления об используемых в гейм-дизайне инструментах попробуйте выполнить следующие упражнения.
- Наберите в поисковой строке в Интернете «Игровые движки для начинающих». Так вы найдете статьи о множестве современных игровых движков и ознакомительные видеоролики о большинстве популярных. Уделите некоторое время просмотру и сравните возможности различных игровых движков, чтобы лучше понять, в каком направлении развивается игровая индустрия.
- Попрактикуйтесь в использовании инструментов документации, у которых гораздо больше возможностей, чем вы можете себе представить. Гейм-дизайнеры должны уверенно пользоваться этими инструментами, не только для того, чтобы набирать слова, но и для того, чтобы правильно форматировать и организовывать документы. Два самых популярных инструмента для работы с документацией — Microsoft Word и Google Docs.
- Составьте блок-схему для игры — либо той, что вы хотите создать, либо уже существующей простой игры. Используйте блок-схему, чтобы показать ход игры с самого начала и различные выборы игрока. Чтобы получить некоторое представление о блок-схемах и о том, что они должны включать в себя, поищите в Интернете по фразе «Как составлять блоксхемы для гейм-дизайнеров»; потратьте некоторое время на просмотр и чтение руководств по блок-схемам для разработки игр.