Nostrademous / Dota2-WebAI

MIT License
33 stars 6 forks source link

[LUA CODE] Implement Modes #1

Open Nostrademous opened 7 years ago

Nostrademous commented 7 years ago

Need to implement some basic modes for the bots. This will be a little bit different than the modes in my Full Over-write Project - https://github.com/Nostrademous/Dota2-FullOverwrite/tree/master/modes

Their format should be the same (as in - they will have an OnStart(), OnEnd(), Desire() and Think() functions).

The modes should be less defined though (in my opinion). For example, rather than having a "Retreat" and a "Shrine" mode, I think it would be better to have a "ResourceRegeneration" mode. This would cover health and mana regeneration steps that can be taken by the bot to increase their current values in that respect. There are many ways to "heal" (rejuv rune, shrine, item usage, fountain, allies using items on us, ability use, allies using abilities on us, etc.). All of these should be at the bots disposal and considered. This breaks the FullOverwrite model of modes to what I think will be better modes for future Machine Learning approaches.

The modes needs to be sketched out and defined and thought about. This issue is really about whiteboarding and having a discussion as to what the granularity of the modes really should be, and starting to define those modes, before implementing draft code.

In my mind some modes I think would be a good fit are:

1) ResourceRegeneration - for when the bot needs health, mana or both as described above.

2) Farm - this should be a hybrid of farming for the purposes of XP and Gold. This should be the default mode for bots when they are not doing team-based directives (like Pushing a Lane, Rosh, Team-Fight, etc.). This mode should cover laning, jungling, bounty runes.

3) Pushing - this is really meant to be "pushing our advantage" rather than just purely pushing a lane. This could be pushing a lane, killing roshan, farming enemy jungle to deny farm, etc.

4) Surveillance - this is meant to cover our desire to obtain more information (aka "vision") on the map to have a better understanding of where enemies are.

5) Battle - this is for team fighting, setting up ganks and wombo-combos, evading projectiles/AOEs, defending objectives, etc.

Thought and feedback encouraged and welcome.