Abstract

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.

MLMove Examples

We introduce MLMove, a bot for playing CS:GO Retakes that features a movement controller trained on logs from 123 hours of professional human play. The controller generates movement actions for both teams of players in 0.5 ms (amortized per-step cost) on a single CPU core. Below are examples of MLMove's human-like movement.

Human-Like Movement 1: Flanking

Flanking is synchronized attacks from multiple directions. Defense players naturally have an advantage, since they can set traps and wait for offense players. Flanking enables skilled offense players to gain the advantage by creating moments where the defense is surprised and overwhelmed. In this video, three MLMove bots on offense execute a synchronized flanking strategy against three MLMove bots on defense.

Human-Like Movement 2: Reacting To Enemies

Humans adjust their movement and positioning based on enemy locations. If the offense is about to defuse the bomb, then the defense must move to positions near the bombsite to stop the defusal. The video on the left shows the yellow MLMove bot moving to stop the defusal. If the offense is far from the bombsite, then the defense should try to intercept the offense in cover-free positions before they reach the bombsite. The video on the right shows the blue MLMove bot moving to intercept the yellow player on the stairs.

Human-Like Movement 3: Using Cover

Cover is map geometry that blocks sight lines and bullets between a player and their enemies. Humans use cover to stop engagements. The above image shows the blue offense player leveraging cover (the wall outlined in red) to hide from the yellow defense player above.
Humans move into the open, away from cover, when they want to maintain sight lines to an enemy and increase the likelihood of bullets hitting an enemy. The above image shows the blue offense player move into the open because they are ready to engage the yellow defense player. Humans do not stand in the middle, red-outlined region because they can get shot without seeing everyone.
MLMove replicates humans' use of cover. The left heatmap shows where humans move in the above cover examples. The human's stand near the top wall, which provides cover, and near the bottom wall, which allows them to engage enemies. The right heatmap shows MLMove replicates this movement behavior.

Helping Teammates by Combining Flanking, Reacting To Enemies, and Using Cover

The yellow defense MLMove bot is initially watching a flank attack from the far left. When it is clear that the flank is coming from the right, the defense bot reacts to the enemies and moves to help their teammates. The defense bot uses the wall corner in the middle of the screen (near the green + sign) as cover to engage and then hide from the enemies.

Overall Movement Distribution

The
                    figures plot the fraction of time players spend in different regions of the map, aggregated over
                    1430 rounds of play.
The figures plot the fraction of time players spend in different regions of the map, aggregated over 1430 rounds of play. The distribution of the MLMove bots playing against themselves (second column) mimics the overall distribution of human play (HUMAN, first column). A well-engineered rule-based bot (RuleMove) and the bots currently shipping in CS:GO (GameBot) do not replicate the human movement distribution.

MLMove and Human Gameplay Example

David Durst (the first author) plays with and against MLMove bots. The video is from David's perspective. The MLMove bots synchronize their attack so two of them fight David at the same time.
Download the supplemental material for videos comparing the behavior of humans, MLMove, RuleMove, and GameBot in the same scenarios.

Full Dataset Download Instructions

We recommend starting with the sample dataset, which is 4% of the full dataset. The full dataset is large (30GB compressed, 230GB uncompressed). The requestor pays for downloading the full dataset. To download it:
  1. Create an AWS account.
  2. Install the AWS CLI.
  3. Download the dataset: aws s3api get-object --bucket csknow-full --key full_csknow.tar.gz full_csknow.tar.gz

Offense vs Defense

In the Retakes game mode, the blue offense team has at most four players and the yellow defense team has at most three players.
The offense team attempts to defuse the bomb. The yellow defense team attempts to stop the defusal.

MLMove vs CSKnow

MLMove is our CS:GO agent with a learned movement model. CSKnow is our dataset curation system.