David Durst's Blog


TL;DR I previously proposed a rough formula for modeling players' game sense. However, I didn't specify how to use the model to evaluate a player's actual performance. In this blog post, I'll propose a way to quantify players' actual behavior in game.

Examining Behaviors Will Enable Us To Evaluate Game Sense

I previously proposed a model for how to quantitatively model the different aspects of a theoretical player's game sense. The model was a cool, theoretical idea. However, I didn't explain how to evaluate a specific player's gameplay using the model. There's a large gap between a demo file with 90 minutes of gameplay and a few numbers describing a player in the model, like a 0.9 rating for awareness of footsteps.

I will propose a method to evaluate players by considering both players' perceptions and the actions they take as the result of those perceptions. The below pipeline image demonstrates how perceptions impact actions. The first step is game sense, where players perceive the game by seeing images rendered to their monitor and sounds played in their headphones. They then make decisions based on their game sense. Finally, the players take actions based on those decisions. These actions are their in-game behaviors. Since CSGO is a game of incomplete information where players only perceive a subset of the current game state, we can rate a player's ability to perceive and process incomplete information (aka their game sense) by their in-game actions. The more often you decide on the right current behavior, the better your game sense.

The pipeline of CSGO player behavior from perception to decision to action. Players perceive input images and sounds, make decisions, and output commands to the mouse and keyboard.

I will explain my method by working back-to-front through the pipeline. First, I'll explain the behaviors. Then, I'll explain how I use the behaviors to rate good and bad decisions. Finally, I'll explain how use those decision ratings to evaluate a player's game sense.

Defining Behaviors

I claim that players' behavior in CSGO can be divided into four actions: holding, peeking, rotating, and utility.

Holding: Holding is standing (mostly) still and controlling a region of the map. The below video on the left demonstrates holding. The below image on the right shows that the player controls the yellow region of the map in Upper Tunnels leading to B Site.
Peeking: Peeking is moving through a region of map that your team doesn’t control. Players typically check corners as they peek, as enemies will appear at the corners. The below video on the left demonstrates peeking. The player checks multiple corners as he pushes through A Long into Top Mid. The below image on the right shows that the player moves into an uncontrolled region of the map. His team can see the blue regions, so they control them. His teammates have limited information on the pink region he moves into at Top Mid.
Rotating: Rotating is moving through a region of map that your team controls. Players typically don't check corners as they rotate, as enemies are unlikely to appear. They instead run with their knife as their active weapon, enabling them to move faster at the cost of slower reactions to enemies. The below video on the left demonstrates rotating. The player rotates from T Spawn to Upper Tunnels without checking corners as he knows his team controls that region of the map. The below image on the right shows that the player moves through the yellow region of the map controlled by his team.
Utility: Utility is helping your teammates out without using your weapon. This includes throwing grenades or helping teammates quickly reach new areas of the map by allowing them to jump on your head. The below video demonstrates utility. The player throws flash grenades to help his teammate peek A Long.

Evaluating Decisions By Behaviors

I use the behaviors to evaluate decisions by treating each behavior as a guessing game. Each behavior has a different game, but all games allow me to classify a player's decision as correct or incorrect. Correct decisions imply good game sense for perceived information. Incorrect decisions imply bad game sense for perceived information. The games are:

  1. Holding: Are enemies near (but not inside) the region of the map visible to the holder? If there are enemies nearby, then the holder is making a good decision. If there aren't, then the holder is making a bad decision and should rotate to help his teammates.
  2. Peeking: For each corner that the player peeks, is there an enemy behind the corner? If there is an enemy, the peeker is making a good decision. If there isn't, then the holder is making a bad decision.
  3. Rotating: Does the player move through the line-of-sight of an enemy while rotating? If the player does, then they are making a bad decision. If the player doesn't, they are making a good decision.
  4. Utility: How many enemies does the player flash/block with a smoke? The more enemies, the better the decision.

Evaluating Game Sense By Decisions

I will use the decisions to evaluate a player's game sense based on how they used or misused their perception of game state. For each aspect of game sense listed here, I will sum up all the good and bad decisions made when the player had this type of information. A good decision will count as a +1 and a bad decision will count as a -1. A player with a large positive value for an aspect of game sense will be good in that aspect, as they made many good decisions when they had that information. A negative value will mean the opposite.

More Work Required

This blog post is only the second step in defining and measuring game sense. I would be thrilled to get your feedback on any of this post. The areas that need the most work are:

  1. other behaviors that aren't described by my four: holding, peeking, rotating, and utility
  2. how to compose my behaviors for more complex behaviors
  3. other guessing games for evaluating decisions
  4. drawing more from related work in backpropagation

If you have questions or comments about this analysis, please email me at durst@stanford.edu.