Learning to Move Like Professional Counter-Strike Players
<|reference_start|>Learning to Move Like Professional Counter-Strike Players: In multiplayer, first-person shooter games like Counter-Strike: Global Offensive (CS:GO), coordinated movement is a critical component of high-level strategic play. However, the complexity of team coordination and the variety of conditions present in popular game maps make it impractical to author hand-crafted movement policies for every scenario. We show that it is possible to take a data-driven approach to creating human-like movement controllers for CS:GO. We curate a team movement dataset comprising 123 hours of professional game play traces, and use this dataset to train a transformer-based movement model that generates human-like team movement for all players in a "Retakes" round of the game. Importantly, the movement prediction model is efficient. Performing inference for all players takes less than 0.5 ms per game step (amortized cost) on a single CPU core, making it plausible for use in commercial games today. Human evaluators assess that our model behaves more like humans than both commercially-available bots and procedural movement controllers scripted by experts (16% to 59% higher by TrueSkill rating of "human-like"). Using experiments involving in-game bot vs. bot self-play, we demonstrate that our model performs simple forms of teamwork, makes fewer common movement mistakes, and yields movement distributions, player lifetimes, and kill locations similar to those observed in professional CS:GO match play.<|reference_end|>
@article{durst2024learning,
    title={Learning to Move Like Professional Counter-Strike Players},
    author={David Durst, Feng Xie, Vishnu Sarukkai, Brennan Shacklett, Iuri
  Frosio, Chen Tessler, Joohwan Kim, Carly Taylor, Gilbert Bernstein, Sanjiban
  Choudhury, Pat Hanrahan, Kayvon Fatahalian},
    journal={ACM SIGGRAPH / Eurographics Symposium on Computer Animation (SCA),
  August 21-23, 2024, Montreal, Canada},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.13934},
    primaryClass={cs.LG cs.AI cs.GR}
}