Page 2 of 3 FirstFirst 1 2 3 LastLast
Results 11 to 20 of 27

Thread: Dota2 - Web-based AI

  1. #11
    Basic Member
    Join Date
    Dec 2016
    Posts
    687
    Added Issues to the github project so people can contribute if they have time and interest.

  2. #12
    Basic Member
    Join Date
    Dec 2016
    Posts
    687
    Basic Actions are completed. Starting to work on Complex Actions next.

  3. #13
    I would first design (or find) and implement an algorithm that requires web-based communication then I would create its tools if needed. You may end up not using any (or most) of the things you are implementing which can potentially make them a waste of time!

  4. #14
    Quote Originally Posted by Platinum_dota2 View Post
    I would first design (or find) and implement an algorithm that requires web-based communication then I would create its tools if needed. You may end up not using any (or most) of the things you are implementing which can potentially make them a waste of time!
    from what I've seen of it so far. the layout is pretty solid.

    Code is separated nicely enough, when its working, you could replace the web-based parts with lua-vm decision making without rewriting much code.

    also external communication is necessary for machine learning problems people may want to solve with bots.

    I dont think this is an example of "premature optimization is the root of all evil"
    https://github.com/ThePianoDentist/t...dentistdotabot Lina bot which pulls small camp when 'laning' (Aim to work on pulling and stacking bots initially)
    https://github.com/ThePianoDentist/dotabots-ml-tools Parsing data from bot games

  5. #15
    yeah Ive got a basic stacking function working. still needs work, but Im waiting for the new GetNeutralSpawners to polish it.
    going to try and add a basic pulling as well.
    https://github.com/ThePianoDentist/t...dentistdotabot Lina bot which pulls small camp when 'laning' (Aim to work on pulling and stacking bots initially)
    https://github.com/ThePianoDentist/dotabots-ml-tools Parsing data from bot games

  6. #16
    Basic Member
    Join Date
    Jan 2014
    Posts
    50
    Quote Originally Posted by TheP1anoDentist View Post
    yeah Ive got a basic stacking function working. still needs work, but Im waiting for the new GetNeutralSpawners to polish it.
    going to try and add a basic pulling as well.
    Looking forward to seeing this in action eventually.

  7. #17
    someone might have already implemented stacking in https://github.com/Nostrademous/Dota2-FullOverwrite

    and I believe one of the top workshop bots has pulling already as well.

    Fingers crossed this code/project should be far easier to read/interpret than any others I've seen though
    https://github.com/ThePianoDentist/t...dentistdotabot Lina bot which pulls small camp when 'laning' (Aim to work on pulling and stacking bots initially)
    https://github.com/ThePianoDentist/dotabots-ml-tools Parsing data from bot games

  8. #18
    AFAIK Furious puppy was the first one who implemented stacking (and jungling in general) and most workshop bots are using his code, or a modified version his code (I wrote jungling before him, but it was not as good as what he wrote, mine didn't have stacking, and I made my bots public after him).

  9. #19
    Basic Member
    Join Date
    Dec 2016
    Posts
    687
    Quote Originally Posted by Platinum_dota2 View Post
    I would first design (or find) and implement an algorithm that requires web-based communication then I would create its tools if needed. You may end up not using any (or most) of the things you are implementing which can potentially make them a waste of time!
    I agree here, but I knew I will need "basic" actions (which really are just wrappers around all the Action*_*() unit-scoped APIs) which add book-keeping variables I want to track as a result of these actions, so... I just did them. The "complex" actions (which will be intelligent conditional sequences of "basic" actions, most likely) will be by-demand created as the webserver directives are created.

    Currently the plan is the following:
    Create essentially a "new" game out of Dota 2; basically a Command & Conquer variant of Dota 2. What I mean is this - in my mind the web-server will never be fast enough to make decisions for the bots at frame-rate speed, so it needs to take the role of a "General" controlling this team of 5 bots and focus on "high-level" objectives, not "low-level" action sequencing. I'm roping in some friends to develop a web-server UI for me that will take the JSON data transferred from the front-end and display it on a Dota 2 map on the back-end and allow the human to specify high-level objective and positional goals on the web-server which will be passed down to the front-end bots. The bots will need to know how to execute those commands in terms of "complex" actions. These are things like "Go Rosh", "Bots 1 & 2 - Defend Top Lane, Bots 3, 4, 5 - Push Bottom Lane". Once I see how that plays out we can see where the sweet spot between "complex" and "basic" action directives we can achieve at game-speed resides.

    As an aside - realizing that many people enjoy the Full-Overwrite work and might not be interested to run a web-server (or experienced enough, or are simply to weary/scared to do so not trusting the code but not having the time to re-view it either) - I am imagining releasing the code with the capability of running without the web-server back-end. Instead, the "General's" role will be handled in-game via Lua code, doing the best it can, but not being able to leverage real-time scraped information available from recent professional games.

    Anyways, this will take some time, but I'm having fun and enjoy clean re-writes :P

    PS - EDIT - Eventually this "human General" role can be replaced by AI (whether through supervised or unsupervised training).
    Last edited by nostrademous; 06-08-2017 at 12:43 PM.

  10. #20
    Basic Member
    Join Date
    Jan 2014
    Posts
    50
    Quote Originally Posted by TheP1anoDentist View Post
    someone might have already implemented stacking in https://github.com/Nostrademous/Dota2-FullOverwrite

    and I believe one of the top workshop bots has pulling already as well.
    Fingers crossed this code/project should be far easier to read/interpret than any others I've seen though
    Hmm I haven't come across any workshop bot script with pulling.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •