Skip to content

StarCraft II Client C++ library, proud fork of Blizzard/s2client-api.

License

Notifications You must be signed in to change notification settings

cpp-sc2/cpp-sc2

Repository files navigation

cpp-sc2

GitHub C++17 Build Status Join the chat in Discord: https://discordapp.com/invite/Emm5Ztz

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.

Documentation

Precompiled Libraries

You can download precompiled libraries for Windows and OS X here.

Support

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.

Building the project

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:

  1. Civetweb
  2. Protobuf
  3. SDL (optional)

Follow the instructions for submodules and building in docs/building.md.

Work with documentation

To edit and generate the documentation yourself:

  1. Download and install doxygen
  2. Fork the repository and clone it locally
  3. Checkout the master branch 'git checkout origin/master -b my-documentation-update
  4. Make changes to the code documentation or docs/ files
  5. From the root of the project run: doxygen Doxyfile
  6. Review your documentation changes by opening docs/html/index.html in your browser
  7. Push your changes to your fork and send us a pull request

Contributing

This project follows a Code of Conduct in order to ensure an open and welcoming environment.

Please, read also the detailed contributing guide before creating pull-requests to the project. It can save you a lot of time.

Coding Standard

We use the Google C++ Style Guide with some tweaks and clang-format to format the code.

Additional Downloads

Maps and Replays

This repository only comes with a few maps for testing. Additional maps and replays can be found here.