Подробно о том, как дать тараску ботам в «Доте 2»
В игре «Дота 2» присутствует большое количество команд для лобби, следовательно, каждый игрок имеет возможность использовать читы и различные дополнения, которые позволяют выполнять определенные действия. Некоторые коды являются действительно полезными в бою с противником, да и просто при раскачке своего героя. К примеру, в игре ботам дать тараску вы можете моментально, но, естественно, сначала вам следует узнать, как это выполняется. Это позволит в дальнейшем не допустить ошибок и потерять время зря.
«Дота 2» (лобби): ботам дать тараску
Читов существует большое множество, и каждый из них отвечает за определенные действия или добавляет какие-либо преимущества по отношению к другим игрокам. Сегодня вы сможете узнать, как дать тараску ботам в «Доте 2». Самое интересное заключается в том, что каждый игрок имеет возможность самостоятельно создавать лобби.
Активация
Итак, перед тем, как начинать создавать свое лобби и решать вопрос, как дать тараску ботам в «Доте 2», вам следует в клиенте перейти в специальный раздел, который называется «Правила игры». Там вы сможете заметить много параметров, которые при желании можно активировать или отключить. После попадания в этот раздел ищем строку «Включить читы». Именно напротив этого параметра следует установить галочку.
Если вы давно играете в «Дота 2», тогда наверняка помните о том, что раньше читы можно было использовать через консоль, которая возникала в правой части. Теперь же разработчики немного упростили этот процесс. Вводить данные можно в общем чате. Давайте непосредственно перейдем к вопросу, как дать тараску ботам в «Доте 2».
Инструкция
Сразу вам следует узнать команду для такого взлома. При этом, если у вас еще не создано лобби, его потребуется сделать самостоятельно. Впрочем, с этим процессом у вас не должно возникнуть трудностей. Сейчас мы вам представим несколько читов, которые помогут решить поставленный вопрос.
Если вы еще не знаете, как дать тараску ботам в «Доте 2», то делать это можно с помощью специальной команды. При использовании в лобби эти данные не будут считаться взломом. Некоторые команды обязательно должен знать каждый игрок, так как иногда они будут для вас просто незаменимыми.
- Стандартный код для передачи предметов созданным ботам выглядит следующим образом: -givebots <item_name>.
- В случае с тараской это сочетание следует изменить соответствующим образом. Его финальный вид таков: -givebots item_heart.
- Существует также команда –clearwards. Она убирает Observer wards с игровой карты.
- Код -killwards уничтожает все варды.
Читы для практики [В лобби] тактика Dota 2
Я думаю у всех дотеров иногда появляется желание проверить, как работает та или иная способность героя или, например, как гармонируют те или иные предметы. Именно для этого обычно запускается одиночная игра в лобби. Приведу себя в качестве примера. Экспериментируя в лобби, я узнал, например, что ульт Shadow Demon убивает курьера, а SunStrike инвокера нет. Хотя и первая способность, и вторая — чистый урон. Именно в лобби, я убедился, например, что маленький сатир, которого все так обходят стороной, снимает, скажем, Repel Omniknight’a.
Как говориться, лучше один раз увидеть, чем сто раз услышать. Лучше один раз проверить в лобби, как хорошо сочетается Yey of Skadi с Satanic’ом, чем пытаться вспомнить в бою, что вам когда-то рассказывал ваш товарищ. В этом руководстве я собрал все известные мне читы для практики, которые могут быть полезны дотеру. Я надеюсь каждый из вас после прочтения, откроет для себя что-то новое. Поехали!
Лень читать? Предлагаю ознакомиться с моим видео-руководством по читам Dota 2. Приятного просмотра!
Сразу же предупрежу. Все читы будут работать, только если вы включите читы в настройках лобби. Я начну с тех читов, которые работают с нашим основным героем.
-gold [число] (без скобок)
Пишите gold, пробел число. Число — это то сколько золота вам нужно. Сильно много не заказывайте. Во-первых 99999 — это максимальное количество денег, которое может у вас быть на руках. Во-вторых, если вы напишите слишкои много, то денег вам не дадут вообще. Еще есть такая фишка, иногда нужно отнять золото у своего героя, тогда необходимо прописать после «-gold» знак «минус» и число. если мы пишем «-gold -625», отнимется 625 золотых
-lvlup [число] (без скобок)
После «lvlup» пишем число, на которое хотим увеличить свой уровень. Например, если у нас четвертый уровень, а нам нужен седьмой, то пишем «-lvlup 3».
-respawn
Эта команда возрождает героя на фонтане. Выглядит это так, как будто наш герой только что вышел из таверны.
-item [название предмета] (без скобок)
Вы можете дать своему герою любой существующий артефакт. Например, вы хотите купить себе радик, но в потойную лавку для этого идти очень долго. Открываем чат и пишем «-item item_radiance». Не всегда все так просто. Например, если вы хотите получить буризу, вы наверное пропишите «-item item_daedalus». Вот тут вас будет ждать разочарование. Для некоторых артефактов не подходят их стандартные названия. А вот как все-таки получить свой заветный Daedalus — пишем «-item item_greater_crit». В конце этого руководства вы найдете полный список артефактов с их «читерскими» названиями.
-createhero [название героя] (без скобок)
Эта команда позволяет вам создать юнита или героя. Например, мы хотим создать героя Lina, Для этого необходимо прописать в чате «-createhero Lina». Герой появится в том месте, где находится ваш курсор. Если вы хотите создать вражеского героя, то в конце необходимо прописать слово enemy через пробел. Например, пишем «-createhero huskar enemy» и появится Хускар во вражеской команде, которого мы можем контроллировать. Команда позволяет также создавать нейтральных крипов, рошана и даже постройки. Если, мы хотим создать нейтрального юнита, то в конце чита необходимо прописать через пробел слово «neutral». Например «-createhero satyr_soulstealer neutral». Созданного сатира нельзя будет контроллироватьи он будет привязан к точке респауна. Небольшое замечание. Не всех героев можно создать, используя их стандартные имена, которые им дали в Dota 2. Например, чтобы создать Outworld Devourer’а, необходимо прописать в чат «-createhero obsidian_destroyer», а чтобы например создать тимбера «-createhero shredder». Поэтому в конце гайда, я приложу список героев и юнитов вместе с их читерскими именами.
-levelbots [число] (без скобок)
По аналогии с командой «-lvlup» увеличивает уровень, только на этот раз не вашего героя, а всех созданных вами ботов.
-refresh
Команда разово сбрасывает перезарядку на всех способностях и артефактах, а также восстанавливает здоровье и ману до максимальных значений. Эффект распространяется как на вашего героя, так и на всех созданных вами ботов.
-givebots [название предмета] (без скобок)
По аналогии с читом «-item», этот чит дает любой артефакт всем присутствующим на карте ботам. Как я говорил выше, полный список предметов, вы найдете в конце этого руководства
-wtf
При вводе в чат включается так называемый «WTF-mode». Этот чит убирает перезарядку у способностей, не позволяет зарядам способностей заканчиваться. При этом если вы используете способность или артефакт, то не будете тратить свою ману.
-unwtf
Отключает «WTF-mode».
-disablecreepspawn
Останавливает автоматическое возрождение крипов. Что я имею ввиду, обычно, значит в доте как… Крипы сил света и тьмы появляются каждые 30 секунд рядом с бараками и идут в сторону врага по тропинкам. Нейтральные крипы появляются раз в минуту. Этот чит делает так, что крипы сил света, тьмы и нейтральные крипы перестают возрождаться.
-enablecreepspawn
Отменяет предыдущую команду и включает автоматический respawn крипов.
-allvision
Если прописать этот чит, то вы будете видеть не только от лица своей команды, но также и от лица команды вражеской. Этот эффект будет распространяться как на большую карту, так и на миникарту.
-normalvision
Собственно, команда отключает чит «-allvision». Вы снова получаете стандартную видимость от лица своей команды.
Далее я привожу небольшой список читов, которые как мне кажется, будут впервую очередь полезны для изучения вардинга в доте. По крайней мере, я их использовал именно так
-clearwards
Команда убирает все Observer Ward, расставленные вами по карте. Все желтые!
-killwards
Команда убирает все Observer Ward и Sentry Ward, расставленные вами по карте. Все Желтые и Синие варды.
-spawnneutrals
Этот чит возрождает крипов на нейтральных лагерях. Нейтральные крипы появятся только в том случае, если их возрождению ничего не мешает. Соответственно расставляя варды, и используя эту команду можно понять, какие варды блочат лагеря, а какие нет.
-spawnrune
Эта команда возрождает руны, при у вас нет необходимости ждать четной минуты. Используя эту команду, я например узнал какие руны работают на мишке, а какие нет. Также может быть полезна, чтобы поподробнее изучить особенности рун.
-startgame
Этот чит можно использовать в начале игры, чтобы мгновенно перемотать таймер до 00:00. При этом появятся первые руны и крипы побегут по тропинкам.
Здесь я приведу 2 чита. Что первый, что второй чит, работают только в локальном лобби, только если в консоли предварительно прописать команду «sv_cheats 1». Прописывать их необходимо также в консоль, а не в чат, как все предыдущие читы.
dota_range_display [число] (без скобок)
Чит включает отображение окружности, центром которой, является ваш герой. Радиус окружности вы указываете сами. «Для чего нужен этот чит?» — Спросите вы. С его помощью можно быстро привыкнуть, например к дальности действия той или иной способности, или к дальности атаки героя дальнего типа атаки. Команда может быть полезна, чтобы научиться хорошо чувствовать зону получения опыта, например, если вы много играете на героях-хардлайнерах.
dota_camera_distance [число] (без скобок)
Регулирует расстояние камеры до героя. По умолчанию стоит 1134. Попробуйте, пропишите, например 1500. Повторюсь, оба этих чита будут работать, только в локальном лобби и только, если вы пропишите в консоль «sv_cheats 1».
Radiant
Dire
Radiant
Dire
Radiant
Dire
Рошан:
— roshan
Кобольды:
— kobold
— kobold_tunneler
— kobold_taskmaster
Гноллы:
— gnoll_assassin
Кентавры:
— centaur_outrunner
— centaur_khan
Призраки:
— ghost
— fel_beast
Урсы:
— polar_furbolg_champion
— polar_furbolg_ursa_warrior
Огры:
— ogre_mauler
— neutral_ogre_magi
Волки:
— giant_wolf
— alpha_wolf
Совы:
— wildkin
— enraged_wildkin
Сатиры:
— satyr_soulstealer
— satyr_hellcaller
— satyr_trickster
Глиняные големы:
— rock_golem
Тролли:
— dark_troll
— dark_troll_warlord
Маленькие тролли:
— forest_troll_berserker
— forest_troll_high_priest
Гарпии:
— harpy_scout
— harpy_storm
Древние ящеры:
— big_thunder_lizard
— small_thunder_lizard
Древние драконы:
— black_dragon
— black_drake
Древние големы:
— granite_golem
— rock_golem
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
РАСХОДУЕМЫЕ
╚═══════════════════════════════════════════════════════════════════╝
— item_clarity
— item_enchanted_mango
— item_tango (item_tango_single)
— item_flask
— item_smoke_of_deceit
— item_tpscroll
— item_dust
— item_courier
— item_flying_courier
— item_ward_observer
— item_ward_sentry
— item_bottle
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
АТРИБУТЫ
╚═══════════════════════════════════════════════════════════════════╝
— item_branches
— item_gauntlets
— item_slippers
— item_mantle
— item_circlet
— item_belt_of_strength
— item_boots_of_elves
— item_robe
— item_ogre_axe
— item_blade_of_alacrity
— item_staff_of_wizardry
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
ВООРУЖЕНИЕ
╚═══════════════════════════════════════════════════════════════════╝
— item_ring_of_protection
— item_stout_shield
— item_quelling_blade
— item_orb_of_venom
— item_blades_of_attack
— item_chainmail
— item_quarterstaff
— item_helm_of_iron_will
— item_broadsword
— item_claymore
— item_javelin
— item_mithril_hammer
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
МАГИЯ
╚═══════════════════════════════════════════════════════════════════╝
— item_magic_stick
— item_sobi_mask
— item_ring_of_regen
— item_boots
— item_gloves
— item_cloak
— item_ring_of_health
— item_void_stone
— item_gem
— item_lifesteal
— item_shadow_amulet
— item_ghost
— item_blink
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
ОБЩЕЕ
╚═══════════════════════════════════════════════════════════════════╝
— item_magic_wand
— item_null_talisman
— item_wraith_band
— item_poor_mans_shield
— item_bracer
— item_soul_ring
— item_phase_boots
— item_power_treads
— item_oblivion_staff
— item_pers
— item_hand_of_midas
— item_travel_boots
— item_moon_shard
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
ПОДДЕРЖКА
╚═══════════════════════════════════════════════════════════════════╝
— item_ring_of_basilius
— item_headdress
— item_buckler
— item_urn_of_shadows
— item_tranquil_boots
— item_ring_of_aquila
— item_medallion_of_courage
— item_arcane_boots
— item_ancient_janggo
— item_mekansm
— item_vladmir
— item_pipe
— item_guardian_greaves
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
МАГИЯ
╚═══════════════════════════════════════════════════════════════════╝
— item_glimmer_cape
— item_force_staff
— item_veil_of_discord
— item_necronomicon
— item_necronomicon_2
— item_necronomicon_3
— item_dagon
— item_dagon_2
— item_dagon_3
— item_dagon_4
— item_dagon_5
— item_cyclone
— item_solar_crest
— item_rod_of_atos
— item_orchid
— item_ultimate_scepter
— item_refresher
— item_sheepstick
— item_octarine_core
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
ОРУЖИЕ
╚═══════════════════════════════════════════════════════════════════╝
— item_lesser_crit
— item_armlet
— item_invis_sword
— item_basher
— item_bfury
— item_ethereal_blade
— item_silver_edge
— item_radiance
— item_monkey_king_bar
— item_greater_crit
— item_butterfly
— item_rapier
— item_abyssal_blade
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
БРОНЯ
╚═══════════════════════════════════════════════════════════════════╝
— item_hood_of_defiance
— item_vanguard
— item_blade_mail
— item_soul_booster
— item_crimson_guard
— item_black_king_bar
— item_lotus_orb
— item_shivas_guard
— item_bloodstone
— item_manta
— item_sphere
— item_assault
— item_heart
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
АРТЕФАКТЫ
╚═══════════════════════════════════════════════════════════════════╝
— item_mask_of_madness
— item_helm_of_the_dominator
— item_sange
— item_yasha
— item_maelstrom
— item_diffusal_blade
— item_diffusal_blade_2
— item_desolator
— item_heavens_halberd
— item_sange_and_yasha
— item_skadi
— item_mjollnir
— item_satanic
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
ПОТАЙНАЯ ЛАВКА
╚═══════════════════════════════════════════════════════════════════╝
— item_energy_booster
— item_point_booster
— item_vitality_booster
— item_platemail
— item_talisman_of_evasion
— item_hyperstone
— item_ultimate_orb
— item_ultimate_orb
— item_mystic_staff
— item_reaver
— item_eagle
— item_relic
Спойлер:
╔═══════════════════════════════════════════════════════════════════╗
АЕГИС/СЫР
╚═══════════════════════════════════════════════════════════════════╝
— item_aegis
— item_cheese
-createhero [hero]
-createhero [neutral]
-item, -givebots
Возможно тебя также заинтересуют другие мои руководства на сайте Dota2.Ru
Гайды по героям:
— Манта, башер — катка наша! Anti-Mage (6.85) [Guide]
— Звезда смерти IO (6.85) [Guide]
— Толстый и славный Lone Druid (6.85) [Guide]
— Лунный бархат, нежный шелк luna (6.85) [Guide]
— Crystal Maiden [Гайд] — С НОВЫМ ГОДОМ! (6.86)
— Chaos Knight [Гайд] – АПОФЕОЗ РАНДОМА
— Treant Protector [Гайд] – РОЖДЕННЫЙ БАОБАБОМ
— bristleback [Гайд] — ЕЖИДЗЕ
Руководства по микроконтролю в Dota 2:
Основы микроконтроля
Продвинутый микроконтроль
Другие руководства:
Читы для практики [В лобби]
Как фармить крипов под башней?
Мгновенный закуп — Покупка любого артефакта в 2 кнопки (+скрипт)
Понравилось руководство? Узнал что-то новое?
Поставь, лайк! Это продвинет гайд в топ, а также вдохновит меня делать больше хороших руководств!
Разработка ресурсоэффективного алгоритма машинного обучения
Состав бота
В декабре 2018 года создатели AI Sports выступили с презентацией и представили DotA2 AI Competition для школы. DotA (Защита Древних) — игра, в которую играют две команды, каждая из которых состоит из пяти игроков, которые могут выбирать из более чем ста различных героев. Цель игры — уничтожить базу противников, одновременно защищая свою.Каждый герой имеет доступ как минимум к четырем уникальным способностям и может приобретать предметы, которые также имеют разные способности. Предметы покупаются за золото, заработанное за уничтожение структур противника или за победу над игроками или крипами, за неигровыми персонажами, которые появляются, чтобы помочь защитить и атаковать базы.
Сложность игры определяется не только списком персонажей, но и постоянно меняющимся состоянием карты. Полные информационные игры, такие как шахматы или иди, не оставляют никакой информации от игроков, что позволяет им видеть все возможные действия на доске в любой момент времени.Карта DotA включает «туман войны», который скрывает любую часть карты, которую не видит игрок или его товарищи по команде. Способности каждого героя также имеют «кулдауны» — после того, как игрок использует способность, он не может использовать ее снова в течение определенного периода времени — и использует ману в качестве ресурса. Хотя игрок имеет доступ к этой информации о своих союзниках, он не имеет этой информации о противнике и должен учитывать ее при участии в боях.
Правила соревнования состояли в том, чтобы запрограммировать полную команду из пяти ботов для игры в режиме капитана.Режим капитана устанавливает одного члена каждой команды в качестве капитана, давая им возможность выбирать героев для остальной части команды, а также «запрещать» или выбирать героев, которых команда противника не может использовать. Чтобы избежать запрета всех наших персонажей, нам нужно было запрограммировать как минимум шестнадцать из них. Наше ограничение, установленное Морисом, 42 сотрудниками Силиконовой долины, заключалось в том, что мы не могли использовать встроенную систему «желаний» — систему, обеспечивающую поведение по умолчанию для бота при исполнении, предоставленную Valve. Вместо того, чтобы использовать поведение ботов по умолчанию, нам было поручено писать код снизу вверх.API для DotA2 написан на Lua и позволяет игрокам создавать своих собственных ботов. Первоначально соревнование было разработано для использования C ++ API, написанного
Обзор поля битвы DotA с метками, изображение с https://dota2.gamepedia.com/Map
создателей AI Sports, но из-за «сложностей» наша команда использовала Lua вместо этого.
Изучение Lua и API
Чтобы создать бота, мы сначала прочитали API и искали другие примеры, созданные пользователями.DotA API был доступен в начале 2016 года, но не получал каких-либо значимых обновлений примерно с октября 2017 года. Первым использованным нами ресурсом было руководство по началу работы, написанное RuoyuSon. RuoyuSon объяснил, где найти другие ресурсы и как запустить игры, а также полезные консольные команды для процесса тестирования. Valve также предоставляет небольшие примеры скриптов ботов в каталоге игр, которые можно использовать для начала работы. С API и другими примерами мы наивно полагали, что сможем создать бота и получить сырую, рабочую версию кода в течение недели.
Первой задачей было выбрать героев, которых мы хотели использовать, и запустить игру. В то время мы не знали, что если в коде для выбора героя будет ошибка, вся игра вылетит, ничего не отобразив. Пример, предоставленный Valve, может быть использован для быстрого создания кода выбора героя для режима All Pick Mode, но его нельзя использовать для режима Captain’s Mode. Чтобы выбрать героев, мы читаем другие примеры кода. Хотя наша текущая итерация бота позволяет игрокам-людям играть против и рядом с ней, оригинальная версия предназначалась только для игры против другого бота в режиме капитана.Наконец, создание простой версии выбора героев заняло чуть больше недели, но с тех пор было изменено для поддержки All Pick Mode и игроков-людей.
После запуска игры мы начали экспериментировать с тем, чтобы герои шли по локациям на карте. Мы быстро научились, не зная языка Lua, затруднили написание и понимание других примеров кода. В то время как мы могли заставить ботов ходить в определенные места или покупать предметы, мы часто допускали синтаксические ошибки, и поиск ошибок в коде занимал значительное время.Через две недели мы потратили много времени на изучение языка, прежде чем снова заняться API.
В то время как турнир приближался, мы все еще выясняли Lua и боролись, чтобы понять API. Наши герои перемещались в правильные места, и они могли сражаться с вражескими миньонами и противниками, хотя и плохо, но они никогда не отступали, что приводило к смерти после смерти. Даже несмотря на простейшую сложность бота по умолчанию, Passive, мы не смогли победить. Мы реализовали грубую функцию отступления — просто приказывая ботам вернуться на свою базу, если они получили слишком много урона, — это помогло, но оставило желать лучшего.Мы смогли последовательно выиграть у пассивного бота, но обычно заканчивали игру с почти 100 смертельными случаями за игру на нашей стороне, и нам повезло увидеть две смерти противников.
Следующим шагом, теперь, когда были заложены основы поведения ботов, было начало индивидуализации каждого бота, чтобы они могли использовать свои способности. Каждый бот использует свои навыки в зависимости от условий, что позволяет им сражаться с врагом. В этот момент наш недостаток опыта в DotA начал проявляться — хотя боты умели использовать навыки, они не использовали их оптимально просто потому, что мы не знали, что было оптимальным.Мы часто просили людей с большим опытом за советы и постепенно укрепляли бот. Наконец, мы смогли победить пассивного бота с положительным счетом. Мы пытались преодолеть легкую сложность, но боролись. Разница между ними была значительной, и нам нужно было реализовать больше поведения, чтобы победить.
State Machine
До этого момента весь код был написан как предопределенные действия для каждого бота для выполнения. Сложность DotA постепенно усложняла разделение того, что нужно делать и когда.Должны ли мы бороться в этом случае или убежать? Когда мы должны сосредоточиться на ударах крипов? Хотя нам удавалось последовательно преодолевать сложность Passive, мы понимали, что Easy будет серьезным препятствием. Мы начали обсуждать возможные варианты и приземлились на State Machine.
Пример конечного автомата
При изменении поведения бота стало невозможно четко разделить, когда он будет выполнять действия. Они были настолько тесно переплетены, что корректировка одного из них повлияла бы на производительность другого, и ни одно из поведений не работало особенно хорошо.Мы также не смогли аккуратно включить больше поведений, не нарушая другие части кода. Создав конечный автомат, мы смогли разделить каждое поведение, используя взвешенные средние значения, чтобы решить, какое из них будет наиболее оптимальным в любом случае игры. Код для каждого бота запускается каждый кадр, что позволяет проводить постоянные вычисления и присваивать каждому поведению значение в виде веса. Предполагая, что мы хорошо запрограммировали бота, теперь он может сам решить, что ему делать, исходя из состояния игры.
На этом этапе мы смогли разделить каждое поведение на отдельный код, разбитый на компоненты и условия.Компоненты — это фрагменты информации, которые всегда необходимы для расчета поведения, в то время как условия будут прибавлять или вычитать вес только при определенных обстоятельствах. Разделение кода позволило нам заставить каждое поведение работать лучше — раньше каждое поведение зависело от другого, но с помощью конечного автомата мы выполняли только те части кода, которые нам нужны, и только тогда, когда нам нужно.
Хотя некоторые из нас настраивали конечный автомат, мы также продолжали улучшать версию без конечного автомата до такой степени, что смогли преодолеть сложность Easy.Мы снова увидели 100 смертей на табло, но получили бы больше убийств на нашей стороне и выиграли бы. Код из версии без State Machine легко вставляется в наш новый бот, что позволяет нам продолжать работу без каких-либо существенных задержек.
Одним из преимуществ конечного автомата была модульность системы. До этого общее поведение бота состояло из двух файлов, в которых были написаны необходимые комментарии, чтобы понять, какая часть кода просматривалась — в новой версии были отдельные файлы для каждого веса, а поведения были разделены, чтобы они не взаимодействовали друг с другом.Модульность позволила нескольким людям работать над разными частями проекта, не влияя на то, над чем может работать кто-то другой, улучшая ясность, простоту и рабочий процесс команды.
Мы также готовились к нашему первому матчу между ботами и ботами против другой команды в соревновании, но State Machine не тестировался и не был готов к реализации. Это дало нам последний шанс увидеть, как держалась предыдущая версия. Перед тем, как начать схватку, мы решили проверить и убедиться, что код обеих команд работает правильно.Когда у обоих ботов было случайное сочетание героев противника и их собственных, команды поняли, что мы допустили ошибку на этапе выбора. Обе команды смогли решить эту проблему, но это был еще один случай борьбы с API, который сохранялся на протяжении всего процесса. В это время Морис также уведомил нас о том, что турнир будет отложен на месяц, что даст нам возможность продолжать улучшать наших ботов.
Во время тестирования на собственных ботах Valve нам часто приходилось перезапускать игры из-за проблем совместимости с их ботом и режимом капитана.Мы решили создать собственный режим выбора для двух команд, чтобы ускорить процесс и сократить ненужные перезапуски. Мы дали ботам оппонента случайную команду из пяти человек и использовали эту команду для большей части нашего тестирования. В то время мы не знали, что это вернется, чтобы укусить нас позже.
Наша команда продолжала работать с конечным автоматом, добавив больше поведений, которые мы не могли реализовать ранее. По мере улучшения поведения мы также начали видеть улучшения в наших матчах с ботом Valve.После победы над Easy, в течение 24 часов мы смогли победить Medium, а на следующий день мы победили Hard и Unfair спиной к спине. Мы были в восторге, не ожидая побить Недобросовестных намного позже, но, поскольку мы решили наблюдать за ботами противника, наши челюсти упали. Два бота нашего оппонента не покупали предметы, а один не использовал никаких способностей. Несмотря на то, что мы смогли победить, но все же это был подвиг, он не был настоящей победой против недобросовестного бота.
Чего мы не знали, так это того, что Valve реализовали только определенное использование умений и покупку предметов у 46 ботов.Мы поменяли состав противника на пять из этих ботов, и хотя мы могли хорошо провести борьбу с Хардом и выиграть примерно сорок процентов времени, мы редко побеждали против Недобросовестных. Мы начали больше обсуждать, что мы можем сделать, чтобы увеличить наш выигрыш, что привело к нашей первой смене состава. Посмотрев на героев, которых мы реализовали, в то время только пять, мы решили выбрать героев, которые, как мы надеемся, лучше соответствовали бы нашему общему плану игры. Сразу же мы увидели рост и, хотя мы стали привязываться к героям, которых мы выбрали, мы стали рассматривать обмен героями как вариант, поскольку мы продолжали программировать.
Сбор данных
Мы продолжили внедрять больше режимов в State Machine, добавили больше функций и, как мы это сделали, наблюдали медленное, но неуклонное повышение производительности в наших матчах. Чтобы увидеть, насколько хорошо мы справились, когда включили что-то новое, нам пришлось посмотреть полную игру, чтобы наблюдать за конкретным поведением и посмотреть, выиграли ли мы матч или нет. Все веса бота были настроены вручную, и любые изменения, которые мы сделали, могут быть не видны в одной игре. Даже ускорение игры займет от десяти до пятнадцати минут.Чтобы собрать какие-либо значимые данные, мы могли бы тратить часы на просмотр. Чтобы ускорить этот процесс и убедиться, что любое добавленное нами изменение имеет смысл, используя Python, язык программирования Go и Docker, мы начали создавать способ сбора данных для сотен игр.
Морис предоставил нам доступ к пятнадцати компьютерам, которые мы могли использовать для запуска игр и сбора данных. В этот момент мы исследовали режим «без головы» для DotA; мы могли запускать игры без графики, что ускорило бы сами игры и позволило бы нам запускать несколько экземпляров игры без использования графического процессора.Используя Docker, мы установили соединение между клиентом и сервером, что позволило нам использовать виртуальные машины на четырнадцати из этих компьютеров. Мы подсчитали, что можем оптимально запустить до четырех игр на компьютер, поэтому запустили четыре виртуальные машины с шестикратной скоростью. В целом, мы смогли запускать игры примерно в 300 раз быстрее, чем изначально.
Каждая игра может длиться от пятнадцати до восьмидесяти минут. Docker Swarm распределял общее количество запрошенных игр равномерно на все наши рабочие компьютеры.Если бы у нас было менее 56 игр, это решение было бы хорошо, но все остальное было бы неоптимальным. Сначала мы пытались выполнить развертывание с использованием Docker Swarm, но для нас было больше смысла создавать собственное решение. Он должен быть настраиваемым, хорошо работать в распределенной сети и поддерживать простой параллелизм. Мы решили использовать Go, потому что он отвечал нашим критериям и был прост в сборке и развертывании. Наконец, Python использовался для построения графиков и иллюстрации результатов наших данных в виде гистограмм и линейных графиков.
Данные, показывающие выигрыши и проигрыши с течением времени
Используя эту настройку, мы смогли запустить 500 игр за час, что дает нам значимые данные. В то время как нам все еще необходимо было наблюдать за играми, чтобы наблюдать и подтверждать правильное поведение, теперь мы можем протестировать их и собрать данные, чтобы подтвердить, было ли изменение полезным или вредным для бота.
В последние недели мы играли с идеей включения генетического алгоритма. Веса конечного автомата были настроены вручную и основаны на наших наблюдениях.В частности, наш вес «Ферма», «Охота» и «Отступление» были настолько тесно связаны между собой, что, изменяя значения единицы, мы увидели бы существенные различия в том, как они играли, и их процент выигрышей в целом уменьшился бы. Мы знали, что они были в хорошем положении, но были уверены, что они не были оптимальными, особенно учитывая, что разные персонажи играли по-разному, а использование одинаковых весов заставляло их играть более или менее одинаково. Использование генетического алгоритма использовало бы машинное обучение для настройки каждого веса, давая нам наиболее идеальные числа для победы над ботами по умолчанию и, надеюсь, наших противников в турнире.Амбициозная цель состояла в том, чтобы создать разные гены для каждого персонажа, тем самым придав им каждому свой уникальный стиль игры, но мы знали, что без большего количества времени и вычислительных мощностей нам придется обойтись вручную настроенными весами.
За неделю до соревнований мы отошли от добавления основных функций, только небольшие изменения, которые, как доказали наши данные, повысят вероятность выигрыша. В итоге с помощью State Machine мы смогли добиться стабильного выигрыша выше 98% против ботов Valve.Готовясь к конкурсу, Морис связался с нами, сообщив, что конкурс снова продлен еще на месяц.
Генетический алгоритм
С продлением турнира на месяц, мы начали обсуждать, как мы можем создать генетический алгоритм. В конце концов, мы решили использовать Go еще раз, потому что в нем уже были написаны наши программы сбора данных, что облегчает их связывание.
Блок-схема генетического алгоритма, от Arwn
Чтобы генетический алгоритм заработал, нам нужно было запустить несколько итераций нашего бота.Из этих итераций мы собирали гены пяти лучших героев и «разводили» их, перетасовывая, усредняя и соединяя их вместе. Следующее поколение будет состоять из слегка модифицированных версий (с использованием 10% вероятности мутаций для выбора генов, которые необходимо изменить, и 10% мутации для изменения каждого гена на соответствующее количество), о которых мы затем будем собирать данные, повторяя процесс до начала соревнований. Наш план состоял в том, чтобы заменить нынешние гены, настроенные вручную, на новые, с машинным обучением.
Нашим первым шагом было убедиться, что мы можем запустить генетический алгоритм, используя Go и Docker, и одновременно изменить скрипт Lua. Ген каждого бота представлял собой файл Lua, содержащий значения, которые мы хотели изменить, используя генетический алгоритм. Мы использовали Go для чтения файла гена, мутировали значения и выводили новый ген, используя шаблон гена. Новые гены были затем использованы для последующих итераций.
Успешно создав способ чтения и записи в наши новые файлы генов, вместо того, чтобы создавать один общий генетический алгоритм, как мы изначально планировали, мы создали гены для каждого героя, которого мы использовали.Чтобы это работало, каждый файл должен содержать имя героя, которому мы пишем. К сожалению, мы могли тренировать только пять героев одновременно, поэтому мы решили обучить наш стартовый состав и использовать наши настроенные вручную гены для остальных героев, которых мы реализовали.
Завершение генетического алгоритма заняло больше времени, чем планировалось. Мы надеялись запустить его в течение недели, но нам потребовалось еще несколько дней, чтобы устранить ошибки. Каждый из нас создал отдельные части генетического алгоритма, и на то, чтобы собрать их вместе, потребовалось некоторое время.
Наконец, генетический алгоритм сработал, но когда мы начали запускать первые поколения, мы столкнулись с множеством проблем. К этому моменту у нас продолжали возникать некоторые проблемы с нашими контейнерами Docker, на которых не запускались игры, но мы решили пока что игнорировать их, потому что, хотя сбор данных происходил медленнее, это не было значительной разницей во времени. Если один компьютер работает со сбоями и отключается от сети, сервер зависает, ожидая поступления данных с неисправного компьютера. Когда мы решили использовать генетический алгоритм, нам нужно, чтобы он работал без перерыва и продолжал работать через каждое поколение.Если работник не отвечает, сервер никогда не сможет перейти к следующему поколению, потому что он ожидает поступления оставшихся игр. Для нас не имело смысла следить за компьютерами в смену весь день, поэтому мы добавили способ тайм-аут, если мы не получили ответ от контейнера через некоторое время.
В итоге, после примерно четырех дней запуска и остановки генетического алгоритма, мы наконец заработали. Запустив генетический алгоритм и подтвердив его работоспособность, мы решили сменить состав команды на тот, который, по нашему мнению, может повысить наш выигрыш.Когда мы начали работать с генетическим алгоритмом и настроили гены, которыми мы хотели манипулировать, как команда, мы просмотрели их и скорректировали их до чисел, которые, по нашему мнению, имели смысл для запуска генетического алгоритма. В то время мы решили манипулировать примерно 25 компонентами и условиями, «генами», из наших весов Farm, Hunt и Retreat. Это изменение в сочетании с новым выбором героев, которое мы использовали для команды противника, снизило наш коэффициент выигрыша с 98% до 80%. В то время как генетический алгоритм медленно увеличивал процент выигрышей, мы говорили как команда и решили, что, если мы сможем повысить его, поменяв или добавив героев на раннем этапе, это может стоить проверить.После переключения начальные 80% выросли ближе к 90%.
Пока мы наблюдали за ботом, мы знали, что время истекает, и оно растет недостаточно быстро. Хотя это было рискованное решение, которое могло привести к потенциально радикальному снижению коэффициента выигрыша, мы решили скорректировать коэффициент изменения с 10% вероятности мутации и 10% коэффициента мутации до 15% и 25% соответственно. Мы рассчитали, что в самой идеальной ситуации, чтобы избавиться от бесполезного гена, потребуется не менее тридцати поколений, или не менее одной недели.Мы хотели уменьшить это число и рассчитывали, что если мы удвоим его, мы увидим более высокие темпы изменений, к лучшему или к худшему. После нескольких дней наблюдения за результатами наш риск окупился, и бот увидел более быстрое и последовательное увеличение коэффициента выигрыша.
Рост физической формы с течением времени
Как только мы убедились в результате, мы начали добавлять больше генов для манипуляции с другими весами конечного автомата. Еще одна проблема, с которой мы столкнулись на протяжении всего проекта, которую мы не смогли решить, заключалась в том, как играть в начале игры и как играть ближе к концу.В DotA стили игры между ними кардинально отличаются. Поведение, которое важно на раннем этапе, менее важно, так как игра продолжается дольше, и наоборот. До этого момента наша стратегия заключалась в том, чтобы обменять немного более слабое начало игры на более мощный финиш. Мы пытались подправить веса несколько раз, но даже если бы они играли лучше в начале, манипулируемые веса потерпели бы неудачу в конце, снижая общий коэффициент выигрыша. Теперь, когда у нас был наш работающий генетический алгоритм, мы добавили в здоровье различные множители для его корректировки, но также решили добавить множители в зависимости от силы героя.Герои переходят с уровня 1 на 25 и становятся сильнее по мере получения уровней. Мы никогда не могли эффективно управлять весами, чтобы можно было вносить коррективы в ранние и поздние игры. С помощью генетического алгоритма мы теперь можем предоставить компьютеру решать, когда играть по-другому.
После еще одной смены героев мы остановились на нашем последнем списке и продолжили работу генетического алгоритма. За несколько дней до начала турнира мы увидели, что бот наконец достиг 99% побед за одно поколение, но это упало в следующем поколении до 96%.В то время как наши быстрые манипуляции с генами создали мощного бота, когда он приближался к своему теоретическому пику, частота мутаций в 25% изменялась бы сразу и сильно снижалась. Мы решили, что для того, чтобы сохранить наш процент выигрышей, нам нужно замедлить мутацию. Вероятность мутации была снижена до 7%, а частота мутаций была снижена до 15%.
Поскольку мы снова изменили наш генетический алгоритм, мы решили пойти на другой риск. До этого момента мы брали пять лучших генов от каждого героя в качестве родителей, разводили их и использовали потомство для следующего поколения.Хотя это сработало для нас, классически это было не так, как мы должны были использовать генетический алгоритм. В генетическом алгоритме у всех генов должен быть шанс быть выбранным, но мы активно выбирали, какой использовать. Важность использования ботов с более низким коэффициентом выигрыша — это разнообразие. В то время как в поколении он, возможно, не работал так же хорошо, в будущем поколении его гены могут играть важную роль в увеличении коэффициента выигрыша. Чтобы убедиться, что у этих генов с более низким коэффициентом выигрыша есть шанс быть отобранными, мы нанесли на карту все гены, позволив более высокую вероятность быть выбранными с более высоким коэффициентом выигрыша, в то же время давая более низким шансам на выигрыш шанс, хотя и меньший.
Мы также обсуждали изменение стратегии. Было необходимо брать гены от каждого отдельного бота, но мы считали, что важно брать все гены из одной «команды» ботов. Бот на первый взгляд мог показаться, что у него меньше возможностей, но как часть команды его гены могли бы стать важным ключом к победе. Мы думали о преимуществах перехода от отдельных ботов только к племенным командам, но не могли оправдать потерю генов более могущественных героев. Когда мы пришли к выводу, что мы должны продолжать использовать ту же стратегию выбора отдельных ботов, мысль пришла нам в голову.Что если мы сделаем оба? Несомненно, взятие отдельных генов было важно, но, разводя ботов из одной команды с более сильными индивидуальными, мы верили, что сможем раскрыть потенциал обоих миров.
Генетический алгоритм, кажется, улучшил бота, хотя его стиль игры значительно отличается от оригинальной негенетической версии. Если раньше мы были гораздо более агрессивными, то теперь мы играем более консервативно и стремимся к победе, в основном, разрушая структуры и выигрывая случайные командные бои.Старший бот чаще объединяется в одну команду, что заставляет ботов противника реагировать и приводит к большему количеству боев. Если мы продолжим работу над проектом, я считаю, что следующим шагом будет то, что бот начнет бороться с собой и со старой, не генетической версией бота.
Благодаря этому проекту я смог выучить несколько языков программирования, а также познакомиться с Docker и важностью документации при работе в команде. Причина, по которой я решил работать над этим проектом, была не столько в DotA2, сколько в попытках понять машинное обучение.Я слышал этот термин несколько раз, читал об этом, но у меня не было реального понимания того, что он влечет за собой и как его программировать. Участие в этом проекте дало мне уникальную возможность работать с машинным обучением и расширило мое понимание программирования в целом.
вопросов ботов :: Dota 2 Общие обсуждения
Ну, я знаю, что есть много дискуссий о ботах Dota 2, но я не нашел все эти проблемы, перечисленные в одном. Если вы начнете говорить, что «если вам не нравятся боты, чем играть с реальными людьми», то, пожалуйста, вообще ничего не говорите. Бывают моменты, когда я не могу играть с реальными людьми или мне приходится часто приостанавливать игру, так что да, я буду играть с ботами.
Проблема заключается в том, что когда вы устанавливаете сложность на уровне сложности «Трудно» или «Несправедливо», враги играют очень хорошо, как команда, в то время как ваши товарищи по команде настоящие ♥♥♥♥♥, идут 1 на 5, реагируют на пинги только тогда, когда они этого хотят, и даже если вы доминируете на ранней стадии игры, после середины игры они начнут питаться как сумасшедшие.
Итак, вот список проблем, с которыми я и другие люди сталкиваемся при игре с ботами, и было бы хорошо, если бы они были исправлены. И снова, если кто-то хочет сказать, что «запрограммировать более 100 ботов сложно», пожалуйста, не говорите ничего вообще. Есть только около 15 максимальных ботов, которых ИИ выбирает, и когда они в другой команде, они великолепны, но когда играют на вашей стороне, они действительно отстой. И мы говорим об одних и тех же ботах:
. Итак, начнем:
— Ботам не справиться с Viper
Серьезно, бот Viper закончит игру с 20+ убийствами.Просто смотрите, как ваши боты инициируют его в 1св1, только чтобы отступить и встретить их смерть. Добавьте манту и bkb к нему, и он станет неостанавливаемым. Предложите его для своей команды, если вы хотите легкой победы.
-Боты не могут иметь дело с чернокнижником ульт.
Сделайте себе одолжение, если вражеская команда выберет Чернокнижника, отключитесь, чтобы избежать ярости. Я даже не могу сосчитать, сколько раз я проигрывал спички бота из-за этого. Не потому что я не могу справиться с этим, но твои глупые боты не могут. Каждый раз, когда Чернокнижник ультс, он уничтожает всю вашу команду.Ваши боты не знают, как реагировать, они даже бегут обратно к големам, просто чтобы убедиться, что они умирают для них, неужели это ♥♥♥♥? К тому времени, как вы посмотрите на счет, у Чернокнижника уже +10 убийств и Скипетр. гг!
-Боты с шаровой башней ныряют. Легкая первая кровь.
Глупо легко заставить Вайпера или Дроу отправиться в башню.
-Боты, инициирующие против команды из 5 человек
Другая проблема, боты будут инициировать, даже если их численное превосходство. Я настаиваю на их отступлении, но нет, они пойдут на это, только кормя вражескую команду еще немного.Хм, что это за Хрустальная дева? Идти против них в одиночку? Ну, я уверен, что она преуспеет.
— Большую часть времени боты придерживаются команды из 5 человек.
Как только начинается середина игры, вражеские боты собираются вместе, чтобы оттолкнуть любую башню с наименьшим количеством здоровья. Это затрудняет их ганкование, потому что, если вы приблизитесь, вы, вероятно, будете оглушены запертой до смерти. Боты также имеют тенденцию связываться со своей командой, когда игрок атакует одну из своих башен. Я имею в виду, я думаю, одного или двух ботов было бы достаточно, чтобы защитить его, но нет, они все TP, чтобы попытаться убить вас.
-Боты будут преследовать вас со своей базы до вашего фонтана.
Больше ничего об этом не нужно говорить. Это относится к обеим командам.
-Sand King застревает на деревьях, если он использует burrowstrike. Тогда он никогда не выйдет.
Обычно это происходит в ранней игре, когда у бота нет TP. Он даже не использует танго / burrowstrike снова, чтобы выйти, и застревает навсегда, пока вы не поможете ему.
-Зеус бот — самая бесполезная куча of если он в вашей команде
Отличное кодирование здесь Valve! Своей ультой он ничего не убьет, кроме как воровать у тебя! У меня были матчи, где он мог убить 3, три бота со своим ульт, но что он делает? НИЧЕГО.Он просто гонится за ними, как кровавый ♥♥♥♥♥♥. А потом, когда я собираюсь убить этого бота, вот мой последний удар и золото .. ВЫ НЕ МОЖЕТЕ Бежать от НЕБЕСА *** ЗАППП *** УБИТЬ СТИЛЯ!
— Ваши боты (а не только Зевс) убивают украденных у вас
Пример: вы снайпер / драконий рыцарь / дроу / любой герой переноса, и вы преследуете врага. В тот момент, когда вы начнете бить его, скажем, ваш союзник Лина будет преследовать его. Она будет ждать, пока вражеский герой не будет убит, чтобы использовать свой огонь дракона / ульта, чтобы прикончить его. Это действительно неприятно, потому что вы можете видеть, что ваши боты просто гоняются за врагом и делают НИЧЕГО, НОЛЬ, они не атакуют их, несмотря на то, что они находятся позади, но в тот момент, когда они идут на низком уровне, и вы идете на последний удар, БАМ они бросают свои заклинания на них и получить золото.Это просто случается дважды в одном и том же матче, каждый раз с одинаковым поведением.
— Ваши боты крадут руны, если вы находитесь в середине
Есть бутылка? Очень жаль, что командный бот только что похитил эту вкусную руну регенерации … с полным HP.
— Ваши боты будут использовать курьера для покупки предметов, которые они могут получить в магазине
Волшебная палка? Маска мудреца? Я просто использую курьера вместо этого! Раздражает, если вы находитесь на середине и нужно использовать его как можно скорее.
-BotShacking
Еще одна вещь, которая меня раздражает, боты, кажется, точно знают, где вы находитесь, и нет никаких подопечных или чего-то еще.Вы занимаетесь сельским хозяйством в джунглях? Что ж, здесь идет поток из ниоткуда и Кункка и Лев, или молчание Пророка Смерти (когда вы явно в тумане войны). В других случаях команда из 5 человек появляется из ниоткуда из тумана и заковывает вас в цепи. Пытаетесь ганить ботов? Хорошо, смотрите, как они отступают в тот момент, когда вы нажимаете на них правой кнопкой мыши. Они также знают, где появятся руны, и схватят их перед вами.
-Боты избегают Крючков / Сантриков / Стрелок
Больно очевидны при игре за Паджа.Боты будут избегать их, даже если они не видят вас. То же самое относится и к солнечному удару. Скорее всего, они не будут уклоняться, когда делают что-то еще, например, сосредоточиться на убийстве героя.
-Боты игнорируют ваши иллюзии и знают, кто настоящий
. Это так меня бесит, они всегда знают, какой из них настоящий, и игнорируют иллюзии. Получение иллюзии руны в значительной степени бесполезно.
-Боты обманывают ману
Кажется, это распространенная проблема, когда боты вытаскивают ману из своих задниц только для того, чтобы убежать или измотать вас.Свен, Хаос Найт и Джакиро, похоже, делают это больше всего. Нет волшебной палочки, никакого зелья ясности, ничего, они просто будут использовать его, когда захотят.
-Боты слишком агрессивны в фазе приземления.
Вражеские боты (трудные и недобросовестные) будут бросать все на вас в полосе, и если вы добавите проблему мана-обмана, это будет боль в pain, с которой нужно иметь дело. Кроме того, кажется, что они могут преследовать вас, автоматически атакуя, даже не усиливая ваших крипов. (Я смотрю на тебя, Колдунья) А как насчет твоих ботов? Они даже не беспокоят врага так сильно, как делают с вами.
-Боты обманывают скорость
Я подтвердил это в одном случае, преследуя льва с низкой мощностью. У меня было 370 скоростных + фазовых ботинок, у него было 350 и мана-ботинки, без барабанов, без баффов или дебаффов (например, Track или Warcry и т. Д.). Я был прямо позади, бежал по прямой, без тумана войны, и я не мог ударить его один раз! Это был единственный раз, когда я был уверен, что боты были хакингом скорости. Были и другие сообщения, что вы не можете опередить некоторых ботов, когда убегаете.
-Боты все еще выкупаются, если убиты Necrolytes Ultimate Plus Scepter
Вы не можете выкупить, если вас убил Nectos ult + скипетр, однако я видел, как это делают боты, и это подтверждают другие люди.
-Подобные реакции ботов
На жестких и нечестных, почти невозможно наложить заклинание на ботов без оглушения. Даже если ты моргнешь, и они не увидят тебя, они мгновенно ошеломят тебя ♥♥♥. Они также очень хороши в отрицании, но это небольшая проблема.
— Команды-боты, выбрасывающие матчи в поздней игре.
Даже если я и мои боты начнут раннюю / среднюю игру с убийствами, когда вражеская команда достаточно фармится и начинает буйство башни из 5 человек, мои боты отбрасывают игру умирать для них все это проклятое время, особенно если у противников есть боты, о которых я говорил ранее.Это действительно злит меня, потому что кажется, что они превращаются в полный режим for для остальной части игры.
-Боты отказываются атаковать казармы
В некоторых близких поединках и после снятия башни, которая защищает ракс, они вернутся к волне ползучести. Пока они это делают, вражеская команда телепортируется туда / выкупает их и уничтожает их. Однако вражеская команда НИКОГДА этого не сделает, они позаботятся о том, чтобы уничтожить их, в то время как ваши боты (если они живы) просто стоят там и смотрят, как они падают.
-Твои боты оставят тебя в покое, чтобы умереть.
Эй, давай сразим парней из Drow Ranger, вот и мы! (пингует ее) .. ребята? Ребята? О, верно, они вернулись, только чтобы позволить тебе умереть другим ботам, которые появились из ниоткуда или просто выкупили.
— Командные боты всегда уступают врагу.
— Боты отступят, затем пикируют и кормятся.
— они будут использовать ваши способности для KS от вас вместо того, чтобы помогать (я не возражал, если бы я не был парнем, пытающимся вести эту чертову игру).
-Свен выскочит его окончательный, затем отступит, тратя его.
— поддерживает начало сражений.
— иногда, когда «делают Рошан», они просто стоят там и не атакуют, даже если присутствует вся команда.
— когда противник толкает 5 человек, одинокие командные боты пересекут свой путь, несмотря на то, что карта ясно показывает, что они находятся в опасной близости, снова питаясь
Источник: http://dev.dota2.com/showthread.php?t= 91166
.
Есть ли способ назначить ботов в вашей команде на определенные дорожки?
Длинная версия —
Я пытаюсь стать лучше в Dota, в идеале избегая играть с другими людьми, пока не почувствую уверенность в том, что я не просто разрушу игру для своих товарищей по команде, поэтому я вставил большую часть своих 50 часов с игрой в одиночных матчах с ботами. Я пытаюсь совершить прыжок от среднего к сложному, но это довольно большой шаг в сложности — я чувствую себя готовым к этому или, по крайней мере, готов учиться на проигрышах, но для меня очень важно использовать хорошую композицию и дисциплину на дорожке идти в ногу с другой командой.
Дело в том, что боты в моей команде просто отказываются это делать. Если я играю в поддержку, то я всегда в очереди с другой поддержкой. Если я кэрри, я получу еще один керри. Керри, похоже, только последний удар, а опоры только отрицают, и в любом случае они намного лучше меня, что заставляет меня играть альтернативную роль, чем та, на которую я пришел, чтобы тренироваться с персонажем, который действительно плохо подходит для этого.
Я пытался ворваться на линии ботов, вместо того, чтобы просто заполнить пустое место, но ИИ, похоже, одержим неправильным поступком.Если я приведу своего Лича или Хрустальную Деву в переулок, в котором есть Дроу Рейнджер и Лев, то уйдет Дроу Рейнджер. Если я принесу Гадюку, Лев уйдет. Одна игра началась с моего партнера по поддержке с керри (Луна, я думаю), но затем она поехала, чтобы преследовать ганк в середине, затем осталась в середине и еще одна игра поддержки на вершине, как раз к началу игры.
Иногда просто по счастливой случайности я получаю партнера по дорожке, роли которого дополняют мою, а затем у меня получается хорошая игра, в которой я могу реально практиковаться осмысленно, но я не хочу продолжать делать новые игры более и до тех пор, пока мне не повезет.
Это вдвойне разочаровывает, потому что я пытаюсь расширить свой репертуар героев и лучше понять сборку предметов и навыков, что делает первые десять минут в ряду самой важной частью игры для меня на практике.
Итак … Есть ли способ настроить ботов в моей команде для запуска на определенной полосе, чтобы я мог учиться на этих играх? То, что я потерпел крушение из-за того, что я недоволен, или из-за уборки дома, потому что я на много впереди ботов и могу побить их всю команду, меня ничему не учит.
Да, я знаю, что, кстати, я могу играть с людьми. Да, в общедоступных играх тоже есть проблемы с дорожками и т. Д., И иногда так и происходит. Но когда я пытаюсь практиковать одну конкретную вещь, человеческие игры не очень подходят. С помощью ботов я могу запустить нового персонажа до 10-го уровня, сделать действительно плохо, выйти и начать заново — я должен представить, что это осуждается.
Никто не хочет, чтобы в их команде был парень, который намеренно пытается противостоять оптимальной сборке, просто чтобы он мог понять, почему оптимальная сборка лучше, или кто только знает свои навыки персонажей, вытекает из чтения подсказок по мере повышения уровня.
Игры получили кучу приличных ресурсов, чтобы помочь вам перейти от новичка до новичка, который, по крайней мере, знает, что он должен делать, даже если вы не можете выполнить, но очень мало, чтобы помочь вам перейти от новичка к порядочный игрок. Все, что мне нужно, это товарищи по команде с хорошими основами, чтобы я мог сосредоточиться на своем персонаже и своей роли и продолжать пробовать снова и снова, пока не свяжу исполнение.
Застревание в получасовых играх, когда я хочу тренировать только небольшую часть снова и снова, очень трудно увидеть какой-либо прогресс. Такое ощущение, что я пытаюсь научиться играть в фастбол, но вместо того, чтобы стоять на я получаю удар, и мне приходится выходить на поле и ждать своего следующего в бите.
Добавление к тому, что кричат более опытные игроки, и раздражает менее опытных игроков, приводит к довольно плохой ситуации для практики.
В любом случае, я знаю, что это было намного дольше, чем нужно; Я просто расстроен. Любой совет о том, как заставить ботов играть в мяч, был бы великолепен.
Спасибо
.
Смотрите также
-
Как переустановить доту 2 в стиме
-
Как съесть дерево в доте 2
-
Как увеличить миникарту в доте
-
Как узнать ммр в дота 2
-
Как скрафтить загрузочную воронку
-
Как скрафтить белый флаг
-
Как скрафтить золотую пыль
-
Как куру апнуть в доте
-
Как скрафтить активирующие рельсы в майнкрафт
-
Как включить показывание фпс в доте
-
Дота 2 как получить трофейные очки