Но камера медленно поднимается и останавливается на Элли, которая приходит на выручку спутнику. Этот момент тонко намекает на последующие события и полную смену парадигмы в отношениях Элли и Джоэла. Наш герой серьезно ранен и обязан спасением воинственной Элли. Ей удается с честью выстоять в последней схватке, после чего герои наконец смогут сбежать из университета. Управление становится неточным, зрение размытым, камера двигается рывками, а Джоэл слабеет с каждой секундой и оставленной позади каплей крови. Глава кончается кадрами, в которых Джоэл теряет сознание и падает с лошади. Элли кидается к нему, обхватывает руками, стараясь поднять, и твердит, обезумев от страха: «Джоэл! Вставай! Вставай! Скажи, что делать! Давай! Ну вставай ты! Джоэл!»
7
Руководство по выживанию
Искусственная философия
Лучший способ создать реалистичный искусственный интеллект – сначала сделать персонажей хотя бы не тупыми, а потом уже стараться сделать их умными.
Марк Ботта, «Infected AI in The Last of Us», Game AI Pro, Vol. 2.Не будем лукавить. В The Last of Us искусственный интеллект – точнее то, что мы подразумеваем под этим понятием – очень далек от идеала. Можно даже честно заявить, что это одна из самых больших проблем игры. Из-за нее становится очевидно, что по убедительности геймплей недотягивает до сюжета, в который и правда вложено много работы. Но пусть это не помешает рассмотреть серьезную и актуальную проблему для всей индустрии, которая старается экспериментировать и проявлять всю возможную изобретательность, чтобы оживить бои в играх.
Разработка искусственного интеллекта (именно этот термин обычно используется для набора сценариев, которые в определенное время или при определенных действиях оживляют неигровых персонажей) начинается с выбора философии. Вопреки распространенному мнению, речь не о подражании реальной жизни, разработчик не пытается создать робота, способного справиться с любой ситуацией. Напротив – он создает систему, способную воспроизводить определенное количество повторяющихся действий. Как и любая другая машина. Следовательно, нужно выбрать такую философию, которая соответствует тону игры.
В играх серии Mario Bros. тоады и другие существа, преграждающие путь сантехнику, задуманы не как жестокие противники, а как препятствия. Ведь в первую очередь игра испытывает мастерство игрока. В Pac-Man наоборот – призраки неустанно преследуют нашего круглого героя и следят за каждым его движением благодаря алгоритму, который анализирует движения джойстика.
Вот более свежий пример – искусственный интеллект саранчи, чудовищных противников в игре Gears of War от студии Epic. Они запрограммированы постоянно наседать на игрока, а если и давать иногда слабину, то только чтобы спровоцировать игрока на риск. А что же The Last of Us? Вы вряд ли удивитесь, узнав, что технические специалисты Naughty Dog с самого начала разработки геймплея – в 2008 году – хотели использовать поведение неигровых персонажей на благо сюжета.
Трэвис Макинтош, один из главных программистов студии, подробно описал этот процесс в статье для специализированного журнала Game AI Pro[50]: «Когда мы начали разрабатывать первые прототипы ИИ врагов-людей, мы задались вопросом: „Как заставить игроков почувствовать, что противники достаточно человечны, чтобы убивать их стало неприятно?“ Ответив на этот вопрос, мы нашли нужное направление[51], которое определило весь дальнейший дизайн искусственного интеллекта. Набрать лучших актеров, лучших специалистов по графике, лучших аниматоров – всего этого недостаточно. Нужно, чтобы уровень искусственного интеллекта соответствовал всему этому».
Давайте перейдем к технической стороне вопроса – держитесь, это будет интересно! Модель, которой пользовались в Naughty Dog для создания искусственного интеллекта со времен Jak and Daxter, называется «машина с конечным числом состояний»[52].
Эта система стала популярной после выхода Half-Life от студии Valve в 1998 году и до сих пор широко используется в видеоиграх. Если коротко, это метод теоретического моделирования сложных математических задач. Для примера возьмем неигрового персонажа (NPC), функция которого заключается в охране некой двери. В исходном состоянии он блокирует доступ к ней. При приближении игрока он поднимает оружие и требует пропуск. Когда NPC показывают документ, он опускает оружие и отходит в сторону, пропуская игрока. Как только он проходит, привратник возвращается в исходное положение. Вот как выглядит схема его действий.