TimZaman / dotaclient

distributed RL spaghetti al arabiata
26 stars 7 forks source link

AI vs Scripted #40

Open Nostrademous opened 5 years ago

Nostrademous commented 5 years ago

@TimZaman I know you are hoping to test our AI/ML design against Default bots; unfortunately there is no way to do that that I see "with the same hero selection for both sides".

I'm going to spend some time in the next few days and write a Lua-scripted bot so that we can achieve this game-play mode. I will make sure the scripted bot only uses actions that are currently available to the AI bot (no abilities, no items, etc.) and makes decision at a similar frequency (once every 5 frames).

This is just a heads-up.

TimZaman commented 5 years ago

Doesn't need to be the exact same hero.. would be awesome if that could be done somehow though. Could we, dependent on the side dire/radiant, expose Think function?

Nostrademous commented 5 years ago

No, unfortunately Think() is "per hero" not "per team per hero". What I mean is, once you create a bot_<HERO_NAME>.lua it over-writes that hero's behavior and there is no way to say "go back to your default behavior if DIRE, run our new code if RADIANT" as there is no super() or base().

We should be able to do different heroes fairly easily... I believe all we need to change is rename the file bot_generic.lua to bot_nevermore.lua and thus our Lua behavior will only apply to SF and not "all" bots. For bots that don't have a defined bot_<HERO_NAME>.lua file and barring the existence of the generic file, they will use default behavior.

Something to test.

Having said all that, I still plan on writing a bot in Lua that is "scripted" and in my opinion better than the Lua bot, yet generic to non-specific heroes that will allows us to have same heroes face off each other with different logic.