Something feels wrong with Counter-Strike 2. But nobody knows quite what, if anything.
My one wish for next season… for Counter Strike to improve their gameplay and their sub-tick if they want to stick to it NiKo, CS2 professional
Game developers have a lot of tacit and explicit knowledge about their titles. They know the systems and the interactions between them, and what results they produce.
But players of a game have a tacit feel about the game. They can evaluate the end result of these systems far more accurately than most developers can. In Counter-Strike, most complex movement is out of reach of developers (see this incredible example from ropz).
With the move from CS:GO to CS2, the networking model was overhauled. While the old tick based system runs under the hood, a separate timestamp is networked with each action, to allow for more precise modelling of game events1. The underlying tick based system has been hardcoded to 64 updates per second.
Comparison of networking systems: CS:GO forces events to tick boundaries, while CS2 preserves precise timing
One assumption that immediately wrong from the developer side, was that sub-tick would rectify differences in grenade trajectories across tick rates (grenade throws involving jumping behave different from 64-tick to 128-tick). This did not prove to be the case, and was “resolved” by hard-coding the tick rate.
But beyond all of this, players have continually complained about the game feeling “off”. This is a vague feeling, that is difficult to appreciate. And indeed, the first thing that comes to mind is an anecdote from Minh Le, where he describes artificially lowering the ping on the scoreboard to make the game appear more responsive, which tricked people.
However, saying that players cannot identify minute differences through game play alone is not accurate. In an experiment, professional player ropz was able to accurately identify the tick rate of the server he was playing on through aim and movement.
When a large group of them say something is wrong… there is something worth exploring. I’m reminded of the anecdote of Jim Clark noticing that a single wheel bearing was starting to wear while driving, which was not noticeable without completely disassembling the car
The problem is: how do you test for this? A “feeling” is not empirical evidence. Even inconsistent bugs can be difficult for developers to reproduce2, if they don’t have the requisite understanding of the game mechanic.
Developers don’t need to be hyper-skilled to produce great games. Personally, the game design of Counter-Strike continues to be fantastic, despite the developers not being outrageously skilled. However, Counter-Strike is predicated on being a simplistic3 game, where players advantage themselves through precise gameplay. For a game like this, solving this gap is crucial to providing the best experience for players.
-
This is an oversimplification of the network model. But it is good enough to understand the base premise. ↩︎
-
This bug was not the most difficult to replicate: even I, a relatively middle of the road player, could do so frequently enough. This demonstrates how different the experience for a developer can be. This would cause furore a day later, when a player lost a round in the on-going Valve sponsored event, because of this bug. ↩︎
-
In contrast to the closest competitor VALORANT, where agent abilities can dictate a round. ↩︎