Напарник-ИИ должен говорить, что он ИИ
· 4 мин чтения
Strandbreak Online — кооперативный шутер на выживание: до четырёх игроков высаживаются на поле, орда растёт, а отряд пытается её пережить. Есть одиночный режим и сетевой, и у сетевого та же беда, что у любой небольшой мультиплеерной игры. Чаще всего, когда вы нажимаете ONLINE, больше никого нет.
Решение — союзник под управлением компьютера. Написать его оказалось проще, чем договориться о правилах, когда он появляется, — и в первой версии, которую мы выпустили, одно из этих правил было неправильным.
Правило первое: в одиночной игре — никогда
Первая версия добавляла союзника в каждый забег, в одиночный тоже. Это было ошибкой по двум причинам.
Очевидная: игрок, который нажал SOLO, попросил оставить его одного. Напарник, о котором он не просил, превращает забег в другую игру.
Менее очевидная причина — в цифрах. Союзник считается членом отряда, а сложность масштабируется по отряду: каждый участник приносит свою долю орды. С союзником «одиночный» забег поднимал предел врагов на экране с 420 до 600, так что одиночным он не был ни по числу врагов, ни по урону. Все таблицы баланса, снятые до исправления, были сняты с компаньоном, и ни одну из них нельзя было сравнивать с теми, что сняты после.
Правило второе: в сети — только пока не придёт человек
Игрок, который нажал ONLINE, попросил отряд и сегодня обычно попадает в пустую комнату. Союзник — то, что отделяет его от пустого поля. Он занимает второе место, пока в отряде один человек.
Он уступает это место в тот момент, когда заходит живой игрок. Замена союзника на человека не дёргает сложность резко: человек приносит полную долю орды, а союзник — чуть больше половины, так что шаг вверх небольшой.
Союзник к тому же не копия вас. Он берёт класс, который дополняет ваш: к громиле ближнего боя приходит стрелок, к хакеру — инженер. Игра поощряет напарников, которые держатся рядом, а союзник с теми же сильными сторонами, что у вас, составит компанию, но мало чем поможет.
Какое правило применить, решает тип сессии, а не число игроков в ней. И в одиночном забеге, и в сетевой комнате с одним человеком игрок один, а ответы у них противоположные.
Правило третье: он говорит, кто он
Это правило урезать нельзя. Имя союзника всегда заканчивается на (AI) — в слоте лобби, на подписи над головой и на экране итогов. Там, где в слоте живого игрока показан его класс, у союзника написано AI ALLY. А перед началом забега лобби говорит это одной фразой: здесь пока никого нет, с вами пойдёт союзник-ИИ, и он уступит место, как только зайдёт живой игрок.
Бот под именем игрока — это ложь, которую игрок раскрывает в самый неудачный момент: когда задумывается, почему напарник никогда не отвечает или почему играет как-то странно. С этого момента вся комната кажется ненастоящей, включая то, что настоящее. Подпись ничего не стоит и снимает вопрос.
Многие сетевые игры заполняют комнаты ботами без подписи, чтобы казаться оживлёнными. Для небольшой игры соблазн понятный, и мы считаем, что поддаваться ему не стоит. Игра, которая честно признаёт, что в три часа ночи в ней тихо, лучше игры, которая втайне пуста.
На чём он построен
Союзник — не отдельная система. В игре уже был ИИ-хранитель, который берёт персонажа под контроль, когда у игрока отваливается соединение, — чтобы отряд не терял ствол из-за того, что чей-то поезд въехал в тоннель. Это всегда было его основной задачей, и он по-прежнему её выполняет. Изменилось лишь то, может ли он появиться сам по себе, когда никто не отключался, — и два правила выше, которые решают, когда это происходит.
Общий вывод
Заполнять пустую игру ИИ — решение дизайнерское, а не техническое, и оно должно ответить на три вопроса: нужна ли здесь игроку компания, что с ней происходит, когда приходит человек, и знает ли об этом игрок. Ошибитесь в третьем — и первые два уже не важны.
Сыграйте в Strandbreak Online — а если вы одни, компания у вас будет, пока не придёт кто-то ещё.
