A package for StarCraft2 Micro-Management.
Project description
SCMM StarCraft II Micro Management
Installing StarCraft II
You can find lastest verson of StarCraft II at here
After installing the game, navigate to installing_path/StarCraft II/Maps and move a copy of all the maps in SCMM there.
If Maps folder does not exist, then manually create one
Installing SCMM
Two ways:
-
You can directly clone the repo:
git clone https://github.com/caiyangcy/SC2DC.git
-
Use pip install:
pip install SC2MM
Maps
- You can find a list of maps here
Alternatively, you can run:
python -m scmm.bin.map_list
View a Map
All the maps can be viewed by StarCraft II Editor
Change a Map
The terrain and functionality of a map can be changed by StarCraft II Editor
Create a Map
Create a map using StarCraft II Editor. After creation, make sure add the map to scmm/env/micro_env/maps/mm_maps.py and also make sure the map is added to the game folder
Create an unit
The most important thing when creating units on a new map is to disable some reactions of them.
To do this (taken from SMAC):
Open editor, data editor, unit tab
Right click and click add new unit
Name the new unit, click suggest right below it
Leave the "parent:" row alone. That determines what we're making. We want to make a unit
Select the unit you want to copy (bottom of the new opened window, "copy from" row) e.g. zealot if you're copying zealot
Set the "Object family:," "Race:," and "Object Type:" as desired. THESE DO NOTHING but make it easier for you to find your new unit once it's made. e.g. you probably want a new zerg unit to be in the zerg section when you go to place it on your map or something.
Press okay, you're almost done
Click the plus sign on the data editor tabs, go to edit actor data, actors
Click the new actors tab
Right click and click add new actor
Name it and click suggest like before
Change the "Actor Type:" row to unit
Select what you want to copy from (bottom of the new opened window again) e.g. zealot if you're coping a zealot
Press okay
Click on your new actor
At the bottom right of the window where it says "Token" and then "Unit Name," change the unit name to the name of your unit e.g. Zealot RL
Go back to the Unit tab, find the new unit and modify the following fields:
(Basic) Stats: Supplies - 0
Combat: Default Acquire Level - Passive
Behaviour: Response - No Response
Unit Tester Map
A unit tester map can be found at unit tester map folder. Source at *unit-tester.
The purpose of this map is to help design some new scenarios.
Run
Refer to the names of agents to find out the details of running agents.
Scripted
python -m scmm.agents.scripted.agent_demo -n_episode=10 -map_name=3m -difficulty=7 -plot_level=0 -agent=FocusFire
Genetic
python -m scmm.agents.genetic.ga -n_episode=10 -map_name=8m -difficulty=7 -plot_level=0
NN
python -m scmm.agents.nn.nn -n_episode=10 -map_name=25m -difficulty=7 -plot_level=0
Potential Field
python -m scmm.agents.potential_fields.forces -n_episode=10 -map_name=25m -difficulty=7 -plot_level=0
Acknowledgement
- The coding is based on SMAC. Refer to the repo for details and license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.