Programmatic Strategies for Real-Time Strategy Games

Abstract

Search-based systems have shown to be effective for planning in zero-sum games. However, search-based approaches have important disadvantages. First, the decisions of search algorithms are mostly non-interpretable, which is problematic in domains where predictability and trust are desired such as commercial games. Second, the computational complexity of search-based algorithms might limit their applicability, especially in contexts where resources are shared among other tasks such as graphic rendering. In this work we introduce a system for synthesizing programmatic strategies for a real-time strategy (RTS) game. In contrast with search algorithms, programmatic strategies are more amenable to explanations and tend to be efficient, once the program is synthesized. Our system uses a novel algorithm for simplifying domain-specific languages (DSLs) and a local search algorithm that synthesizes programs with self play. We performed a user study where we enlisted four professional programmers to develop programmatic strategies for mRTS, a minimalist RTS game. Our results show that the programs synthesized by our approach can outperform search algorithms and be competitive with programs written by the programmers.

Cite

Text

Mariño et al. "Programmatic Strategies for Real-Time Strategy Games." AAAI Conference on Artificial Intelligence, 2021. doi:10.1609/AAAI.V35I1.16114

Markdown

[Mariño et al. "Programmatic Strategies for Real-Time Strategy Games." AAAI Conference on Artificial Intelligence, 2021.](https://mlanthology.org/aaai/2021/marino2021aaai-programmatic/) doi:10.1609/AAAI.V35I1.16114

BibTeX

@inproceedings{marino2021aaai-programmatic,
  title     = {{Programmatic Strategies for Real-Time Strategy Games}},
  author    = {Mariño, Julian R. H. and Moraes, Rubens O. and Oliveira, Tassiana C. and Toledo, Cláudio and Lelis, Levi H. S.},
  booktitle = {AAAI Conference on Artificial Intelligence},
  year      = {2021},
  pages     = {381-389},
  doi       = {10.1609/AAAI.V35I1.16114},
  url       = {https://mlanthology.org/aaai/2021/marino2021aaai-programmatic/}
}