-
Notifications
You must be signed in to change notification settings - Fork 22
Description
As we train the AI to do actions we should train on general data values rather than values trained to specific hero names/IDs. What I mean, rather than training an Antimage bot and then separately on say Earthshaker, we should rather train on a hero with certain characteristics like "base move speed", "turn rate", "attack range", etc.
The learned behavior for map navigation say for a hero with same base movement speed and turn rate should be the same irregardless of what hero it actually is.
Similarly, we can do this for units and abilities/items to generalize the learning process.
I have written a python file to auto-generate JSON files for heroes, units, and abilities from the Dota2 provided .txt files. I've pushed the script in the other repo to separate it from the dotaservice.
Link: https://github.com/pydota2/pydota2/blob/master/patching/generate_json_files.py
Here is what the python file pulls from the Dota2 resource files for Antimage:
"1": {
"Name": "npc_dota_hero_antimage",
"Talents": {
"Talent_1": "special_bonus_strength_10",
"Talent_2": "special_bonus_attack_speed_20",
"Talent_3": "special_bonus_unique_antimage_3",
"Talent_4": "special_bonus_agility_15",
"Talent_5": "special_bonus_unique_antimage_5",
"Talent_6": "special_bonus_unique_antimage",
"Talent_7": "special_bonus_unique_antimage_4",
"Talent_8": "special_bonus_unique_antimage_2"
},
"ArmorPhysical": -1,
"AttackRate": 1.4,
"AttackRange": 150,
"ProjectileSpeed": 0,
"AttributeBaseStrength": 23,
"AttributeStrengthGain": 1.3,
"AttributeBaseIntelligence": 12,
"AttributeIntelligenceGain": 1.8,
"AttributeBaseAgility": 22,
"AttributeAgilityGain": 2.8,
"MovementSpeed": 310,
"MovementTurnRate": 0.5
},
Reason for this design is to allow for much faster/easier response to new Dota2 patches coming down in the future. All you need to do is run the python script and it will auto generate the data which we can use in agent training.