The goal of this project is to use offline evolution to make more flexible scripts that are expected to perform better in micro battles compared to fixed scripts.
-
Clone this repo
-
Install Microsoft Visual Studio 2013 Community Edition (either from Microsoft site or here)
-
Open the solution file
SparCraft-Evo/VisualStudio/SparCraft.sln
-
Include source and lib files:
- Download the sources (either
.zip
or.tar.gz
) from SDL and SDL_image and extract them - In the Solution Explorer menu of Visual Studio, right-click on the projects and select
Properties > Configuration Properties > VC++ Directories
- In the Include Directories option, add the
include
folder from the extracted sources above - Repeat the same steps for Libraries Directories option by adding
SparCraft-Evo/lib
, and for Source Directories option by addingSparCraft-Evo/source
- Download the sources (either
-
To build the project, choose the options to build as Release and Win32
-
After the build is done, run
bin/SparCraft.exe
from command line (recommend Windows PowerShell). Notes: must include these files in the same folder:SDL2.dll
andSDL2_image.dll
(downloaded from the same site of the sources above)<config-file-name>.txt
file. Notes: must update all the paths to be consistent with the test system
-
[Optional] Instructions to install MinGW for Windows
- Add header file to
AllPlayers.h
- Add new player to
AllPlayers::getPlayer
andAllPlayers::getPlayerPtr
- Add player name to
AllPlayers::getPlayerName(const IDType & type)
- Add player model to
class PlayerModels : public EnumData<PlayerModels>
in bothenum
andinit
- Add logic handling in
SearchExperiment.cpp
The project is built upon the SparCraft framework, which is open source StarCraft combat simulation package developed by David Churchill.
-
Evo_KiterSD
uses mu-lambda ES to evolve a population ofPlayer_KiterSD
- simple one-param kiter, that is the Safe Distance -
Evo_KiterMvmt
, same asEvo_KiterSD
, but forPlayer_KiterMvmt
- a Kiter whose movement (Mvmt) is parameterized into different weights- Good seeds: 3158032268, 1294198436, 417277356 (best score = 353)
-
Config note: POE num_generations poe_playout_round_limit population_size num_best_to_keep doOfflineEvo [numEvoStates evoSide mu lambda epoch numSubpop] Typical: Number of generations: 10-20, poe_playout_round_limit: around 20, population size: 18, num_best: 6. Fast: 5 gen, 5 playout limit, 8, 4