Как сделать сложных ботов в доте 2

Обновлено: 07.07.2024

Не всегда есть возможность поиграть с реальным людьми. Возможно, пропал интернет, или вы решили немного потренироваться.

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

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

Есть несколько способов игры с ботами

Чтобы играть против ботов с другими игроками, нажмите Найти игру с ботами. Поиск игры ничем не отличается от обычного. Только в такой игре вы получите опыт за ботов.

Чем выше будет уровень сложности, тем больше опыта вы получите после матча.

Вкладка Тренировка с ботами позволяет начать игру против ботов, но вы не получите за нее опыта. Если вы находитесь в группе, то в матч будут добавлены все ее участники.

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

Но с помощью лобби вы можете создавать ботов во время игры. Для этого должны быть включены читы или консоль.

Читы разрешаются при создании лобби или, в случае рабочей консоли, с помощью команды sv_cheats 1.

Даже если боты будут враждебными, они не могут вас атаковать. Смысл таких ботов в том, чтобы научиться применять способности или проверить их возможности.

Этого достаточно, чтобы выбрать подходящий способ игры и желаемую сложность.


Для Dota 2 пользователи создают собственных ботов. Они должны играть вместо пользователя с другими людьми. В чем смысл? Ответ прост: разработчик ввел в игру специальную систему, которая следит за тем, что рейтинговые матчи в Dota 2 открываются после того, как пользователь сыграет определенное количество часов. Для того, чтобы не тратить время впустую, игроки просто запускают бота, который отыграет 100 часов. Все очень просто и предельно ясно. Эта программа очень часто используется игроками, которые желают заработать на Dota 2.

p, blockquote 1,0,0,0,0 -->

p, blockquote 2,0,1,0,0 -->

Бот дота 2

p, blockquote 3,0,0,0,0 -->

p, blockquote 4,1,0,0,0 -->

Установить такого бота очень просто:

  • Необходимо распаковать скачанный архив;
  • Запустить утилиту;
  • Запустить Steam и перейти в Dota 2;
  • Далее бот будет делать все самостоятельно.

Однако стоит учитывать, что некоторые бесплатные боты могут работать исключительно с определенными настройками. Например, бот может быть активным лишь при одном разрешении экрана. Проверять эту информацию можно в интерфейсе скачанного программного обеспечения. При этом утилита имеет еще один огромный недостаток: пользоваться компьютером, во время использования бота, никак нельзя. Он сам должен нажимать на компьютерную мышь, двигаться и выполнять действия. Для этого компьютер должен быть под контролем исключительно у него. Такого бота можно поставить только в том случае, если компьютер пользователя не понадобится ему в ближайшие пару часов.

p, blockquote 6,0,0,1,0 -->

Боты из мастерской дота 2

Бот дота 2

p, blockquote 7,0,0,0,0 -->

В мастерской есть и специальные боты для Dota 2. Они будут играть не вместо пользователя, а против него. Стандартные боты считаются игроками слишком легкими, поэтому решить эту проблему можно именно с помощью их аналогов из мастерской. Для того, чтобы скачать таких ботов, нужно:

  • Открыть Steam и в самом вверху выбрать сообщество;
  • Нажать на мастерскую;
  • Ввести в поиск Dota 2 и перейти в категорию игры;
  • Там в правом углу можно выбрать категорию модификаций;
  • Нужно выбрать Bots.

874

p, blockquote 4,0,0,0,0 -->

Как создать бота?

Для того, чтобы создать бота в лобби, прописываем в чат:
-createhero pudge
Вы можете вписать любого героя, а не только Пуджа. Эта команда создаёт союзного героя на том месте, где в данный момент находится ваш курсор. Для того чтобы создать вражеского бота, пишите ту же команду, добавив в конце «enemy«.

p, blockquote 5,0,0,1,0 -->

Как поднять боту уровень?

Это делается командой «-levelbots 25«. Все боты на карте получат 25-ый уровень. Можно вписывать любое другое значение, которое вам нужно.

OpenAI Bot

OpenAI Bot

OG

OG

Илон Маск

Илон Маск

Рассказываем, как росли боты и почему это так важно.

В Сан-Франциско искусственный интеллект компании OpenAI сразился против чемпионов мира по Dota 2 – OG. Что это за матч и почему он так важен?

Шахматы, го, Dota 2. Это – лестница развития ИИ

Создать интеллект, способный обыграть человека, очень сложно. IBM задумалась о разработке шахматного компьютера еще в 1950-х, но тогда на это уходило много времени и ресурсов. Основная проблема компьютера в шахматах – расчет вариантов действий и исходов. Их безумно много: в 1950 году американский математик Клод Шеннон доказал, что количество уникальных партий в шахматы равняется 10 в 120 степени (для сравнения, число атомов во вселенной оценивается примерно в 10^80).

Только к 1996 году шахматный суперкомпьютер Deep Blue был готов сразиться с чемпионом мира – Гарри Каспаровым. Ту серию выиграл Каспаров и заявил, что эра машин наступит еще нескоро. Но гроссмейстер ошибся – разработчики увеличили мощность машины, и через год, в 1997, Deep Blue обыграл шахматиста в серии. Итоговый результат встречи для Deep Blue – 2 победы, 3 ничьи и 1 поражение.


Шахматы, как и настольные игры попроще (шашки, крестики-нолики, нарды), были разгаданы компьютером при помощи альфа-бета отсечения (когда машина знает варианты развития позиции на доске и сразу отсекает ветки, которые ведут к менее выгодному пучку возможных позиций). Но вплоть до 2015 года неразгаданной оставалась китайская игра го. Две самых понятных (но не единственных) причины, почему го такая сложная.

Больше возможных позиций. Чудовищно больше.

  • Поле – 19 на 19 (в шахматах – 8х8). Изначально доска пустая, и уже по ходу игры соперники заполняют ее камнями, захватывают территорию и окружают камни противника.
  • Камней – 361 (180 белых и 181 черных), и столько же – вариантов первого хода (в шахматах – 20).
  • После первого раунда на столе может быть 129 тысяч различных комбинаций (в шахматах – 400).
  • Представить, сколько в принципе возможных партий может быть разыграно в го, вы все равно не сможете. Но не переживайте – до 2005 года это не мог сделать даже компьютер (в этом числе – 171 цифра). Подчеркнем: сейчас мы говорим о чисто теоретическом значении, в котором и речи не шло о подборе успешных комбинаций. Альфа-бета отсечение было неприменимо к этой игре.

Абстрактная природа игры

  • Жертва позицией ради задуманной комбинации в го – не хитрый трюк, как в шахматах, а основа игры. Игрок оценивает, выгодно ли пожертвовать группой камней ради новой позиции на доске; ценность разных камней постоянно меняется и определяется интуитивно.


Для победы машины над человеком понадобилось создание нейросети, которая изучала матчи профессионалов, играла бесчисленное количество партий внутри себя самой и самообучалась. Разработкой занялась компания AlphaGo, одним из инвесторов которой был Илон Маск. В марте 2016 года AlphaGo выставили нейросеть на матч против лучшего игрока мира, Ли Седола.

Тогда AlphaGo предсказывала поведение человека только в 57% случаев. Мало кто верил в победу ИИ – все ценители считали, что у людей еще есть пара лет. Но встреча закончилась разгромной победой AlphaGo – компьютер обыграл Ли Седола со счетом 4:1. Так в мире не осталось классических настольных игр, в которых человек был бы сильнее компьютера.


Теперь ученые штурмуют Dota 2 – возможно, самую многослойную командную видеоигру. В ней огромное количество переменных (117 героев, у каждого – минимум 4 способности; 164 артефакта), но это не самое сложное. Куда сложнее перемещения по обширной карте, предугадывание действий противника, понимание силы своей команды относительно врага (может меняться каждую минуту).

Если конкретнее, год назад бот OpenAI:

Компания, разработавшая нейросеть – OpenAI. И здесь тоже замешан Илон Маск.

Чем занимается OpenAI?


  • безопасность – не только защита от мошенников и злоумышленников, но защита человека от ИИ. Для того, чтобы в результате исследований людям не был причинен вред, компания прямо сейчас ищет ученых-социологов;
  • все исследования OpenAI находятся в открытом доступе, за исключением потенциально вредных программ. Это не первый случай, когда изобретения Илона Маска бесплатны – некоторые патенты Tesla также доступны каждому.

На данном этапе у OpenAI много интересных разработок:

    для ИИ;
  • нейросеть, генерирующая изображения;
  • роборука, который может находить заданные предметы среди схожих;

  • и еще одна роборука, способная крутить кубик и находить нужную букву. Так и до определения капчи недолго;

Сейчас OpenAI в поиске дополнительных инвесторов. Илон Маск не так давно вышел из совета директоров OpenAI (возможный конфликт интересов с Tesla в разработке ИИ), но продолжает оказывать финансовую помощь компании и интересуется последними разработками.

Как нейросеть училась играть в доту?

Сначала – один на один

Работа над ботом велась полгода. Сначала он постигал базовые механики – движение от приближающего врага, затем переходил к задачам посложнее – анализу матчей и играм против слабых соперников. И если в марте 2017-го он только учился игре и наблюдал за ней со стороны, то к 11 августа побеждал самых одаренных технически игроков планеты – Артизи и Сумаила.

Но перед командой OpenAI уже стояла задача посложнее.

Затем – 5 на 5. От любителей до бывших профессионалов.

Боты AI на протяжении почти года каждый день наигрывали друг с другом по 180 лет игрового времени. Но условия игры для равного противостояния с людьми все равно пришлось упростить. Количество героев на выбор сократили со 115 до 18. Игрокам нельзя было пользоваться некоторыми артефактами, призывать иллюзии или подконтрольных существ. Ради справедливости ограничения коснулись и ботов – им уменьшили скорость реакции, чтобы она была сопоставима с человеческой.

В таких условиях боты научились безошибочно обыгрывать любительские команды.

Достижения OpenAI отметил Билл Гейтс.

Людей поддерживал сам Илон Маск, но им удалось обыграть машин лишь раз – когда игроки сами выбрали героев ботам. Общий счет серии – 2:1 в пользу OpenAI.

. И к действующим участникам чемпионата мира

На главном ежегодном турнире по доте было запланировано три матча против OpenAI. Первый матч OpenAI сыграли с paiN Gaming. Бразильская команда считалась аутсайдером турнира, однако смогла перевернуть игру к середине матча. 1:0 в пользу человечества.

Тут все о первом матче против искусственного интеллекта

А в следующей игре бездушные машины сразились с китайскими ветеранами (некоторые из них еще несколько лет назад выигрывали The International). Защитники человечества обыграли ботов за 40 минут – достаточно долгая игра, но преимущество людей было очевидным.

Китайцы так круто сделали ботов, что они нервничали как люди. Судите сами

Из-за провального выступления компьютера третий матч решили отменить. Счет – 2:0 в пользу людей.

Как устроен мозг OpenAI?

Компьютер оценивает вероятность победы еще на стадии выбора героев. До матча с бывшими про он проанализировал более 11 миллионов различных матчапов, поэтому точно знал, с какими персонажами будет проще победить.


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

Но это только один герой. Самое поразительное, что OpenAI предсказывает происходящее на карте на восемь минут вперед. Его прогнозы касаются:

  • целостности оборонительных вышек;
  • убийств врагов и смертей союзников;
  • количества добитых крипов.

Были, конечно, и баги. Например:

  • Иногда боты зависали из-за неспособности определиться с нужной вещью;
  • Покупали слишком много расходных предметов;
  • Ставили непонятные варды на одном и том же месте без всякого смысла;
  • Останавливались и продолжали двигаться после небольшой паузы.

Но самое интересное: некоторые действия ботов шли в разрез с общепринятыми понятиями об игре в доту – и при этом работали. Например, в одном из матчей боты поставили четырех героев на одну линию (напомним, героев – пять, линий – три. Условно: такое решение аналогично выходу с 5 нападающими в современном футболе). Боты действовали очень агрессивно и не всегда логично, задействовали в атаках традиционно пассивных героев и получали численное преимущество. Это лишь первые шаги искусственного интеллекта, но что если мы все это время играли в доту неправильно?

Промежуточные задачи в доте (драки, разрушение башен) ровно так же не важны сами по себе и являются лишь способами по достижению главной цели – разрушить вражеский трон быстрее противника.

Сегодня вечером OpenAI сыграла с чемпионами мира


Боты победили OG со счетом 2:0 в серии до двух побед. В первой игре люди играли активно и принимали не самые стандартные решения. В определенный момент им даже удалось выйти вперед, но боты верно прочувствовали свои возможности и сгруппировались. Во второй OG попытались затянуть игру, но это абсолютно не сработало: боты выиграли все три линии и рано закончили матч.

Результат игры нашего бота показывает, что игра с самим собой [self-play] может серьёзно увеличить качество систем машинного обучения, и повысить его от состояния гораздо ниже уровня человека до уровня сверхчеловека, при наличии соответствующих вычислительных мощностей. В течение месяца наша система поднялась с состояния, едва ли соответствовавшего уровню хорошего игрока до состояния, в котором она обыгрывала лучших профессионалов, и с тех пор продолжает совершенствоваться. Качество системы контролируемого глубинного обучения определяется набором учебных данных, но для систем, играющих с самими собой, доступный набор данных автоматически улучшается.

image


Изменение рейтинга TrueSkill (схожего с рейтингом Эло для шахмат) нашего бота со временем, подсчитанная при помощи симуляции игр между ботами.

Проект развивался следующим образом. Рейтинг 15% игроков находится ниже отметки 1,5К по шкале MMR; у 58% игроков он ниже 3К; у 99,99% игроков ниже 7,5К.

Игра против SumaiL

Задача

В полной версии игры сражаются игроки 5 на 5, но в некоторых турнирах бывают и игры 1 на 1. Наш бот играл по стандартным турнирным правилам – мы не добавляли специальные упрощения для ИИ.

Бот работал со следующими интерфейсами:

• Наблюдение: API, разработанные так, чтобы у него были те же возможности, что и у живых игроков, касающиеся героев, других персонажей игры и поверхности рядом с героем. Игра частично наблюдаема.
• Действия: доступные через API, с частотой, сравнимой с человеческой, включая движение к определённому месту, атаку и использование предметов.
• Обратная связь: бот получает вознаграждения за победу, а также простые параметры, такие, как здоровье и ластхиты.

Мы выбрали несколько десятков предметов, доступных для бота, и выбрали из них один для изучения. Также мы отдельно тренировали блокирование крипов при помощи традиционных техник обучения с подкреплением, поскольку это происходит до того, как появляется соперник.

Бот играет против Arteezy

Турнир The International

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

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

После матчей с Arteezy мы обновили модель блокирования крипов, что увеличило TrueSkill на единицу. Последующие тренировки перед матчем с SumaiL в четверг увеличили TrueSkill на два пункта. SumaiL указал на то, что бот научился кастовать разрушающие заклинания [raze] вне поля видимости противника. Это случилось благодаря механике, о которой мы не знали: кастование за пределами поля зрения врага не даёт ему заряжать вонд.

Arteezy сыграл матч с нашим тестировщиком уровня 7,5К. Arteezy выигрывал игру, но наш тестировщик сумел удивить его при помощи стратегии, подсмотренной у бота. Arteezy позже заметил, что эту стратегию против него однажды использовал Paparazi, и что к ней довольно редко прибегают.

Pajkatt выигрывает у понедельничного бота. Он заманивает бота, а потом использует регенерацию.

Уязвимости бота

Удачные уязвимости попали в три категории:

• Перетягивание крипов. Можно постоянно заставлять крипов с линии гнаться за вами сразу после их появления. В результате за вами по всей карте будет бегать несколько десятков крипов, и вражеские крипы уничтожат башню бота.
• Orb of venom + wind lace: дают вам преимущество в скорости передвижения над ботом на первом уровне и позволяют быстро нанести урон.
• Raze на первом уровне: требует навыков, но несколько игроков класса 6-7K смогли убить бота на первом уровне, удачно выполнив 3-5 заклинаний за короткое время.

Инфраструктура

Мы пока не готовы обсуждать внутренние особенности бота – команда работает над решением задачи с игрой 5 на 5.

В то время Dota не поддерживала выделенные серверы, то есть запуск с масштабированием и без GPU был возможен только в варианте с очень медленным софтовым рендером. Затем мы создали заглушку для большей части вызовов OpenGL, кроме тех, что нужны были для загрузки.

Одновременно мы написали бота на скриптах – в качестве эталона для сравнения (в частности потому, что встроенные боты плохо работают в режиме 1 на 1) и чтобы понять семантику API для ботов. Скриптовый бот доходит до 70 ластхитов за 10 минут на пустом пути, но всё равно проигрывает достаточно хорошо играющим людям. Наш лучший бот играющий 1 на 1, доходит до отметки порядка 97 (башню он уничтожает раньше, так что мы можем только экстраполировать), а теоретический максимум – 101.

Бот играет против SirActionSlacks. Стратегия отвлечения бота толпой курьеров не сработала

Пять на пять

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

Привычным образом мы начнём с копирования поведения. В Dota проходит порядка миллиона публичных игр в день. Записи матчей хранятся на серверах Valve две недели. Мы скачиваем каждую запись игры на экспертном уровне с прошлого ноября, и набрали набор данных объёмом в 5,8 млн игр (каждая игра – примерно 45 минут с 10 игроками). Мы используем OpenDota для поиска записей и перечислили им $12000 (что в десять раз больше того, сколько они хотели собирать за год) для поддержки проекта.

У нас ещё много идей, и мы нанимаем программистов (интересующихся машинным обучением, но не обязательно экспертов) и исследователей нам в помощь. Мы благодарим Microsoft Azure и Valve за поддержку в нашей работе.

Читайте также: