For an online, multiplayer roleplaying game that should be able to support at least 1000 players per server instance, what sort of architecture should I use? I'd like to use Java or PHP as the server programming language (I know PHP is probably a poor choice). What sort of operating system, and server specs would I need for such a system?

  • The big question is how much traffic are you expecting from these 1000 players? Is the software browser based or it's own app? Browser based games usually require more load due to the nature of playing (refreshing the page multiple times per minute). – Andrew Williams May 27 '09 at 7:54
  • it would be a browser based java applet. thanks for asking :) – Click Upvote May 27 '09 at 7:57
  • so its unlikely that it would need refreshes – Click Upvote May 27 '09 at 7:57
  • 1
    HTML-based wouldn't need refreshes either. AJAX :-) – vartec May 27 '09 at 8:52

Best known example is EVE Online, which uses Stackless Python. They have written they own server.

Their architecture described:

Generally I recommend reading highscalability.com, specially the real world examples.

  • It's worth noting Eve's architecture is somewhat unusual in the MMO world: it has a single persistent world for 300,000+ users. But it's good reading, not the least because the other MMOs don't talk much about how their stuff works. – Nelson Aug 22 '09 at 17:28
  • Actually they are providing the illusion of a single persistent world. Individual star systems or clusters of them are handled by each server and when you hit the gates you are passed over to a different server. Basically old school zoneing. Their design is what makes it work since its not a huge bottle neck like other MMOs where 90% of your players are in 10% of your zones but instead the players are spread so each server only handles a few players. – Shial Aug 24 '09 at 18:52
  • CCP the developers of EVE have chosen not to shard the world (that is have multple unrelated servers), there is one world (two if you count China) and something you buy in one solar system can be transfered to another trivially. This is opposed to the Everquest or WoW model where each virtual world is independant of others you can not trivially transfer goods or characters between them, generally the shareded model has much lower player counts for any one virtual world - however it can be scaled by adding further virtual worlds. The number of servers the VW runs on is irrelevant. – Richard Slater Aug 27 '09 at 11:58

Since you're already doing Java, you might want to take a look at Sun's DarkStar project:

I don't know any commercial games using it (I believe it's still in development).

Your Answer

