ELF: An Extensive, Lightweight and Flexible Research Platform for Real-time Strategy Games

Yuandong Tian, Qucheng Gong, Wenling Shang, Yuxin Wu, C. Lawrence Zitnick
7/4/2017
cs.AI

Official code: facebookresearch/ELF (2,090 stars, last commit 2021-08-30).

Abstract

In this paper, we propose ELF, an Extensive, Lightweight and Flexible platform for fundamental reinforcement learning research. Using ELF, we implement a highly customizable real-time strategy (RTS) engine with three game environments (Mini-RTS, Capture the Flag and Tower Defense). Mini-RTS, as a miniature version of StarCraft, captures key game dynamics and runs at 40K frame-per-second (FPS) per core on a Macbook Pro notebook. When coupled with modern reinforcement learning methods, the system can train a full-game bot against built-in AIs end-to-end in one day with 6 CPUs and 1 GPU. In addition, our platform is flexible in terms of environment-agent communication topologies, choices of RL methods, changes in game parameters, and can host existing C/C++-based game environments like Arcade Learning Environment. Using ELF, we thoroughly explore training parameters and show that a network with Leaky ReLU and Batch Normalization coupled with long-horizon training and progressive curriculum beats the rule-based built-in AI more than $70\%$ of the time in the full game of Mini-RTS. Strong performance is also achieved on the other two games. In game replays, we show our agents learn interesting strategies. ELF, along with its RL platform, is open-sourced at https://github.com/facebookresearch/ELF.

View on arXivView PDF

Code Implementations(1)

An End-To-End, Lightweight and Flexible Platform for Game Research

2,090280C, C++Jun 6, 20175 years agoNOASSERTION
artificial-intelligencecppdeep-learninggamingneural-network+3 more

Similar Papers

Cite this paper

@article{tian2017elf,
  title  = {ELF: An Extensive, Lightweight and Flexible Research Platform for Real-time Strategy Games},
  author = {Yuandong Tian and Qucheng Gong and Wenling Shang and Yuxin Wu and C. Lawrence Zitnick},
  year   = {2017},
  eprint = {1707.01067},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1707.01067}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1707.01067.svg)](https://codeofpaper.com/paper/1707.01067)

Discussion