Ship it (как делаются игры)

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

Далее: авторский текст, ссылки на первоисточник — в конце поста

Решил рассказать, как на самом деле делаются игры.

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

Значится, о том, как независимые разработчики делают игры.

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

Деньги в мире чистогана и наживы получают двумя путями — либо продавая что-нибудь, либо через инвестиции. Ясное дело, что разработчику продавать нечего, ибо никакой продукции он не производит и, следовательно, единственная дорога — это за инвестициями. Нормальные банки никогда не дадут денег игровому разработчику, и правильно сделают. Венчурные капиталисты, говорят, раньше давали, но теперь уже наученные. Слава богам, есть такие специальные конторы, называемые паблишерами, которые денег дают, если сильно попросить. Модель, в принципе, такая же как в кино и в литературе — паблишер финансирует создание продукта умственного труда в обмен на долю в будущей прибыли. Хотя это зависит от. Вместо доли могут и всю прибыль попросить, да.

Препродакшн

Конечно, чтобы паблишер раскошелился на бабки, нужно ему что-то впарить, простые разводы вроде «дайте нам денег а мы вам супер игру от создателей тетриса сделаем!» уже не катят. Паблишер желает знать, что за игра, почему столько денег нужно, и когда будет готово. Ни на один из этих вопросов никто не даст вразумительного ответа на этой стадии, однако таков ритуал. Посему составляют документ, который имеет такое же отношение к бизнес-плану в нормальной индустрии как ритуалы полинезийских карго-культов к Field Manuals американских вооруженых сил и военно-морского флота.

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

Как только деньги пошли, начинается работа собственно над игрой, 95% участвующих впервые читают этот самый план и говорят «WTF???!@*%(«, а потом садятся и начинают думать, как же они попали в такую ситуацию. Лидеры программистов, художников и дизайнеров начинают думать, как бы распределить задачи. Остальной народ тихо офигевает и начинает втихаря писать резюме.

В такой ситуации паблишер присылает спасителя/спасателя — продюсера.

Продюсинг

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

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

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

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

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

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

Параллельно не прекращается процесс убеждения продюсера в том, что весь мусор правильно выбран и точно размещен в нужном месте. Так же как и в Катамари, иногда появляются всякие условия. В процессе разработки есть майлстоуны: каждые несколько месяцев нужно продемонстрировать очередное достижение — вот тут у нас должен быть шар метр в диаметре и 20 крабиков на нем, а тут нужны птички. Естественно, такие условия только усугубляют хаос, и в попытке налепить 20 крабиков за оставшееся время в наш мусорный шар попадают и кошки, и швейные машинки.

Продакшн

После появления продюсера и прототипа ничего особо интересного не происходит. Программисты что-то делают при помощи палки и веревки, артисты чего-то рисуют, дизайнеры меняют дизайн. Поскольку множество людей делают вещи, зависимые друг от друга без какой-либо координации между собой, развитие игры напоминает случайный, но неумолимый ход судьбы. Как в фильме «$20». Кто-то не сделал вовремя модель робота? Заменим его годзиллой! Система столкновений не позволяет нам устроить файтинг, который был главной фичей игры? Не проблема, вместо файтинга будет бой на картах! Таймеры забагованы так, что нельзя сделать миссию с гонками? Фигня, вместо гонок будут прыжки в длину. У главного героя оружием был лазерный меч, но единственный инженер, делающий шейдеры, занят шейдерами для годзиллы? Вместо меча будет магическое йо-йо! Художник, делавший медведей, развелся с женой и ушел в запой? Ничего страшного, у нас есть художник, который может сделать клевых крокодилов из годзиллы (но медведей он делать не умеет, к сожалению). Продюсер позаботится, чтобы все изменения нашли свое отражение в дизайне.

Помогает в этом процессе то, что работающей игры никто не видит, каждый трудится над маленькими кусочками, и потому простор для фантазии широк. Сие брожение умов идет процентов 90% времени, отведенного (со всем отодвигаемыми датами и прочим) на проект. Когда становится понятно, что дальше тянуть нельзя, пора бы уже собрать игру и выпустить ее на, начинается то, что обычно называется crunch, а по-русски «трясучка». Начало трясучки обычно приурочено к объявлению игры.

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

Собственно к этому и приурочена трясучка.

Показ издателю

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

Индустрия, однако, помнит о них, ибо они остаются навечно в резюме всех участников. Хотя отмененный проект — это не так круто, как «шипленный», но пара-тройка отмененных примерно равны одному шипленому и уж куда как лучше, чем вообще никаких проектов.

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

Итак, игру представляют на утверждение. Тут возможно три исхода: а) игру утвердят, поименуют и объявят, б) игру отменят или, в) самый неприятный вариант — предложат переделать и приходить еще. Последний случай — это на самом деле разновидность второго, единственное отличие в том, что паблишер, списавший только что кучу бабок, желает получить хоть какую-то сатисфакцию. Сатисфакция включает в себе кормление малолеток пиццей и заполнение ими же 200-пунктовых опросников, что в просторечье зовется фокус-группа.

Фокус-покус заключается в том, что группа абсолютно невменяемых дебилов (ну какой нормальный ребенок пойдет к незнакомым дяденькам и тетенькам за кусок пиццы и стакан газировки?) указывает, что и как нужно сделать в игре. То есть сама идея фокус-группы замечательна — проверить, как публика принимает продукт, однако в игровой индустрии приняли за правило получать фидбэк от этих групп… Я представляю, как какие-нибудь фармацевты, испытав новое лекарство от геморроя, которое ни рожна не лечит, попросили бы испытуемых заполнить вопросник, типа, не добавить ли нам фенолфталеина в наше лекарство? Может вот на этом шаге синтеза вместо возгонки дизоксибарбитурила разложить леденцы Холз на иридиевом катализаторе?..

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

В случае отмены проекта (я заметил, что никто не любит говорить «cancel», говорят «can», я когда был маленький и плохо знал английский язык, думал, что это значит «законсервировать», типа в банку закатать до лучших времен) — летят головы. У паблишера и больше всего у того самого независимого девелопера. Народ увольняют, девелопер может вообще весь закрыться медным тазом. Это грустный исход. Для многих, кто только начал работать в индустрии, это их последний опыт. Ветераны не унывают, а добавляют еще одну строчку к резюме — канселенный проект это тоже опыт, хотя и не такой престижный, как шипленный. Я читал резюме людей со многими годами опыта и без единого «шипленного» проекта, вообще у меня ощущение, что канселенных проектов куда больше, чем «шипленных».

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

Дата обычно одна и таже — крисмас. Поскольку большинство просвещенного человечества либо крестьяне, либо их близкие потомки, время окончания полевых работ вызывает инстинктивное желание потратить кучу бабок. Забавно, что график множества хайтек-компаний по всему миру до сих пор подчиняется климатическим сезонам в Западной Европе. Однако перед крисмасом нужно разместить заказы, рекламу и прочее, поэтому есть куда более близкая дата — Е3. На Е3 нужно показать что-то, что неискушенный взгляд может принять за финальный продукт и даже поиграть и получить фан. Многие не знают, что Е3 — это не столько повод потолкаться и позырить на полуголых девок, сколько место и время для заключения контрактов на поставку игр в магазины. Туда приходят покупальщики (buyers) от разных сетей и смотрят, чем бы им забить склады. Потому показ на Е3 очень важен — даже если игру не будут показывать публично, баеры ее обязательно посмотрят и сделают выводы.

Показывать игру десятку человек из своих рук это одно, а оставить ее на стенде, где толпа бездельников, журналистов и даже людей из индустрии будут свободно подходить и пальцАть — совсем другое. Е3-версия вместо видимости игрового процесса на девелоперской консоли в течение 15 минут должна действительно содержать этот самый процесс и целый день работать на тестовой консоли, которая куда как ближе к ретейлу, чем девелоперская (например, даже загрузка с двд — серьезная задача, на девелоперских консолях игра грузится с жесткого диска). Потому начинается трясучка еще сильнее, чем при производстве предыдущего кадавра. Для оживления процесса добавляют тестеров.

Тестирование

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

Баги нужно документировать, причем не так: «тююю, ваша игра нифига не играется и вообще невеселая какая-то, я запустил, а оно не работает!» Тестер должен описать последовательность действий, которая приводит к багу («залезть в робота, включить гипердрайв, прыгнуть три раза, вернуться в штаб-квартиру и посмотреть стратегическую карту — враги теперь обозначаются оранжемым цветом вместо красного»), объяснить, в чем баг выражается и поместить это описание в базу данных, ответить на вопросы программиста (которые на простом языке обычно сводятся к «что ты куришь, дон Хуан?! у меня все работает!»), повторить несколько раз с новой версией и в конце концов добиться закрытия этого бага тем или иным способом, ибо с тестера спрашивают за открытые им баги.

Также стоит понимать, что программист, которому этот баг попадет, совершенно не заинтересован в его исправлении. То есть, в глобальном масштабе он конечно заинтересован, ибо если в игре не исправлять баги, то она ни на Е3, ни вообще никуда не попадет, его уволят в конце-концов, нужно будет искать другую работу и все такое. Но это сродни заинтересованости советского человека в соблюдении правил социалистического общежития — конечно, если напиться, врубить музыку на полную мощность магнитолы «Ростов-136УЭ», петь песни и бить молотком по трубам, то соседи не выспятся, придут на работу небодрыми и не выполнят план, в результате чего из магазинов пропадут все продукты и товары народного потребления, и в глобальном масштабе советский человек не был заинтересован в таком исходе, однако это абсолютно не мешало ему напиваться ежедневно, если в душе была такая склонность. Ведь дело в том, что с программиста спрашивают не за баги, а за фичи, которые он все еще должен реализовать, и в плане время на починку багов вообще обычно не предусмотрено, а за баги спрашивают с тестера, как с самого крайнего. Поэтому в обязанности тестера еще входит надоедание программистам непосредственно, надоедание менеджерам программистов, надоедание своему менеджеру, чтобы тот надоел менеджерам программистов и продюсерам.

За все про все платят смешные деньги и не берут в штат. Любой желающий может представить себе работу тестера, взяв любую игру и начав играть в нее по 8-12 часов в день в течение недели. Осознавая при этом, что играет он в готовую игру, которая в чем-то даже fun, а не в то, что дают тестерам, особенно в начале их работы над проектом. Тестер делает это в течение многих месяцев.

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

E3

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

Сама Е3 — это последний момент отдыха перед death match до, собственно, «шипинг»а. Поэтому, как камикадзе в увольнении, девелоперы отрываются вовсю…

Кранч-тайм

После Е3 начинается серьезный и глубокий crunch. Те кранчи, что были до — жалкое подобие. Чтобы игра вышла в ноябре-декабре, она должна быть готова максимум в октябре, да и то при наличии хорошего блата, поскольку заводы, делающие диски и картриджи всякие, тоже не резиновые, а игра наша — не единственная, что собирается выходить на крисмас. То есть, с мая до октября у нас есть полгода, чтобы доделать тот один уровень с двумя монстрами, показанный на выставке, до полной игры с 60-ю уровнями и 280-ю монстрами, а также роботами, мотоциклами и моторными лодками, которых в Е3-версии не было, как и еще примерно сотни других фич.

То есть, послушав байки, приехавших с выставки («OMG, я видел как какой-то двухсоткилограммовый отаку играл в нашу игру и сказал своему другу, что это лучше, чем секс!», «Я говорил с младшим помощником заведующего отделом писем читателей сайта c00lgamez.freehosting.someprovider.pl, и он очень лестно отозвался о нашей игре, сказав что мы уже зарезервировали себе место в двадцатке претендентов на титул «Лучшая обложка года», «Когда наша игра закрэшилась, я так ловко пнул стенд, что все юниты в нем перезагрузились, а мишн-билдеры в это время отвлекали народ, строя живую пирамиду у стэнда конкурентов!», «Я набрал восемь сумок ништяков», «Я сфоткался с Американом МакГи», «Я отстоял 10 часов в очереди на просмотр Халф-Лайф 2, а когда подошла моя очередь, ее опять украли»), народ принимается за работу, ибо задачи наконец-то поставлены и цель видна.

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

Баг №3891: Странное поведение телефона.
Воспроизведение: Попробовать позвонить по номеру 555-9182, справляя большую нужду в туалете — не происходит никакого соединения, и в то же время сильный ветер морозит попу. В проекте сказано «В туалете должно быть тепло и сухо», а также «Все телефоные номера должны либо соединяться, либо выдавать сигнал занято». Прошу исправить для майлстоуна 17.
Тестер Петя из квартиры 57.

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

Комментарий синоптика:
Сейчас зима, и морозный ветер в наших широтах — обычное явление, please explain.

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

Петя: когда будут стены? нам нужно что-то к майлстоуну 17. Вертолеты, конечно, нужны тоже.

Продюсер: стен в туалете решили не строить, звонить из туалета — негигиенично. closed, in shipped version.

Петя: reopened Баг №3891
Даже из гостиной телефон не работает.

Стритель: телефоны исключены из проекта, пользуйтесь пневмопочтой, только осторожно — пока не проложили отдельные трубы, пневмопочта использует канализацию. closed, not a bug.

Такое веселье идет почти до самого конца, и только последние пару недель проект стабилизируется. Начинается подгонка под требования производителей консолей и исправление оставшихся багов без добавления новых фич и отрезания старых. Народ постепенно переселяется в офис — во многих студиях есть спальные места, души, во всех есть кухни и заказ еды в офис, телевизоры для любимых сериалов, Интернет и всякие игры — зачем ходить домой? В общем-то, что еще написать про этот период я не знаю, поскольку из-за постоянного недосыпания и бесконечного программирования все происходящее очень сильно напоминает бред, а потому мозг старается избавиться от таких воспоминаний.

Процесс добавления фич и починки багов может идти бесконечно, поэтому важно прервать процесс на той стадии, пока он не подчинился законам диалектического марксизма-ленинизма и не развился по спирали, то есть ушел в штопор. Не то, чтобы это плохо, иногда на последующих итерациях игра получается куда лучше — вспомним хотя бы Conker’s Bad Fur Day, однако это весьма опасно, ибо выйти из штопора удается нечасто, да и народ, участвующий в штопоре, паникует-с.

В общем, в определенный момент принимается решение не добавлять новых фич и пофиксить баги. Следующий майлстоун объявляют code complete и даже идут на такой экстрим, как залочивание соурс-контроля от особо ретивых имплементаторов. Естественно, к майлстоуну никакой код нифига не комплит, но через несколько недель-месяцев дело доходит до псевдостабильного состояния. Фичи, конечно, добавляют, но уже украдкой. И даже тестируют перед включением в рабочую версию. Наступает пора сабмишна.

Сабмишн

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

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

Поскольку цель недостижима принципиально, процесс ее достижения не может быть рациональным по определению. Это ритуал. Ритуал очищения. Игру записывают в специальном формате на специальные носители (которые ни в каких консолях и тулзах не используются — например, для некоторых приставок сабмитящиеся игры нужно было записывать чуть ли не на восмидюймовую ленту!), заполняют кучу документов и отсылают надлежащим образом хозяину консоли. Хозяин консоли имеет свой штат тестеров, которые тестят еще 50 игрушек, засланных на этот самый сабмишн, и которые в течение пары недель должны дать ответ — останавливается ли эта конкретная машина Тьюринга на любой ленте или фигачит без остановки? Все, что эти тестеры делают, так это проверяют всякие формальные требования, которым должна соответствовать игра — типа, все кнопки названы верно, если выдернуть джойстик, выдается правильное сообщение, если диск поцарапан — тоже, если мемку выдернуть и воткнуть другую, если вместо мемки засунуть китайскую подделку и так далее и тому подобное. Ну и играют, конечно, но чего они там наиграют в какой-нибудь RPG на 80 часов геймплея?

Однако, как и в каждом ритуале, в этом тоже есть рациональная часть — пока игра находится в процессе сабмишна, собственные программисты, художники и прочие тестеры в нее играют. И напарываются на баги, естественно. Поэтому, когда приходит результат сабмишна, можно сравнить число багов, на которые случайно наткнулись тестеры консольного хозяина, с числом багов, найденных самим девелопером. Если числа близки — хорошо, значит сабмишн выявил почти все баги в игре и пофиксив выявленное самим девелопером, мы все баги исправили. Если числа сильно расходятся — хорошо, значит, те баги, которые нашел сам девелопер, настолько нечастые, что даже тщательный процесс сабмишна их не выявил! Значит, дебильные дети на них точно не наткнутся, тем более, мы их и так пофиксим. Очищение произошло, душа у всех спокойна — игру отправляют на второй сабмишн, который, естественно, ничего не выявляет, и оттуда на завод.

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

Но это еще не конец.

Локализация

Рынок у нас глобализированый, и очень часто игры издают для нескольких территорий сразу, во всяком случае игры, сделаные в Америке. Первой, конечно, выходит U/C (USA/Canada), а дальше нужно делать версию для Европы.

Европа отличается двумя неприятными особенностями — во-первых, там дофига разных языков, а во-вторых, там кривой телевизионный стандарт (кто хочет поспорить — поищите данные по импорту американских DVD в Европу и наоборот сначала). Игру нужно переделывать. Проблема в том, что ни языков никто не знает, ни времени особого на эту переделку нет — например, в каком-нибудь файтинге два года разрабатывали и балансировали игровую систему и раскладывали каждый удар по кадрам, а тут нужно сделать пал-версию… Там все анимации вручную по кадрам сделаны, ни ускорить, ни замедлить, не переделывая сто тысяч человеко-дней работы, не получится, так что выпустим как-нибудь на тех же анимациях — не беда, что теперь наши спортсмены-каратисты заторможены немного, все равно в Европе все смотрят на мелькающих телевизорах. Размер пикселя другой? Ну че, мы будем что ли мувики перерендерять и весь юзер-интерфейс перекладывать? У нас их контракторы сделали, которые давно уже ушли по своим делам — получите-ка полоски на экран и сплюснутые рожи.

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

Освоившись с евро-версией (то есть, найдя все места, где текст забит в текстуры/код, хотя сейчас, конечно, такое редко увидишь, народ руку набил), можно приниматься за японскую, если, конечно, японцы проявят интерес к какой-то американской шняге. Самое сложное в японской версии — добавить поддержку дебильнейшего в мире языка. Шрифты на 2000+ знаков — это вам не французкие буквы с хвостиками. Хорошо, что стандарт телевиденья там качественный, американский — японцы чай не идиоты.

Бывает еще так — писишную версию могут захотеть. Тут уж все просто — отдать каким-нибудь болгарам, пусть портируют. А потом умные дети на форумах разглагольствуют по поводу сосучести приставок на основе порта, сделанного непонятно кем за смешные деньги.

В общем-то, над интернациональными версиями работают всего несколько человек. У остальных начинается отходняк.

Фидбэк

Первым делом читать ревью и посылать особо прикольные цитаты коллегам:

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

— Невероятно реалистичные годзиллы, создают ощущение, что вы смотрите художественный фильм, а не играете в игру.
— ЧЗХ? Какие же это годзиллы? Это медведи! &^%*@!

— Сайт supac00lgamerz.net дал нам 8 балов из 11, цитирую: «its betta gaem then Hollo 2 my g/f irl sez so to but we cant give it 11 becuz it aint got no ninjas liek Ninja Gayden ima gunna buy teh game when parents give my plasystation back cuz they took it when i got into a fight wit that crazy guy in skool stupid fcks omglolz he is like totally nuts and they took my playstation becuz of that wtf they need to chill out lol.

Дальше — форумы. Это еще прикольней, чем ревью.

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

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

[ Первоисточникпродолжение, ещёещёещёокончание ]

Павел Волынцев

Уже более 15 лет занимаюсь разработкой веб-проектов. Fullstack Senior Developer. IT евангелист — доношу свет знаний об информационных технологиях. Профессиональные цели: Дать людям возможность дать людям больше.

Читайте также: