s2client-proto icon indicating copy to clipboard operation
s2client-proto copied to clipboard

Hello world bot example

Open ghost opened this issue 7 years ago • 7 comments

Could you provide a "hello world" bot example? Or rewrite for python this tutorial: https://github.com/Blizzard/s2client-api/blob/master/docs/tutorial1.md

ghost avatar Aug 11 '17 06:08 ghost

Agree, I think this whole project is awesome and would like to explore it to increase my machine learning skills on my favorite game. However I can only program in Python and not in C++.

jvanelteren avatar Aug 11 '17 08:08 jvanelteren

An equivalent Hello World example using Python and the protocol would be more complex. The reason being the C++ library code has a lot of additional functionality built into it that may be overwhelming to put in a single tutorial. In order to use the protocol you'd have to compile the proto files for python, create a web socket connection to the game and speak directly to the protocol. Having said that I do think there is some value in writing such a tutorial for people looking to create their own equivalent library in whatever language so it may be worth investigating.

As an aside, have you tried looking at Deepmind's library? It offers different functionality from our own but is more suited for Machine Learning studies. https://github.com/deepmind/pysc2

AnthonyBrunasso avatar Aug 11 '17 16:08 AnthonyBrunasso

Thanks Anthony. I think I'm somewhat confused over here. I tried to get the deepmind project going on my computer. I've got pysc2 installed and it runs. I also found some .py agents in the folders of pysc2.

Im now figuring out how to make my own python agent and train it, possibly with the replay pack. I was under the assumption I needed this package and commandcenter but that could be wrong.

jvanelteren avatar Aug 11 '17 17:08 jvanelteren

For other people's reference:

It looks like some other people have already posted some example python code here: https://us.battle.net/forums/en/sc2/topic/20758617110

KevinCalderone avatar Aug 11 '17 17:08 KevinCalderone

@jvanelteren Deepmind's project will consume this protocol as a pip package. You do not need to use our C++ library or commandcenter. Technically, the only thing you need is this protocol compiled to some language. Deepmind wrote a python library that uses this protocol while we wrote a C++ library. commandcenter is a library built on top of our C++ library. The dependency chain is a bit confusing for sure.

AnthonyBrunasso avatar Aug 11 '17 17:08 AnthonyBrunasso

OK that clarifies things. With me being 'somewhat' versed in python I'll check out the battle.net link Kevin posted. Thanks

jvanelteren avatar Aug 11 '17 17:08 jvanelteren

Another thing for other people's reference:

I posted a python multiplayer example here: https://us.battle.net/forums/en/sc2/topic/20758617484#post-8

KevinCalderone avatar Aug 14 '17 01:08 KevinCalderone