Openings are the sequences of actions taken at the start of a game. Chess openings, for example, have been studied for hundreds of years, and are an important part of effective play. When Chess openings become recognizable, they are given fancy names like The Giuoco Piano or The Ruy Lopez. Kind of like outlaws in the Wild West…
Openings are popular in a variety of classic games like Chess, Checkers, Go, etc. But it is less conventional to think of applying opening theory to a game like Counter-Strike Source…
I’ll argue that opening theory cannot — yet — be applied to games like Counter-Strike (CS) because there doesn’t exist an unambiguous, human-readable notation which can describe CS gameplay. To illustrate, I’ll contrast opening notation in Chess to opening notation in CS.
Algebraic Chess Notation
Algebraic Chess notation records assignments of pieces to positions in chronological order. Positions are named according to their coordinates on the chess board: columns are labelled from [a:h], rows from [1:8]. Portable Game Notation (PGN), which is based on algebraic notation, has become the de facto standard for recording Chess games because it’s human-readable and easily parsed.
Here’s a cool example. The Stonewall Attack is characterized by a system of staggered pawns and a well-positioned bishop. Apparently this thing is just a pain in the ass to defend against. Using algebraic notation we can annotate White’s actions as follows:
1. d4 2. e3 3. f4 4. c3 5. Bd3
It’s important to note here that algebraic notation is unambiguous and leaves no uncertainty as to which piece is being moved or to where. As a result, we can build systems that track an opening’s use in notable games, tally its successes over many recorded games, report its popularity over the decades, etc.
Counter-Strike and Notation via Natural Language
Let’s jump right into an example of an opening in Counter-Strike. This dedust2 opening is characterized by a surprise rush, which is a common tactic in CS gameplay:
…send half the team to the balcony kind of deal hanging next to the middle hill, also known as the catwalk. Send the other half to the far-east long corridor and get into position. From this point, call a rush. The east side half will rush up the corridor full speed, and get into A if possible. The balcony half will throw flash bangs and grenades into A and rush in. Meet up, plant the bomb, and protect.
This notation via natural language is the standard in the CS community. It enables informal analysis, in that one expert player can say, “I think the rush should be staggered so that the enemy is reacting to the flashbangs before the second wave comes in.” But it would all be anecdotal.
Remember how I was saying that algebraic notation is unambiguous? Well, natural language can be very ambiguous. All the interesting things we could do in Chess (tracking, tallying, reporting) can’t be done in CS–at least not in an automated fashion.
In the next part in the series, I’ll talk about some existing techniques that can be used to create an unambiguous game notation for CS.
Tags: chess, computer science, counter-strike, video games