Игровые студии с трудом справлялись с графиками выпуска игр еще до того, как появился COVID-19 и смешал все карты. И хотя задержки в разработке были всегда, похоже, что в последние годы наметилась тревожная тенденция к их увеличению. Сейчас 2020 год, технологии становятся лучше и намного сильнее, чем когда-либо, но растущий спрос на более сложную графику, функции, онлайн возможности и так далее превышает ту мощность, которую технологии могут предложить для ускорения производства. Возьмем, к примеру, гонки NASCAR. Как и команда разработчиков игр, во время соревнований гонщик NASCAR испытывает огромное напряжение, стремясь к финишу, и должен постоянно балансировать между скоростью и качеством, в этом суть гонки. Я вернусь к NASCAR позже, сейчас просто запомним этот пример.
В Incredibuild мы работаем с крупнейшими игровыми студиями мира, помогая им выпускать игры вовремя. В этой статье я хочу поделиться нашим опытом работы с основными тормозами и раскрыть наш секретный рецепт, который поможет с ними справиться.
Сдерживающий фактор №1: Полировка
Суть этой проблемы хорошо раскрыта в статье «The Art Of Game Polish: Developers Speak», опубликованной на Gamasutra, известном ресурсе, посвященном разработке компьютерных игр. Понятие полировки интерпретируется довольно широко, варьируясь от обеспечения единства пользовательского опыта («Полировка - это когда все соединяется в единое целое», - говорит Марк Дарра из BioWare, исполнительный продюсер франшизы Dragon Age, цитируемый на Gamasutra), до доработки всех тех мелких деталей, которые имеют большое значение. Независимо от того, означает ли «полировка» точную настройку мелких деталей, проработку более крупных или исправление ошибок, ясно, что полировка - это главное оправдание, которое большинство игровых студий выбирают для объяснения разочаровывающей задержки релиза игры. Я знаю, что все можно рассматривать как полировку, поэтому все используют этот термин.
Сдерживающий фактор №2: Нагромождение функционала
Как только меняется масштаб проекта, меняется все, причем дата выхода одна из первых. Вы начинаете с одной игры и заканчиваете совершенно другой игрой, наполненной функциями, которые вы не планировали. Это известная проблема в игровой индустрии, признанная Адрианом Райтом, основателем Max Gaming Technologies. В книге «End-to-End Game Development: Creating Independent Serious Games and Simulations from Start to Finish» приводятся его слова: “Нагромождение функционала - большая проблема в разработке программного обеспечения и может быть причиной номер один для задержки сроков.” Ну, может быть, номер два, после полировки.
Сдерживающий фактор №3: Бесконечные гоночные круги
В статье “Why Video Games Are Delayed So Often” цитируются слова директора по производству компании Blizzard Роб Фут, который также работал над Diablo III: “Качество игры должно диктовать то, что вы делаете, а не дата, на которую вы согласились 15 месяцев назад.”
Дело не в том, что разработчики игр перфекционисты, хотя они действительно перфекционисты. Дело в том, что итерации в играх очень трудоемки. Чем сложнее игра, тем больше времени уходит на итерации. В книге Agile Game Development with Scrum говорится, что «сложность игры, базы данных активов, среды сборки и процессов растет с течением времени. А вместе с этим растет и время итераций, ведь появляется больше кода для выполнения и больше ресурсов в базе данных для сортировки. Интеграция происходит быстро в начале проекта, но со временем скорость интеграции становится неприемлемой. В итоге оказывается, что полдня уходит на ожидание компиляции, экспорта, запекания или загрузки игр».
Сдерживающий фактор №4: Многочасовые пит-стопы
Вернемся к примеру с NASCAR. Там, где автомобили мощностью 900 л.с. развивают скорость 200 миль в час (320 км/ч), тщательно продумывается даже 16-секундный пит-стоп для дозаправки или замены шины. Я хочу сказать, что каждая маленькая задержка имеет значение. Это действительно так!
Скажем (для аргументации), что производство хорошо спланировано, продюсер держит всех в напряжении, чтобы свести к минимуму нагромождение функционала, и что у вас есть лучшие из лучших художники, дизайнеры и разработчики игровой индустрии. Итак, у вас есть идеальная машина и пилот, но кое-что мы здесь упустили - пит-стопы! Компиляция шейдеров, запекание карты освещения, рендеринг и построение кода часто занимают много времени даже на сверхмощной серверной ферме.
Эти длительные процессы не только останавливают работу студии и замедляют производство, но и оказывают огромное влияние на способность выполнять столько итераций, сколько необходимо для достижения требуемого качества и полнофункциональности игры. Очень длительные пит-стопы означают, что команда не будет их выполнять очень часто, дожидаясь, возможно, ночи или выходных для выполнения сборки. И если результаты не идеальны, то придется, стиснув зубы, принять это.
В то время как в NASCAR цель состоит в том, чтобы просто добраться до финиша первым, в нашем мире это не так просто. Мы хотим пересечь финишную черту с самой удивительной графикой, кросс-платформенной совместимостью и богатством функционала, которые позволят игре попасть в список ААА.
Делайте столько пит-стопов, сколько необходимо
Этих длительных итерационных циклов не избежать. На самом деле, мы хотим, чтобы их было больше, чтобы выпустить действительно удивительную игру. Но мы определенно хотим сделать их намного легче, чтобы мы могли выполнять еще больше итераций и все равно выиграть гонку. Технология ускорения Incredibuild, которая используется большинством крупных студий AAA уже более 10 лет, помогает командам, художникам и разработчикам на порядок сократить эти длительные процессы, позволяя выполнять многочасовые компиляции за считанные минуты, и делает ваш пит-стоп настолько коротким, насколько это вообще возможно, чтобы выиграть гонку с хитом AAA.