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

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

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

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

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

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

Основная ошибка этих разработчиков заключается в том, что они недостаточно планировали.


Недостаточное и чрезмерное планирование

Без планирования процесс распадается, поскольку разные части команды и игры работают друг против друга. Это недостаточное планирование. Но если мы составим тщательный, детальный план, он рушится при контакте с реальностью. Это чрезмерное планирование. Похоже на «Поправку-22»[12]. В любом случае, мы расстраиваемся.

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


Цена недостатка планирования

Недостаточное планирование создает несколько характерных проблем.

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

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

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

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


Цена чрезмерного планирования

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

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


Рекомендуем почитать
Изучаем 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-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.