darklordabc / Legends-of-Dota-Redux

A Custom Game for Dota 2
http://steamcommunity.com/sharedfiles/filedetails/?id=786348190
52 stars 35 forks source link

Discussion: How To Improve Bots #220

Closed darklordabc closed 7 years ago

darklordabc commented 8 years ago

Most people who play this mod, do so against bots, and I've had a few requests on improving bots.

I'm kind of at a loss on how to improve bots for this mode. We can't mess with their abilities, other than giving them passives, and we can't change their AI, other than buffing their stats, can anyone think of any ideas on how to improve them?

Current Ideas:

Npc_heroes: Find way to modify behaviour stats and item/skill builds by modifying the text file. Items: Giving Bots Items. Giving them free salves at start of game. Making special bot items that only get given to bots. Create a min-heart for strength bots. Give mini mek for support, mini force staff. Selective passive skills: Instead of having one pool of "good" passive skills to give to bots, we pick passive skills that compliment the bots rule. Like right-clicking abilities for drow, support for cm, tank for axe. New passive skills that mimmick active skills: Like a passive for Necrolyte that automatically casts death pulse. Frost bite passive for CM which cast frostbite on people who attack her.

Current Bots and their rough categories

/// TANKS
Axe  DOTA_BOT_TANK | DOTA_BOT_STUN_SUPPORT
Bristleback​ DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY
Wraith King​   DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY
Pudge  DOTA_BOT_GANKER | DOTA_BOT_TANK
Kunkka​  DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY | DOTA_BOT_PUSH_SUPPORT
Necrophos​ DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY | DOTA_BOT_PUSH_SUPPORT
Sven​  DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY | DOTA_BOT_STUN_SUPPORT

Tank Priority Abilities: abaddon_borrowed_time, slark_shadow_dance, return, dispersion

/// HARD CARRIES
Chaos Knight​  DOTA_BOT_SEMI_CARRY | DOTA_BOT_GANKER | DOTA_BOT_TANK
Phantom Assassin​ DOTA_BOT_HARD_CARRY
Sniper​ DOTA_BOT_HARD_CARRY
Tiny DOTA_BOT_GANKER | DOTA_BOT_TANK | DOTA_BOT_STUN_SUPPORT
Drow Ranger​ DOTA_BOT_HARD_CARRY
Juggernaut​ DOTA_BOT_GANKER | DOTA_BOT_SEMI_CARRY
Luna  DOTA_BOT_HARD_CARRY
Shadow Fiend  DOTA_BOT_HARD_CARRY
Viper​  DOTA_BOT_HARD_CARRY
Bounty Hunter​  DOTA_BOT_SEMI_CARRY | DOTA_BOT_GANKER

Hard carries priority: ursa_fury_swipes, slark_essence_shift, huskar_berserkers_blood, phantom_assassin_coup_de_grace, life_stealer_feast, sniper_take_aim, troll_warlord_fervor, tiny_grow_lod

/// HARD SUPPORT
Vengeful Spirit DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT
Crystal Maiden​ DOTA_BOT_PURE_SUPPORT
Dazzle​  DOTA_BOT_PURE_SUPPORT
Lich​ DOTA_BOT_PURE_SUPPORT
Oracle  DOTA_BOT_PURE_SUPPORT | DOTA_BOT_NUKER
Witch Doctor​  DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT
Omniknight DOTA_BOT_PURE_SUPPORT

/// HARD PUSHER
Dragon Knight DOTA_BOT_TANK | DOTA_BOT_SEMI_CARRY | DOTA_BOT_STUN_SUPPORT
Death Prophet​ DOTA_BOT_PUSH_SUPPORT

// MISC
Warlock​   DOTA_BOT_PURE_SUPPORT | DOTA_BOT_PUSH_SUPPORT
Windranger​   DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT
Earthshaker DOTA_BOT_STUN_SUPPORT
Jakiro​ DOTA_BOT_PUSH_SUPPORT | DOTA_BOT_STUN_SUPPORT
Bloodseeker  DOTA_BOT_SEMI_CARRY | DOTA_BOT_GANKER
Sand King​ DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT

//GLASS CANNON
Skywrath Mage DOTA_BOT_GANKER | DOTA_BOT_NUKER
Zeus​. DOTA_BOT_GANKER | DOTA_BOT_NUKER
Lina  DOTA_BOT_GANKER | DOTA_BOT_NUKER
Bane  DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT
Lion  DOTA_BOT_GANKER | DOTA_BOT_STUN_SUPPORT | DOTA_BOT_NUKER
Priority: Multicast, Essence Aura, Arcane Aura
K1llMan commented 8 years ago

What about editing npc_heroes.txt? Maybe flyout editing bot params what depends of bot abilities.

darklordabc commented 8 years ago

Thats a good idea Killman. But if we change npc_heros will that change all heros, or only bots?

darklordabc commented 8 years ago

Here are some other ideas that I've thought or people have told me:

K1llMan commented 8 years ago

There are a "bot" section for each hero.


        "Bot"
        {
            "Loadout"
            {
                "item_stout_shield"             "ITEM_CORE"
                "item_tango"                    "ITEM_CONSUMABLE | ITEM_SELLABLE"
                "item_tango"                    "ITEM_CONSUMABLE | ITEM_SELLABLE"
                "item_branches"                 "ITEM_CORE"
                "item_branches"                 "ITEM_CORE"
                "item_circlet"                  "ITEM_CORE"
                "item_boots"                    "ITEM_CORE"
                "item_magic_stick"              "ITEM_CORE"
                "item_magic_wand"               "ITEM_DERIVED | ITEM_SELLABLE"
                "item_ring_of_health"           "ITEM_CORE"
                "item_vitality_booster"         "ITEM_CORE"
                "item_vanguard"                 "ITEM_DERIVED"
                "item_blades_of_attack"         "ITEM_CORE"
                "item_blades_of_attack"         "ITEM_CORE"
                "item_phase_boots"              "ITEM_DERIVED"
                "item_blink"                    "ITEM_EXTENSION"
                "item_mithril_hammer"           "ITEM_LUXURY"
                "item_ogre_axe"                 "ITEM_LUXURY"
                "item_recipe_black_king_bar"    "ITEM_LUXURY"
                "item_black_king_bar"           "ITEM_DERIVED"
                "item_reaver"                   "ITEM_LUXURY"
                "item_vitality_booster"         "ITEM_LUXURY"
                "item_recipe_heart"             "ITEM_LUXURY"
                "item_heart"                    "ITEM_DERIVED"
                "item_platemail"                "ITEM_LUXURY"
                "item_mystic_staff"             "ITEM_LUXURY"
                "item_recipe_shivas_guard"      "ITEM_LUXURY"
                "item_shivas_guard"             "ITEM_DERIVED"
            }
            "Build"
            {
                "1"     "axe_counter_helix"
                "2"     "axe_battle_hunger"
                "3"     "axe_battle_hunger"
                "4"     "axe_counter_helix"
                "5"     "axe_battle_hunger"
                "6"     "axe_culling_blade"
                "7"     "axe_battle_hunger"
                "8"     "axe_counter_helix"
                "9"     "axe_counter_helix"
                "10"    "axe_berserkers_call"
                "11"    "axe_culling_blade"
                "12"    "axe_berserkers_call"
                "13"    "axe_berserkers_call"
                "14"    "axe_berserkers_call"
                "15"    "attribute_bonus"
                "16"    "axe_culling_blade"
                "17"    "attribute_bonus"
                "18"    "attribute_bonus"
                "19"    "attribute_bonus"
                "20"    "attribute_bonus"
                "21"    "attribute_bonus"
                "22"    "attribute_bonus"
                "23"    "attribute_bonus"
                "24"    "attribute_bonus"
                "25"    "attribute_bonus"
            }
            "HeroType"          "DOTA_BOT_TANK | DOTA_BOT_STUN_SUPPORT"
            "LaningInfo"
            {
                "SoloDesire"            "1"
                "RequiresBabysit"       "0"
                "ProvidesBabysit"       "1"
                "SurvivalRating"        "2"
                "RequiresFarm"          "1"
                "ProvidesSetup"         "0"
                "RequiresSetup"         "1"
            }

        }
darklordabc commented 8 years ago

Interesting.

Yahnich commented 8 years ago

wouldn't it be possible to give bots custom ai using that?

darklordabc commented 8 years ago

In theory yeah, but god knows how to modify that file and have it effect the in game bots. The game uses this line to add bots "Tutorial:AddBot('', '', 'unfair', true)", so my thinking is that the game is adding "Tutorial" bots and that those bots are hard-coded to have a specific item and skill build which is unaffected by npc_heroes. Off course I've got no real idea, its just what I'm thinking.

Yahnich commented 7 years ago

i have figured out how to do bots like ive mentioned before, do you want the really good way where they can use all their abilities or the kinda good way where they use their base 4 abilities + 2 extra ones from a pool of abilities we give them or the ok way where we just improve their ai to be better than valve's and give them passives anyway; increase in quality will take an increase in effort of course

darklordabc commented 7 years ago

Mostly implmented