Using a Remote AI Process

Current Implementations

Using a Remote Process

Bot are allowed to communicate with a remote process, which performs the AI reasoning. There are several reasons for using a remote process:

  • To prevent the onFrame method from hanging during computationally expensive tasks
  • To write bot behavior in a language other than C++
  • The bot code may interfere with other code in the StarCraft process space, crashing StarCraft

Agents are allowed to use a socket to communicate with an external process:

In order to build a remote AI process, it is necessary to communicate the game state to the remote process as well as issue commands from the remote process to units in StarCraft. The agent processing should occur in a different thread than the socket communication thread.

An example bot using this technique is available here.