Papers › The StarCraft Multi-Agent Challenge

The StarCraft Multi-Agent Challenge

11 Feb 2019arXiv:1902.04043archive 2025-07-28

Mikayel Samvelyan, Tabish Rashid, Christian Schroeder de Witt, Gregory Farquhar, Nantas Nardelli, Tim G. J. Rudner, Chia-Man Hung, Philip H. S. Torr, Jakob Foerster, Shimon Whiteson

In the last few years, deep multi-agent reinforcement learning (RL) has become a highly active area of research. A particularly challenging class of problems in this area is partially observable, cooperative, multi-agent learning, in which teams of agents must learn to coordinate their behaviour while conditioning only on their private observations. This is an attractive research area since such problems are relevant to a large number of real-world systems and are also more amenable to evaluation than general-sum problems. Standardised environments such as the ALE and MuJoCo have allowed single-agent RL to move beyond toy domains, such as grid worlds. However, there is no comparable benchmark for cooperative multi-agent RL. As a result, most papers in this field use one-off toy problems, making it difficult to measure real progress. In this paper, we propose the StarCraft Multi-Agent Challenge (SMAC) as a benchmark problem to fill this gap. SMAC is based on the popular real-time strategy game StarCraft II and focuses on micromanagement challenges where each unit is controlled by an independent agent that must act based on local observations. We offer a diverse set of challenge maps and recommendations for best practices in benchmarking and evaluations. We also open-source a deep multi-agent RL learning framework including state-of-the-art algorithms. We believe that SMAC can provide a standard benchmark environment for years to come. Videos of our best agents for several SMAC scenarios are available at: https://youtu.be/VZ7zmQ_obZ0.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1902.04043")

Code

Syntology Ran 6 of 15 code samples harvested from 7 repositories linked to this paper; 9 have no recorded run. Of those that ran: 6 ran · our draft was wrong.

By repository: community (archive-listed): 12 samples from 7 repositories, 3 ran; 3 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

23 repositories listed; official and paper-mentioned ones first.

oxwhirl/pymarl officialmentioned in papermentioned on GitHubpytorch report
oxwhirl/smac officialmentioned in papermentioned on GitHubpytorchMIT report
Denys88/rl_games mentioned on GitHubtfMIT report
Lamperougeyxy/GHQ mentioned on GitHubpytorchMIT report
ailabdsunipi/pymarlzooplus mentioned on GitHubpytorchApache-2.0 report
dtabas/epymarl mentioned on GitHubpytorchApache-2.0 report
gingkg/smac mentioned on GitHubpytorchMIT report
hahayonghuming/VDACs mentioned on GitHubpytorchMIT report
jk96491/C-COMA mentioned on GitHubpytorchApache-2.0 report
jk96491/SMAC mentioned on GitHubpytorchApache-2.0 report
jugg1er/air mentioned on GitHubpytorchApache-2.0 report
kcorder/qmix_variants mentioned on GitHubpytorchApache-2.0 report
kinalmehta/epymarl mentioned on GitHubpytorchApache-2.0 report
ling-pan/res mentioned on GitHubpytorchApache-2.0 report
mahi97/XQMIX mentioned on GitHubpytorchApache-2.0 report
osilab-kaist/smac_exp mentioned on GitHubpytorch report
osilab-kaist/smac_plus mentioned on GitHubpytorch report
oxwhirl/facmac mentioned on GitHubpytorch report
oxwhirl/smacv2 mentioned on GitHub report
simsimiSION/pymarl-algorithm-extension-via-starcraft mentioned on GitHubpytorchApache-2.0 report
uoe-agents/epymarl mentioned on GitHubpytorch report
wendelinboehmer/dcg mentioned on GitHubpytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

15 samples harvested; 6 ran; 0 honoured the contract we drafted; 9 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

6ran · our draft was wrong
9unverified

Licence: 13 of the 15 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 7 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

get_centralv_args starry-sky6688/marl-algorithms/common/arguments.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · b19a31174c009d56 · report
get_coma_args starry-sky6688/marl-algorithms/common/arguments.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · b45504dbf41a0cc7 · report
get_mixer_args starry-sky6688/marl-algorithms/common/arguments.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 3bb5b43703ab9da4 · report
args_sanity_check Lamperougeyxy/GHQ/src-GHQ/hetero_run.py community (archive-listed) unverified MIT (permissive) · 012625dd7922e3c6 · report
config_copy jk96491/C-COMA/src/config_util.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · 6da83f6c43f19bcd · report
get_config jk96491/C-COMA/src/config_util.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · 97de3c09702583fa · report
get_distribution oxwhirl/smacv2/smacv2/env/starcraft2/distributions.py community (archive-listed) unverified MIT (permissive) · 931274a62c01dbc3 · report
get_run_cmds kcorder/qmix_variants/gen_run_configs.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · cc14e47211ac4bfe · report
int2onehot ling-pan/res/src/envs/mpe_env.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · 5e82021904c004bf · report
onehot_from_logits kcorder/qmix_variants/src/components/action_selectors.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · d2a8ffa31f7e13c8 · report
process_batch jk96491/SMAC/offpg_run.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · 8167e3248b280556 · report
recursive_dict_update jk96491/C-COMA/src/config_util.py community (archive-listed) unverified Apache-2.0 recorded; this copy not marked cleared · pointer only · 29b55b98f851c566 · report
extract_alg_name_from_config identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · fa9a1eda0ac523d2 · report
extract_env_name_from_config identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · cf0832c848510d11 · report
load_results identical code first harvested elsewhere ran · our draft was wrong fingerprinted licence of this copy not recorded · 73de3ace29add240 · report

Tasks

BenchmarkingMuJoCoMulti-agent Reinforcement LearningReal-Time Strategy GamesReinforcement LearningReinforcement Learning (RL)SMACSMAC+StarcraftStarcraft II

Datasets

Introduced by this paper, per the archive.

SMAC

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
SMAC SMAC 27m_vs_30m QMIX Median Win Rate 49 #7 of 11 Archive leaderboard report
SMAC SMAC 27m_vs_30m Heuristic Median Win Rate 0 #11 of 11 Archive leaderboard report
SMAC SMAC 3s5z_vs_3s6z VDN Median Win Rate 2 #10 of 13 Archive leaderboard report
SMAC SMAC 3s5z_vs_3s6z IQL Median Win Rate 0 #12 of 13 Archive leaderboard report
SMAC SMAC 3s5z_vs_3s6z Heuristic Median Win Rate 0 #13 of 13 Archive leaderboard report
SMAC SMAC 6h_vs_8z QMIX Median Win Rate 3 #6 of 14 Archive leaderboard report
SMAC SMAC 6h_vs_8z IQL Median Win Rate 0 #11 of 14 Archive leaderboard report
SMAC SMAC 6h_vs_8z VDN Median Win Rate 0 #12 of 14 Archive leaderboard report
SMAC SMAC 6h_vs_8z Heuristic Median Win Rate 0 #13 of 14 Archive leaderboard report
SMAC SMAC MMM2 QMIX Median Win Rate 69 #9 of 14 Archive leaderboard report
SMAC SMAC MMM2 VDN Median Win Rate 1 #12 of 14 Archive leaderboard report
SMAC SMAC MMM2 IQL Median Win Rate 0 #13 of 14 Archive leaderboard report
SMAC SMAC MMM2 Heuristic Median Win Rate 0 #14 of 14 Archive leaderboard report
SMAC SMAC corridor QMIX Median Win Rate 1 #10 of 13 Archive leaderboard report
SMAC SMAC corridor IQL Median Win Rate 0 #12 of 13 Archive leaderboard report
SMAC SMAC corridor Heuristic Median Win Rate 0 #13 of 13 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections