Open forest0xia opened 2 months ago
Think most questions we may have should have been answered by the authors of https://openai.com/index/openai-five/, but unfortunately the public resource of reproducing the work is very limited. As we are having more advanced AI technologies nowadays, not sure how much we can simply or reduce the cost of making such an AI.
@forest0xia I want to discuss here too, but i could be wrong here as i'm not an expert in creating bot or AI
this specification is not affordable at all from my perspective, and it's not worth it if we are going to open-source this one.
and for item & skills build, this open-ai five only uses hardcoded one, they didn't get from guide / dotabuff. if we want to do this, even if we use OpenDota API to get the item build popularity, the build will still be considerably static because of this example
Meepo build PT -> dragon lance -> blink on 80% of let's say 1,000,000 matches if we hope that meepo build PT -> blink -> dragon lance, we need to wait all top players use that build for more than 800,000 matches, it won't dynamically change on 1 day
so like you said on earlier issue, it's not worth the hassle to concentrate on the dynamic item & skill build
is there any active forum / chat platform beside this github? i would love to contribute here but i don't really understand .lua and the debugging process here, if you can guide me on how to start this, i have some spare times to contribute on this bot.
With the old tech stacks/tools (back in 2018) yeah it's not affordable to any individual, for training or running the model. But I think the work can be simplified in a way that we can split the models, so to train a general model for specific behaviors like laning, attacking, timing for roaming, etc. Those behaviors can have a lot of micro controls and are very hard to make good in normal coding practice, and e.g. attacking should be a good option to train a model for melee vs ranged heroes, right now bots are dumbly standing/walking and attacking.
Another point is we do not need to exhaustively train the bots to beat TI pro players. As long as we can make general models perform better than the 2k or 3k players most the time, its a huge win. And it wont require that much of resource usage comparing to what OpenAi Five needed. IMHO.
To the point of dynamic builds, yeah I dont have a plan to do that. And thanks for sharing that even openAI Five team didn't want to do that either LOL, interesting and reasonable to know.
Tho I don't think you understood correctly the approach of what dynamic means in my mind. The dynamic builds should have at least 2 tenets:
I dont have any forum. Github is good to me. Just post questions.
You no not need to know LUA now, just use typescript: https://github.com/forest0xia/dota2bot-OpenHyperAI/tree/main/typescript. It's easier and widely used for different purposes so it's good if you already using TS, and good to learn because there are a lot of good videos for learning TS.
Ahh understood, unfortunately i'm not an AI developer so i don't really have the answer for that.
And yes, now i understand too about the dynamic build concept here, that would be great to implement, maybe we can start on the simplest form of this like if enemy is PA or have some evasion, then bot should consider to buy MKB
I was trying to ask about a basic question actually, like how to debug my code here? I tried to use dota_bot_reload_script
after each changes, but i don't think it works, or maybe my changes was not good enough. Should i open an issue for this basic question?
Noted for this, i will try to implement the script using TS and maybe learn some TS to get a job hahaha thanks!
dota_bot_reload_script may not work properly for native bot script on client side, and it shouldn't work since we keep quite some status variables to track bots' setup and some status only take effect in early game stages which can lead to even more problems if we use dota_bot_reload_script to reload and miss those status variables.
If you changed bot's behavior, just reload the entire game by creating a new lobby again.
Haha yeah, one good thing about utilizing ts! Learning to do stuff with joy like playing games is the best way to do things. Kudos to @ThirVondukr for convincing and adding the ts basic layer support.
There
dota_bot_reload_script may not work properly for native bot script on client side, and it shouldn't work since we keep quite some status variables to track bots' setup and some status only take effect in early game stages which can lead to even more problems if we use dota_bot_reload_script to reload and miss those status variables.
If you changed bot's behavior, just reload the entire game by creating a new lobby again.
Haha yeah, one good thing about utilizing ts! Learning to do stuff with joy like playing games is the best way to do things. Kudos to @ThirVondukr for convincing and adding the ts basic layer support.
I know there is an console command which refered to "AI learning Bots" dota_bot_use_machine_learned_weights
@andre1891 I know this command dota_bot_use_machine_learned_weights
was available like at least 5 years ago, but there is no documentation of what exactly it is or how it can work with bot scripts. Do you know any more details?
Ultimately, the bots play style is static/fixed with the current AI approach provided by Valve at the moment. We need machine learning AI bots!
We are also looking for a better support for the scripts in all aspects from Valve. And want to know if Valve is ever going to improve the bot performance again.