Stand by me

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

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

Смешно, но нет таких студий разработчиков, которые не решили бы эту проблему. Так в чем она тогда?

Выдели на меня память

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

Раз мы не управляем NPC, то он действует как враги – управляется искусственным интеллектом и использует ресурсы вашей системы. На него выделяется определенное количество оперативной памяти, чтобы он делал то, на что запрограммирован: прятался, стрелял, ходил и реагировал на внутриигровые ситуации.

Однако для того, чтобы ИИ действовал как можно лучше и спутник казался максимально живым, процессору приходиться обрабатывать как можно больше информации. Большая нагрузка приводит к тому, что вся система тормозит. Кажется, что это как то уж слишком. Неужели один NPC может нагружать систему так сильно? Да, только представьте – это совершенно другой персонаж, который должен принимать решения, двигаться, да еще так, чтобы это все выглядело логично, взаимодействовать с другими персонажами и физикой – симулировать жизнь другими словами.

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

Девелоперы просто заранее анимируют его движения и задают весь путь. Когда он начинает идти, то двигается от точки А к точке Б. Эти персонажи просто заанимированны и не потребляют много оперативной памяти, совершенно не нагружая процессор. Но как итог, они имеют фиксированную скорость и ее выставляют так, как разработчик считает нужным.

В миссиях сопровождения – априори персонаж не может двигаться быстрее вас, ведь тогда вы не можете его защитить. Сейчас у многих будут страшные «вьетнамские флэшбеки», но вспомните Эшли из Resident Evil 4, мало того, что она и так бесполезная и бесит нас всю игру тем, что ее надо защищать. Представьте, если бы она еще носилась по всей локации как бешеная, а не стояла сзади вас.

Но по большей части, все это делается только ради одного – чтобы не доверять ИИ, который будет тупить и жрать ресурсы, а сделать все проще.

Большие деньги – реалистичные шаги

Конечно, чтобы удовлетворить требования игрока об NPC, которые будут не заскриптованы, можно создать для них динамичную систему движения и кричать об этом на презентациях игры. Такие персонажи как Элизабет из Bioshock, или герои в The Witcher 3 Wild Hunt и GTA 5 двигаются без скрипта и самостоятельно, подстраиваясь под вас. Но не будем забывать, что у той же GTA 5 был бюджет в 364 миллиона, а у Ведьмака 80 миллионов долларов, сотни сотрудники из основных офисов, да еще и куча фрилансеров. Им могли поручить заниматься одним NPC на протяжении нескольких лет, и все для того, чтобы он шел рядом с вами.

Но это не всегда верный экономический шаг. Если разработчик делает игру среднего класса – у него не получится провернуть подобное, так как у него попросту нет на это ресурсов.

Но это не значит, что они не пытаются. Некоторые решают, вместо того, чтобы подстраивать NPC под вас, они подстраивают игрока. Так, например, в Assassin’s Creed 2 и Yakuza Kiwami есть возможность стать возле неигрового персонажа, и ваш герой будет сам за ним идти, а вы ждать. Да возможно это все равно медленно, но зато не нужно самому подстраивать скорость.

Fallow me

Как итог, не всегда оправданно материально использовать динамическое движение NPC. Особенно если это игра среднего класса, и нет ничего плохого, если разработчики воспользуются старым способом, заставив неигрового персонажа идти туда куда нужно. К тому же если это сделано грамотно – то вряд ли это будет бесить.

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