A bot that uses AI Planning for general strategy management and Reinforcement ML.Learning for combat management.
- Java 1.8
- StarCraft: BroodWar patch 1.16.1
- BWAPI / JavaBWAPI
- Chaos Launcher
Refer to SSCAI Tutorial for a full setup guide
- One Tutorial: https://github.com/JavaBWAPI/Java-BWAPI-Tutorial/wiki/Setup
- Another Tutorial: https://sscaitournament.com/index.php?action=tutorial
- Starcraft AI Page: http://www.starcraftai.com/wiki/Main_Page
- The Java implementation we use: https://github.com/JavaBWAPI/JBWAPI
- It's Documentation: https://javabwapi.github.io/JBWAPI/
- The AI Planner Library we used: http://burlap.cs.brown.edu/
- The IEEE 2020 Conference Published Paper: http://bit.ly/Viking-Bot
- ALSO, we have generated java docs for the project you can read.
There are agents which interact with starcraft, knowledge which is some quick huristics for efficiency, listeners for the machine learning, ml (the machine learning), planning (the AI planning)< and then a few classes that actually run the bot.
Singleton for knowledge about starcraft, and telling the AI Planning about the game
Handles executing AI Planning actions, and normal actions every frame.
Handels combat information, and Machine Learning/AI Planning interaction.
Handles building buildings, and the economy.
The Machine Learnign controlls the Units movement and fighting, it consists of the ML package, and is used by the agents via the Combat Agent.
The planning package handles the AI Planing, based on burlap. It consists of a few different actions, helper classes for parsing them in the agents, and other classes needed for BURLAP to work.
A list of replays recorded at the end of each milestone
- in intellij, compile the bot into a jar. (https://www.jetbrains.com/help/idea/compiling-applications.html#package_into_jar)
- Convert the jar to a .exe https://www.genuinecoder.com/convert-java-jar-to-exe/
- move the file to a place bwapi can find it (so basically into the bapi data folder)
- set up the config to work for multiple ai http://www.starcraftai.com/wiki/Multiple_instances_of_StarCraft
- use the Chaoslauncher - MultiInstance.exe rather than normal chaos launcher, launch it twice
- multiplayer -> local pc, and join the game (make sure the config is expecting the right races and game mode)
- start the match
Same process as above almost, but when making the .exe in Launch4j, go to the header section and change the header type from GUI to console.
- in intellij, compile the bot into a jar. (https://www.jetbrains.com/help/idea/compiling-applications.html#package_into_jar)
- Convert the jar to a .exe https://www.genuinecoder.com/convert-java-jar-to-exe/
- start the Chaoslauncher - MultiInstance.exe rather than normal chaos launcher
- Run the .exe file, and a console should open up. Then run an instance of starcraft using the chaos launcher. The ai should connect to the instance of starcraft
- repeat step 4 for as many instances of the bot as you want to run,
- multiplayer -> local pc, and join the game (make sure the config is expecting the right races and game mode)
- start the match