Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin’s Creed и дальше - [117]

Шрифт
Интервал

Меняется весь дизайн, как это случилось с Halo, BioShock и The Sims. Но даже самый маленький кусочек игры может преподнести сюрпризы. Например, когда я работал над уровнями головоломки в загружаемом контенте для BioShock, в моем уровне была комната с рядом ракетных пусковых установок вдоль стены. Я хотел, чтобы игроки о них узнали, но чтобы при этом их не убило. По этой причине я использовал старый трюк сообщения игроку об опасности: когда он входил в комнату, появлялся враг и бежал на игрока только для того, чтобы ракетные пусковые установки его обстреляли. Отлично сработало. Враг кричал и взрывался. Проблема казалась решенной. Потом я смотрел, как кто-то другой проходит этот уровень. Он вошел в комнату. Враг закричал и побежал на него; так как это был уровень головоломки, у игрока не было оружия. Поэтому он повернулся и выбежал из комнаты, чтобы убежать от врага. Мне пришлось создать вокруг игрока непробиваемое стекло, чтобы он чувствовал себя в безопасности, не отступал и наблюдал за происходящим.

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

ИТЕРАЦИЯ – это практика составления краткосрочных планов, их реализации, тестирования и повторения.

Итерация

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

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



Итерация работает иначе. Действия выполняются не поочередно, а циклично.



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

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

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


Пример итерации

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

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

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

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

И это получается. Пока я играю, мне в голову приходят новые идеи, и они более конкретны, чем все, что я мог придумать до этого. Они мне нравятся, и мне не нужно ждать, анализировать или что-то записывать. Мое вдохновение не улетучивается. Протестировав игру один раз, я возвращаюсь в редактор, удаляю куски, которые не работали, разбрасываю по местности места для укрытия, дорабатываю оружие и врагов. Возможно, на этот раз я даже не забуду дать игроку оружие.

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


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.