No AI

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

Совсем не Intelligence

Еще в далеком 2011 году, еще ничего не понимая в коде, я попал в команду разработчиков AI версии под руководством PlzBugMeNot. По сути, это была конференция из 10+ человек с веселыми логами и по 2500 сообщений каждые 12 часов, преимущественно общения. Но было и немало рабочих моментов. Примерно там я и понял, насколько безблагодатно работать с ИИ в варкафте.

Всё необходимо записывать. ИИ вообще не понимает принципов, навязанных дотой. Ему бы главное здание да грантов клепать, нейтралов фармить, в магазинах закупать зелье лечения и идти на врага с тауренами и вивернами. Поэтому ИИ остается без мозгов. Ему просто командуют «Иди вниз», «иди топ» и т.д.

Еще сложнее со скилами. Тот самый момент, когда еще в 2010 играл против ботов-джаггернаутов, которые во время ульта включали Bladefury. Потому что так ему сказали скрипты — если ты рядом со вражеским героем, у тебя есть мана, и скорость цели не выше твоей, включи крутилку. Уже позже добавили «если ты не прыгаешь». И так с каждым, абсолютно каждым скиллом, существующим в доте.

Искусственный Идиот

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

Из первых рук
Чтобы быть не совсем голословным, связался с человеком, который был в команде AI несколько лет. Он напомнил основные проблемы:
  • очень много времени уходит на подбор параметров. Когда именно герой должен использовать абилку? Пусть речь идёт о свене. Когда ему ультовать? Например, когда перед ним один герой, он не будет включать ульт. Но стоит подтянуться еще одному врагу, и ему придется включать её, чтобы драться. А раз включил, то нужно и угостить героя болтом. Которого? Который ближе? Или у которого меньше хп? И все эти условия нужно прописывать.
  • количество шаблонов. Дотка — недетерминированная игра, здесь никогда не бывает одной ситуации дважды. Каждый раз позиции, хп, кд и прочие параметры уникальны, поэтому нужны разные шаблоны для разных ситуаций. Сколько их делать? 2? 10? 30? А сколько времени на каждый уходит? А сколько условий в зависимости от героев? По сложности очень напоминает разработку алгоритма для какого-нибудь Google, вот только те ребята ничем не ограничены — ни финансово, ни по мощностям, ни по времени.
  • непонятные баги. Окей, пусть есть пара шаблонов и параметры подобраны верно. Здесь начинает действовать принцип связности. В доте многие системы взаимосвязаны, и даже приучить ботов правилам использования и сборки предметов было непросто (благо, это было сделано настолько давно, что погружаться туда практически не приходится). Например, в чем может быть проблема, что команда внезапно собирается на миду и смотрят друг на друга? Никакой возможности проверить, что происходит сейчас в голове у ИИ, какого шаблона он придерживается, почему вообще пошел сюда, нет. Остается только дебагать их при помощи чат-команд самому игроку, если он встретит такое.

Заключаем

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

Я не вижу ни единого шанса, что появятся новые AI карты того уровня, какими они были в 2009-10 годах. Будут лишь «обновленные» карты, где ИИ ничуть не тронут, а просто перенесены изменения. Но, в самом деле, кому нужны боты в наши дни?

5 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.