Experiments with the StarCraft II AI API and Clojure.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
SC2APIProtocol experiments and up-to-date Nov 29, 2017
dev wip, joins game Aug 16, 2017
docs add example videos Jan 21, 2018
out/chrome-ext refactor tech debt, add guide Jun 24, 2018
resources refactor tech debt, add guide Jun 24, 2018
src/cljsc2 remove play button icon for now Sep 18, 2018
README-chinese.md Update README-chinese.md Apr 15, 2018
README.md Update README.md Apr 15, 2018
project.clj refactor tech debt, add guide Jun 24, 2018
shadow-cljs.edn add partial interactive tutorial to jupyter notebook Jul 26, 2018




cljsc2 let you use the StarCraft II AI API from Clojure using regular Clojure namespaced maps for interaction.

It generates clojure.spec specifications for all the endpoint the SC2 API exposes and serializes requests over a protobuf websocket connection to running instances of the game.

Jupyter notebook example: https://bbss.github.io/cljsc2/

Setup and running an agent

If you're new to StarCraft II or Clojure development and would like to use this library please don't be shy to ask for help by making an issue or sending me a mail at baruchberger@gmail.com.

See jupyter notebook for usage example: https://bbss.github.io/cljsc2/

Agents need to implement a simple step function that:

  • Receives the state of the game as first argument
  • Receives a connection to the running game instance as the second argument.
  • Returns an action or list of actions to step forward in the game.
  • Returns nil to end the agents' run.

The feature-layers that the API exposes for Machine Learning purposes can be displayed through a ClojureScript app that draws the feature layers to canvas, see code here.


This library is in early development stage, if you find bugs let me know. It's not yet packaged into a nice typical maven library with nice usability.


Copyright © 2018

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.