The beginning of a Call of Duty 4 Search and Destroy game is essentially a race. When the game starts, experienced players all make a mad dash from the starting post, head for their preferred defensive or offensive positions, to dig in before the enemy can bring their guns to bear. From these choice spots, they engage the enemy within seconds, and despite moderately large maps which are a few hundred metres across, up to a third of the kills in a 3-5 minute game do take place in the first 15 seconds. Of course there is skill in figuring out what to do next (the top 1% of players distinguish themselves through adaptability and quick thinking), but the fact remains that the opening of an S&D match is critically important.
I have previously posted about “Neo-Tactics” – unintended side-effects of low-level game algorithms which create competitive advantage. Once a player seems to win without a visible justification this sort of effect causes a problem – it creates the perception of cheating. At a second level, actual cheats might deliberately manipulate their network infrastructure or game client to take advantage of the effect. Well I think I might have found a new one…
The screenshots below give a flavour of the sort of sneaky position that players might hope to be first to reach, affording a narrow but useful line of sight through multiple windows and doorways, crossing most of the map. NB: Seasoned COD4 players will laugh at my choice of so-called sneaky position, but I am a novice and I cannot hope to reach the ingenious hideouts they have discovered after years of play-testing.
Now, when each game starts, everybody spawns at the start point, but seeing as COD4 has collision detection players cannot all inhabit the same physical space. There must therefore be an algorithm to place people in a group in the vicinity of the start marker. The algorithm could go as follows:
1. first player to join starts on start marker
2. second player to join starts at a random position a fixed radius R from marker
3. subsequent players start at random position on the circle of radius R
4. if a player is too close to any other player radius R is expanded
5. repeat until all players positioned
Now, this algorithm appears innocuous. But now consider this: players with different speeds of PC and latencies to the server will be ready consistently at different times. People with the fastest machines and the lowest pings will nearly always be placed dead on the marker (green), people with slower machines could be placed much further out, either at the front of the group, right at the back, or at one of the sides (orange). Well, ok this is not quite fair, but statistically it should be fair, as everybody should, averaged over many games have the same distance to run.
Wrong – it is unfair. If you have a fast PC and are consistently in the centre of the group you will never be first in a race to reach the best position, so you will never chalk up those opening kills in your name. Someone with a slower machine may not always be at the front, but at least he has a chance of being there. It may only take one game in a series of 10 where you are first off the line and then if you are a skilled player, you are guaranteed to boost your kill stats with a good opener. The more devious player might deliberately modify his latency or load process to exploit this neo-tactic, and then bring his latency back to optimal afterwards.
Now, like most neo-tactics they are a pain to prove experimentally. It requires so many observations, and there are so many variables to hold constant which is hard to do when you don’t have 30 patient experimental subjects at your disposal. Without the source of the game, it requires both time and patience to prove or disprove this theory. It needs a smart student to dream up an elegant experiment to test this, a modder to dig out the relevant algorithm if it is encoded in the game scripting language rather than deep in the C++ core, or a very open game dev studio (cold day in hell!).
I hope you have enjoyed this example: it builds towards my hypothesis that in any sort of game which is finely balanced, the smallest inadequacies in the underlying algorithms can surface and show their effect on the leaderboard, be they used unknowingly or with malice aforethought.