No AI
Не погружаясь в дебри того, что такое разработка, трудно увидеть разницу между написанием скиллов и созданием ИИ, способного их применять. Может, для экс-СНГ боты и не являются приоритетом, множество игроков из далеких, но еще активных, регионов чаще сидят без интернета вовсе. Ряд вопросов «а когда ИИ версия?» не оставляет выбора, кроме как попытаться объяснить разницу.
Еще в далеком 2011 году, еще ничего не понимая в коде, я попал в команду разработчиков AI версии под руководством PlzBugMeNot. По сути, это была конференция из 10+ человек с веселыми логами и по 2500 сообщений каждые 12 часов, преимущественно общения. Но было и немало рабочих моментов. Примерно там я и понял, насколько безблагодатно работать с ИИ в варкафте.
Всё необходимо записывать. ИИ вообще не понимает принципов, навязанных дотой. Ему бы главное здание да грантов клепать, нейтралов фармить, в магазинах закупать зелье лечения и идти на врага с тауренами и вивернами. Поэтому ИИ остается без мозгов. Ему просто командуют «Иди вниз», «иди топ» и т.д.
Еще сложнее со скилами. Тот самый момент, когда еще в 2010 играл против ботов-джаггернаутов, которые во время ульта включали Bladefury. Потому что так ему сказали скрипты — если ты рядом со вражеским героем, у тебя есть мана, и скорость цели не выше твоей, включи крутилку. Уже позже добавили «если ты не прыгаешь». И так с каждым, абсолютно каждым скиллом, существующим в доте.
Дополнительные сложности создавал остаточный интеллект, который был необходим для микроменеджмента самим ИИ. Если бы не эти огрызки ИИ варкрафта, то пришлось бы и вручную отводить каждого ИИ-героя при падении хп, что несколько напряжно. Но был и побочный эффект — как нейтралы кастуют топот, так и ИИ пытается использовать «знакомые» ему скилы. Проблема в том, что знакомые ему скилы могли иметь в доте совсем другой эффект. Так, кентавр топал по своей воле — ИИ сам разбирался, когда пора застанить цель, скил был ему полностью знаком. Вард джаггернаута же был ему известен как саммон, а если саммон есть, почему бы его не вызвать? И так джаггер мог бегать всю игру, вызывая вард на базе, без какой-либо пользы от последнего. Такие проблемы тоже нужно было отлавливать и переделывать скилы.
Создание ИИ — длительный и достаточно неблагодатный процесс. Когда-то это было вызовом для кодера или стратега, но уже давно не является ни тем, ни другим. Люди растут и находят себе более профитные занятия, былые хобби теряют привлекательность и становятся рутиной. Особенно сильно эта проблема лежит в ИИ — фрог изначально не поддерживал команды, и с каждым новым патчем приходилось вручную проверять, что было изменено. Не было никакой возможности плавной интеграции — каждый раз менялось что-то важное, и боты рано или поздно начинали тупить от количества нововведений, совсем не готовые к ним.
Я не вижу ни единого шанса, что появятся новые AI карты того уровня, какими они были в 2009-10 годах. Будут лишь «обновленные» карты, где ИИ ничуть не тронут, а просто перенесены изменения. Но, в самом деле, кому нужны боты в наши дни?
Совсем не Intelligence
Еще в далеком 2011 году, еще ничего не понимая в коде, я попал в команду разработчиков AI версии под руководством PlzBugMeNot. По сути, это была конференция из 10+ человек с веселыми логами и по 2500 сообщений каждые 12 часов, преимущественно общения. Но было и немало рабочих моментов. Примерно там я и понял, насколько безблагодатно работать с ИИ в варкафте.
Всё необходимо записывать. ИИ вообще не понимает принципов, навязанных дотой. Ему бы главное здание да грантов клепать, нейтралов фармить, в магазинах закупать зелье лечения и идти на врага с тауренами и вивернами. Поэтому ИИ остается без мозгов. Ему просто командуют «Иди вниз», «иди топ» и т.д.
Еще сложнее со скилами. Тот самый момент, когда еще в 2010 играл против ботов-джаггернаутов, которые во время ульта включали Bladefury. Потому что так ему сказали скрипты — если ты рядом со вражеским героем, у тебя есть мана, и скорость цели не выше твоей, включи крутилку. Уже позже добавили «если ты не прыгаешь». И так с каждым, абсолютно каждым скиллом, существующим в доте.
Искусственный Идиот
Дополнительные сложности создавал остаточный интеллект, который был необходим для микроменеджмента самим ИИ. Если бы не эти огрызки ИИ варкрафта, то пришлось бы и вручную отводить каждого ИИ-героя при падении хп, что несколько напряжно. Но был и побочный эффект — как нейтралы кастуют топот, так и ИИ пытается использовать «знакомые» ему скилы. Проблема в том, что знакомые ему скилы могли иметь в доте совсем другой эффект. Так, кентавр топал по своей воле — ИИ сам разбирался, когда пора застанить цель, скил был ему полностью знаком. Вард джаггернаута же был ему известен как саммон, а если саммон есть, почему бы его не вызвать? И так джаггер мог бегать всю игру, вызывая вард на базе, без какой-либо пользы от последнего. Такие проблемы тоже нужно было отлавливать и переделывать скилы.
Из первых рук
Чтобы быть не совсем голословным, связался с человеком, который был в команде AI несколько лет. Он напомнил основные проблемы:- очень много времени уходит на подбор параметров. Когда именно герой должен использовать абилку? Пусть речь идёт о свене. Когда ему ультовать? Например, когда перед ним один герой, он не будет включать ульт. Но стоит подтянуться еще одному врагу, и ему придется включать её, чтобы драться. А раз включил, то нужно и угостить героя болтом. Которого? Который ближе? Или у которого меньше хп? И все эти условия нужно прописывать.
- количество шаблонов. Дотка — недетерминированная игра, здесь никогда не бывает одной ситуации дважды. Каждый раз позиции, хп, кд и прочие параметры уникальны, поэтому нужны разные шаблоны для разных ситуаций. Сколько их делать? 2? 10? 30? А сколько времени на каждый уходит? А сколько условий в зависимости от героев? По сложности очень напоминает разработку алгоритма для какого-нибудь Google, вот только те ребята ничем не ограничены — ни финансово, ни по мощностям, ни по времени.
- непонятные баги. Окей, пусть есть пара шаблонов и параметры подобраны верно. Здесь начинает действовать принцип связности. В доте многие системы взаимосвязаны, и даже приучить ботов правилам использования и сборки предметов было непросто (благо, это было сделано настолько давно, что погружаться туда практически не приходится). Например, в чем может быть проблема, что команда внезапно собирается на миду и смотрят друг на друга? Никакой возможности проверить, что происходит сейчас в голове у ИИ, какого шаблона он придерживается, почему вообще пошел сюда, нет. Остается только дебагать их при помощи чат-команд самому игроку, если он встретит такое.
Заключаем
Создание ИИ — длительный и достаточно неблагодатный процесс. Когда-то это было вызовом для кодера или стратега, но уже давно не является ни тем, ни другим. Люди растут и находят себе более профитные занятия, былые хобби теряют привлекательность и становятся рутиной. Особенно сильно эта проблема лежит в ИИ — фрог изначально не поддерживал команды, и с каждым новым патчем приходилось вручную проверять, что было изменено. Не было никакой возможности плавной интеграции — каждый раз менялось что-то важное, и боты рано или поздно начинали тупить от количества нововведений, совсем не готовые к ним.
Я не вижу ни единого шанса, что появятся новые AI карты того уровня, какими они были в 2009-10 годах. Будут лишь «обновленные» карты, где ИИ ничуть не тронут, а просто перенесены изменения. Но, в самом деле, кому нужны боты в наши дни?
5 комментариев