Skip to content
Jasper Geurtz edited this page Mar 17, 2019 · 28 revisions

Setup

To setup the environment to write our bots we will need

0) Windows

Developing on Linux/MacOS/Other just isn't as easy at the moment. If you do not have a Windows machine you could use a Virtual Machine or install Windows along side Linux/MacOS/Other

1) StarCraft:Broodwar 1.16.1

At the moment Remastered is not yet supported, the only working version is 1.16.1. You can however run v1.16.1 alongside Remastered without needing to uninstall Remastered

For this tutorial from now on, when refered to StarCraft it will mean StarCraft:Broodwar v1.16.1

If you do not own StarCraft you can download it by following the simple instructions on iccup or download it for free from BattleNet and and manually downgrade it to v1.16.1

In this tutorial we have StarCraft installed in C:\starcraft\

2) BWAPI & Chaoslauncher

To start writing our bot we will need to download BWAPI which will let us interface with the game. This will also install the Chaoslauncher for us, which lets us inject BWAPI and run StarCraft automatically once everything is correctly setup.

2.0) 2017 Redistributable

First if not installed, install the Microsoft Visual C++ 2017 Redistributable as this is a required dependency to make BWAPI work.

2.1) BWAPI v4.2.0

For this tutorial we will be using BWAPI v4.2.0 as this is the latest version that JBWAPI currently supports. Download the installer and install it using the default configuration

We might need to point it to where we installed StarCraft, select C:\starcraft

Now we just continue using the default configuration, if everything went correctly we should get asked if we want to launch the Chaoslauncher, which we want to.

2.2) Chaoslauncer

In the Chaoslauncher, tick the boxes BWAPI 4.2.0. Injector [RELEASE] to inject BWAPI v4.2.0 and W-MODE 1.02 to launch StarCraft windowed. Optionally you can also check APMAlert (1.16.1) to view your APM

Next go to the Settings tab in the Chaoslauncher and untick the Warn about missing adminprivilegues box and hit OK

Now just hit Start and if everything went correctly we should now see StarCraft!

You can safely close StarCraft now

3) Java JDK & IDE

For this tutorial we will be using Java8 & IntelliJ, but any later Java version and other IDE (Eclipse etc.) should also work

3.1) Java

If not installed download the latest Java 8 JDK and install it using the default configuration

(did you know that 3 Billion Devices Run Java :D)

3.2) IntelliJ IDE

If not installed download and install an IDE like IntelliJ Community

4) Launching our bot using JBWAPI

In IntelliJ (or your preferred IDE) create a New Project (or clone an existing one)

4.1) Initialise new project

For this tutorial we will be using Maven project management tool (but you can also use other tools like Gradle etc.). Select Maven and 1.8 as project SDK. Next give your project a name (ArtifactId) and groupname (GroupId)

4.2) Adding JBWAPI

We should now see a very minimal pom.xml (the pom lets us configure our project, add libraries etc.)

Next follow the usage instructions in the JBWAPI Readme to add JBWAPI as a library

4.3) Creating our bot

In src/main/java create a new Class named ExampleBot or whichever name we want (just edit the code accordingly) and add the following code to the new Class.

import bwapi.BWClient;
import bwapi.DefaultBWListener;
import bwapi.Game;

public class ExampleBot extends DefaultBWListener {
    BWClient bwClient;
    Game game;

    @Override
    public void onStart() {
        game = bwClient.getGame();
    }

    @Override
    public void onFrame() {
        game.drawTextScreen(100, 100, "Hello World!");
    }

    void run() {
        bwClient = new BWClient(this);
        bwClient.startGame();
    }
    
    public static void main(String[] args) {
        new ExampleBot().run();
    }
}

If we now run the program by hitting the small green arrow button next to our Main method we should get Game table mapping not found in a loop

Clone this wiki locally