One of the most compelling features of many games set in online virtual worlds is that the game world is persistent. That is, life in the game world goes on, even when the player is not there. When the player returns to the world, their character and belongings are as they were when the player left the world, but the state of the world itself will have moved on – buildings may have been constructed, monsters killed, and so on. Any artefacts left by player in a public area of the game when they went offline may have been moved or taken by other players whose characters are still roaming the virtual world.
At a technical level, what this means is that the game world must always be available – the computer servers that run the game must be online 24 hours a day, 365 days a year, keeping the virtual world running. Even when there is no-one in world, there may be elements of the game physics that require some computation to be carried out.
To get an idea of what’s involved in developing the infrastructure that supports a persistent virtual world, read the article Massively multiplayer online games, Part 1: A performance-based approach to sizing infrastructure on the IBM developerWorks website. Don’t worry if you don’t understand all the terminology – the article was written for an audience experienced in the design of large computer systems. There is a still a lot that you can learn from it as a less technical reader. For example, as you read the article, try to answer the following questions:
- what does the author mean by the phrase “game platform”? What are the dominant game platforms for Massively Multiplayer Online Games (MMOGs)?
- what strategies do developers use to cope with large numbers of players, particularly when they come from different areas of the world, speak different languages, and so on?
- how does the design of the EVE online game compare with that of most MMOGs?
- what is the “response time” of a game, and how is it likely to affect a user’s experience of the game?
- what factors are likely to impact on the performance of the game? How might the design of the game’s computing infrastructure address these issues?
- the article suggests designing the infrastructure using a “tiered” approach – what tiered levels are suggested, and what does each one do?
- what are ‘bottlenecks’ and how are they likely to affect the performance of the game?
- what is “latency” and how is it likely to be perceived by a game player? What elements of the system design are likely to affect the latency of the game?
Phew… you maybe found that quite a challenging exercise? But hopefully a worthwhile one? When reading a document like that, it’s always worth trying to ask yourself questions about what’s being said to further your understanding of it; and if there’s jargon you don’t understand – don’t worry. Try to read the document “for sense” the first time through. You can always go back to the document after looking up the terms you don’t understand, or asking for clarification from someone who may know via your social network…
If you did answer the questions, and maybe even jotted down a few notes, trying writing a blog post (500-1000 words or so – and link back here!;-) to summarise the original article and communicate some of the high level issues and considerations involved in designing the computational infrastructure for an MMOG. And if there’s anything you didn’t understand, try posting a comment back here and then keep an eye on any follow up replies…