Announcement

Collapse

Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.



In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.



All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

October 3 Bot Update

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • October 3 Bot Update

    • The handles specified in CMsgBotWorldState now are increasing and unique.
    • Added GetBotByHandle( iHandle ) and GetBotAbilityByHandle( iHandle ) for getting bot and ability handles in lua from their CMsgBotWorldState handle id.
    • Fixed a hang caused by disconnecting from the world state socket streaming.

  • #2
    So you seem to indicate that your expectation is a bot framework where you have an external client pulling CMsgBotWorldState dumps which then can somehow communicate to a bot API running in-game to retrieve extra information for specified handles. This confuses me a little bit as there is still only a POST (not a GET) mechanism for in-game bot frameworks to communicate with the outside world. What is your envisioned use-case here?

    Comment


    • #3
      can anyone provide a simple and short example of how to benefit from CMsgBotWorldState in lua?

      Comment


      • #4
        Originally posted by SIKIM View Post
        can anyone provide a simple and short example of how to benefit from CMsgBotWorldState in lua?
        isn't it made for external ML programm?
        https://github.com/lenLRX/Dota2_DPPO_bots ----My ML bot work in progress

        Comment


        • #5
          Originally posted by SIKIM View Post
          can anyone provide a simple and short example of how to benefit from CMsgBotWorldState in lua?
          I started a write-up here

          All it doesn't do is show actual usage of dumps for ML purposes which I'm working on but it's going slowly as I am very busy in real life.

          Comment


          • #6
            Even without GET requests, couldn't you just have the external client write to files that your code can read? It'd be inconvenient of course, and you wouldn't be able to get updates within a game, but it's something.
            Perhaps that's the intended use case, since you won't have the external client run on the machines of folks downloading your bot. Evolutionary systems (like OpenAI apparently has) could just place a trained model in a file, and have the bot run off of that file

            Comment


            • #7
              Originally posted by nostrademous View Post
              So you seem to indicate that your expectation is a bot framework where you have an external client pulling CMsgBotWorldState dumps which then can somehow communicate to a bot API running in-game to retrieve extra information for specified handles. This confuses me a little bit as there is still only a POST (not a GET) mechanism for in-game bot frameworks to communicate with the outside world. What is your envisioned use-case here?
              You should still be able to talk to an external programs using CreateHTTPRequest(), even though it's POST, right?

              Comment


              • #8
                Yeah but I think they'd expect to use GET for the Get*ByHandle calls

                I guess this would be an alternative? *
                Someone else made a PoC for the D2 game API as well.

                Chris perhaps you can consider being less strict in local dev mode? I'd say considering anything you do impacts only your machine things should be ok.
                This could also be prevented by having a custom Lua package (say dota2) with some more commands (maybe some reading text files like some requested) and not include it on the server therefore any attempt to use it would be an attempt to index nil dota2.whatever. (but of course to include extra checks of being a local dev script just in case)

                Just a thought
                Explanations on the normal, high and very high brackets in replays: here, here & here
                Why maphacks won't work in D2: here

                Comment


                • #9
                  Originally posted by ChrisC View Post
                  You should still be able to talk to an external programs using CreateHTTPRequest(), even though it's POST, right?
                  Yes I can by sending messages back through responses. Although the transport is asynchronous so handles could change/disappear during travel time.

                  However, if that's the expectation, why not just create an API call that creates a CMsgBotWorldState serialized dump for transmission through our POST? I'm guessing it's the packet size. I feel like there has to be a better solution to achieve both goals.

                  Currently basically I would have to have a localhost server process running that accepts in-game POST messages from the in-game bot script and separately CMsgBotWorldState dumps on a separate PORT connections, decides what it needs and piggy-backs on the POST responses to send requests it needs clarification back to the in-game bot script. While doable, seems convoluted a bit.

                  Comment


                  • #10
                    I am still unsure how one can benefit from the Get*ByHandle() functions. I guess, in a way I am wondering what the purpose of Get*ByHandle() functions is and how to use it

                    If the handle is only relevant within a certain context from a certain game at a certain time (read - in that game dump), how could you then use an application that processes the dump and at the same time benefit from whatever Get*ByHandle() returns.
                    I assume the idea behind it is to get context-specific dumps in CMsgBotWorldState to server as more or less specific infos while using the actual game to send game-sensitive info, both to the same destination server. Then the app on that server could aggregate the info for more details (?)

                    If that is the idea, the only thing I am wondering is if it wouldn't be less hassle to just use a replay parser.
                    Last edited by The Nomad; 10-05-2017, 12:44 PM.
                    Explanations on the normal, high and very high brackets in replays: here, here & here
                    Why maphacks won't work in D2: here

                    Comment

                    Working...
                    X