FPS games involve frenetic real-time interaction which is why the games are often limited in the number of players that they can support. For peer to peer games, we are (probably) limited by the bandwidth in to the peers. For client-server games, we are limited by the bandwidth in to the server. For both cases, there is a potential O(N2) interaction between the players. For the peer-to-peer case you an ameliorate this over the peers themselves. For the client-server case, the server is responsible for this.
All of this begs the question who has been able to push the FPS genre to the maximum number of players? 32 or 64 players are common limits. Since early 2010, to our knowledge the FPS with the largest claimed players was MAG (Massive Action Game) written by Zipper Interactive, and published by SCEA. It claimed 256 players in two large teams, each of which structured hierarchically. Players could command large squads or platoons once they had risen up the ranks.
How this is achieved at a network level is not known; the server architecture is proprietary and subject to a patent. The maps of the game are quite large so we could expect the players to be quite spread out. We haven’t played the game (it is on the pile to play), but we expect that you are free to explore this map at will, and could, in principle achieve primary awareness of any other player by simple movement. The fact that we can expect players to be spread out suggests that the calculations could be spread over a small number of host processes. In fact it doesn’t seem unreasonable to suggest that today, with 4 core servers being very cheap, that you could run 256 on a blade.
Now though, via the Rock Paper Shotgun blog, we learnt about a new contender technology promises to bring 1000 player FPS encounters. Pikkotech is a middleware company that is explicitly advertising a multi-server solution for 1000 players. Their technology white paper talks about the problems of handing over object state between different servers; and server interaction regions. Their architecture promises to deal with many of the issues that we raised in Chapter 12. We’ll be interested to see how well such architectures can be made to scale.