The StarCraft II API provides access to in-game state observation and unit
control. The API is a wrapper around protobuf defined protocol over a websocket
connection.
While it's possible to write directly to the protocol, this library provides
a C++ and class-based abstraction.
- Getting Started with SC2 CPP Bot API.
- A detailed tutorial is located in docs/tutorial1.md.
- The API documentation can be found on our github pages site. The documentation is generated from code automatically, using Doxygen
- For example of usage of this API please refer to CommandCenter, Suvorov bot and the examples folder in this project.
- To start from scratch, please check this boilerplate.
You can download precompiled libraries for Windows and OS X here.
Have questions but don't want to create an issue? Join the unofficial
Starcraft II AI Discord server
(Invite Link). Questions about this
repository can be asked in the text channel #cpp
.
Also, please consider to support this project on
Boosty. Support of the project allows to make
releases more often and implement new features for developers.
This library uses CMake to generate project files. It builds with Visual Studio on Windows and Makefiles on the other platforms. It relies on the following contrib packages:
- Civetweb
- Protobuf
- SDL (optional)
Follow the instructions for submodules and building in docs/building.md.
This repository only comes with a few maps for testing. Additional maps can be found here.
Please, read the detailed contributing guide before creating pull-requests to the project. It can save you a lot of time.