-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using Generic Hero Values #31
Comments
Hmmm.. but all this information is already in the worldstate though?
Although indeed talents are not. Can you get the levelable abilities?
…On Fri, Jan 4, 2019 at 9:41 AM Nostrademous ***@***.***> wrote:
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
},
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#31>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AHXSRFde3hl5ilJEFWF3EKODm_d_l5Vcks5u_5JWgaJpZM4ZqCRP>
.
|
Also notice btw i have moved my Agent to
https://github.com/TimZaman/dotaclient
…On Fri, Jan 4, 2019 at 9:46 AM Tim Zaman ***@***.***> wrote:
Hmmm.. but all this information is already in the worldstate though?
Although indeed talents are not. Can you get the levelable abilities?
On Fri, Jan 4, 2019 at 9:41 AM Nostrademous ***@***.***>
wrote:
> 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
> },
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#31>, or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AHXSRFde3hl5ilJEFWF3EKODm_d_l5Vcks5u_5JWgaJpZM4ZqCRP>
> .
>
|
More important, for abilities, the casting point, casting behavior and targeting values are not in the protobuf. Here is an example of what I dump:
I implemented code for that before based on world state |
To clarify some of the values:
TargetTeam:
DamageType:
|
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
, andabilities
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:
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.
The text was updated successfully, but these errors were encountered: