Особеннсти в программировании Курта Пфайфера

Курт Пфайфер (Kurt Pfeifer), Cavedog

Cavedog Entertainment - компания-партнер Humongous Entertainment, разработавшая в свое время стратегическую игру Total Annihilation, которая имела умопомрачительные продажи и была отмечена невероятным количеством наград со всего мира. Знакомьтесь: Курт Пфайфер, один из авторов Total Annihilation. Кроме того, в его послужном списке Microsoft Soccer, Powerslave, DinoPark Tycoon и Magic School Bus Across the Solar System, а также перенос Duke Nukem 3D на приставку Sega Saturn. На момент написания книги он занимал должность ведущего программиста проекта Good & Evil (увы, закрытого вместе с Cavedog в начале 2000 года. События в игровом мире происходят с невероятной быстротой. И не всегда приятные. - Примеч. ред.). Ниже Курт предлагает несколько полезных рекомендаций для тех, кто хочет заняться написанием программ для современных игр.

Подготовьте полный проект своей игры

Если вы хотите уложиться в запланированные сроки, прежде всего четко определите, что и как нужно получить в результате. «Игрописание» не столь сухо и канонично, как точные науки, здесь гораздо больше простора для импровизации, чем в любой другой области программирования. Но если вы в состоянии хотя бы приблизительно объяснить, что хотите в итоге получить, это позволит в будущем избежать работы вслепую и необоснованных задержек. Будет полезным даже просто просмотреть эскизы и сценарий – это даст вам возможность составить общее представление об игре, а также позволит подобрать оптимальный вид игры на экране (перспектива, двухмерная или трехмерная графика).

Курт приводит следующий пример:

Меньше всего вопросов, когда вы заняты переносом существующей игры на другую платформу. Так было, когда мы портировали Duke Nukem 3D и Quake на Sega Saturn (я тогда работал в Lobotomy): вместо проекта на бумаге, который мог быть изменен или неверно истолкован, у нас был ясный прототип в виде игры для ПК, которая к тому времени уже покорила рынок. Каждая картинка, каждый звук, каждый нюанс системы управления были уже готовы, оставалось лишь вписать все это в рамки, накладываемые приставкой Saturn. На все работы нам дали шесть месяцев (позже срок был увеличен до девяти, что позволило запрограммировать сетевую версию) и это заставило нас трудиться с максимальной эффективностью. Понимание «общей картины» игры позволило нам оптимально распределить задачи и спланировать график выполнения проекта.

Вовлекайте в работу как можно больше людей

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

Выделяйте время на исследования и разработку

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

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

Я не раз видел, как дизайнер терял интерес к игре после первой половины проекта, когда «медовый месяц» начального проектирования уже прошел и настало время перейти к проработке «скучных» деталей. В этом случае я был вынужден брать на себя еще и роль дизайнера: ком забот рос, и в результате в той или иной степени начинало хромать программирование. Что касается завершения проекта, то сегодня потерпеть поражение проще, чем когда-либо: игры (и их бюджеты) становятся все больше, а списки технологических возможностей растут как на дрожжах.

В заключение Курт говорит: «Даже простое управление проектом может оказаться нелегкой задачей, однако игра в любом случае должна и может быть завершена. Если, конечно, вы заранее спланировали всю работу и должным образом распределили задания».