CommandCenter Getting started for the Ladder Manager

From Starcraft 2 AI
Jump to: navigation, search

CommandCenter is intended as an easy to use architecture for Bot development. The bot can easily modified by changing a config file. This page illustrates how the bot can build so that it can be used used in the SC2 AI Ladder Manager environment. Since the CommandCenter is also targeted at beginners all steps are as verbose as possible.

Note: CommandCenter is already quite complex (and may have some bugs). That means if you use this guide you have a bot that can do already simple things like a 12 pool etc. And it can potentially do already quite complex things if you spend some time digging through the code and adjusting it to your needs. It can be a great opportunity to get to know the sc2api. This approach was followed for example by 5minBot to great success. But if instead you want to start with a bot from scratch follow this guide (WIP).

Preparation

The SC2api will use some pre-cached data. Therefore to be safe, we need to play one game on the map used for debugging.

  1. Download Starcraft II (it is free).
  2. Start the game.
  3. Go to Custom->Melee and search for Interloper LE. (If it only appears with mod, close the search, select Blizzard maps, and scroll down a bit.)
  4. Create lobby.
  5. Start Game.
  6. Once the game started, you can immediately leave and close the game.

SC2api

If you already have the s2client-api installed feel free to jump to the next section. Nevertheless, it is recommended to double-check that all steps were done exactly as described below.

  1. Install Visual Studio Community 2017. Chose the C++ IDE.
  2. Start a cmd prompt (cmd.exe).
  3. Follow the instructions here.
  4. After this Visual Studio 2017 should be open.
  5. In the top row select "Release" and "x64".
  6. Build -> Build Solution.
  7. In the top row select "Debug" and "x64".
  8. Build -> Build Solution.
  9. Close Visual Studio.
  10. Open the folder "<path to>\s2client-api".
  11. Execute, i.e. double click on "synchproject.bat".
  12. Answer with "yes" or "all" if prompts appear.
  13. Go to [1] and download Ladder 2017 Season 3. The password to unzip them is as of writing this guide ‘iagreetotheeula’ which you might want to read before you agree.
  14. Extract ONLY THE MAPS! to C:\Program Files (x86)\StarCraft II\Maps\ (You probably need to create the Maps directory.)
  15. Confirm that C:\Program Files (x86)\StarCraft II\Maps\InterloperLE.SC2Map exists and NOT for example C:\Program Files (x86)\StarCraft II\Maps\Ladder2017Season3\InterloperLE.SC2Map.

The s2client-api is now installed.

CommandCenter

  1. Download an already prepared Command Center and extract it. For convenience put it in the same directory where you created "s2client-api" (but not inside "s2client-api").
  2. Open "CommandCenter/vs/CommandCenter.sln", i.e. double click on it.
  3. Right-click on CommandCenter and select Properties in the "Solution Explorer" (left or right side of Visual Studio).
  4. Chose "Configuration: All Configurations".
  5. Then VC++ Directories.
  6. Edit the the "Include Directories" to point to "<path to>\s2client-api\project\include". (maybe already correct.)
  7. Edit the the "Library Directories" to point to "<path to>\s2client-api\project\lib". (maybe already correct.)
  8. Go to "Debugging".
  9. Change "Working Directory" to "$(ProjectDir)/../bin/". (maybe already correct.)
  10. Press apply and then press ok.
  11. In the top row select "Release" and "x64".
  12. Build -> Build Solution.
  13. If it says something like "Cannot open include file: 'sc2api/sc2_api.h'" make sure you have done 4. In doubt start again from there.
  14. In the top row select "Debug" and "x64".
  15. Build -> Build Solution.
  16. Press "Local Windows Debugger".

If everything was correct till here an instance of SC2 on Interloper LE opens with a Terran bot. You can close SC2 for now. If where you pressed "Local Windows Debugger" is still a red square, press it.

Produce the executable for the ladder manager

  1. In the top row select "Release" and "x64".
  2. Build -> Build Solution.
  3. Find the executable "CommandCenter_SC2API.exe".
  4. Rename "CommandCenter_SC2API.exe" to <your bot name>.exe.
  5. Put <your bot name>.exe and BotConfig.txt in a .zip file.
  6. Upload the .zip file to sc2ai.net.

What next?

You can either change the BotConfig.txt or the code itself. If you want to test and debug the bot, you can let it play against the in-build AI by changing from "Release" to "Debug" and press "Local Windows Debugger". Now you can locally observe what changes to the BotConfig.txt or the code itself cause.

Issues?

If you have issues building Command Center you might need to do 3. and 4. and then change the Windows SDK to 10.

If you have problems do not hesitate to come to the Discord. If you find a bug please let me know so that I can fix it. Pull requests are always welcome.