Story So Far
Life, evolution and survival of the fittest - games that nature's been playing for quite a long time now. And true to life, modern society is into games too, namely survival, war, and empire building, although the latter two tend to be restricted to players with deep pockets. For those without such good fortune, there's chess, undoubtedly one if the greatest games of the last millenium.
Only in the last century have the larger scale games begun to creak the board at its seams. The Great War was perhaps not so great after all, and the one after that made us realize that we might be in danger of ruining the board itself. What we've learned is that more sophisticated weapons create the need for a greater understanding of war itself, if wars are indeed to continue.
But battlefield simulation require more than a chess board, more even than counters and a scale model…. "Hey Babbage! You couldn't help figure out how to calculate missile trajectories, could you?". "Great!" And like that, the technology for military simulations began to evolve faster than the weapons themselves.
Do I hear complaints that games, like checkers or twister, are fun family pasttimes, whereas war is horrible and real and certainly not a game? The distinction is probably more a matter of ethics than simply whether counters are used instead of people. But, up until now I have used the term 'game' in its broadest sense, meaning any activity involving rules and objectives (implicit or deliberate) - and war is one of mankind's key such activities, whether or not you'd like to ban it.
So, from now on I'll revert to the cuter variation and use "game" to mean any simulation of a rule-based activity, whether from the real world or an abstract one. Yup, from now on games are indeed just dice and counters. What they represent we'll leave to the anthropologists, though I expect it'll still be hard to avoid noticing the strange coincidence that so many games have a warfare aspect to them.…
The last century has seen board games reach the limitations of cardboard and plastic: Scrabble, Risk, Monopoly, Mouse Trap, Haunted House, Operation, etc. Even pinball games have reached their ceiling in terms of sophistication with Williams' Revenge From Mars and Star Wars: Episode I pinball machines.
But back to the computer which, like the Pied Piper of Hamelin, is leading all games onto the ultimate, flexible platform that is the PC (OK, console too). We've seen them evolve over the last few decades from Hunt the Wumpus to Quake, Night Driver to Wipeout, Adventure to Asheron's Call, and Empire to Age of Empires. And there are of course the myriad of entirely original computer games which have no lineage, but are always difficult to cite unless you believe their publicity blurb. I won't risk any citations here… (oh, OK, Marble Madness? Tetris?).
Just where gaming - or more specifically, interactive entertainment - is going is one of the fundamental questions I shall be attempting to examine in this article - though there'll be a lot of tangential discussion too, no doubt.
I remember how computer games used to work in the last century. Those were the bad old days when they were single player by default. And even when there were multi-player games, few people ever had the time, let alone the technology, to link up to a multiplayer session. Sure, there were places on the high street, cyber cafés, etc. where you could play Quake and other LAN optimized multiplayer games. But multiplayer games seemed to be the preserve of people with time and equipment on their hands: kids, students, and staff in games companies (only the play-testers though ;-) ).
It was only in the very last years of the twentieth century that Internet based multiplayer games showed the slightest hint of becoming the primary form of entertainment for the 21st century.
But, you can't beat a good movie, and no-one will have time for multiplayer games, let alone a single player one… right? Bunch of hogwash!
Yeah, it'll be just more of the same over the next century. Better movies, high definition TVs for home viewing of HD-DVDs. Multiplayer games stabilize at around the thirty-two player mark. Diablo, Ultima Online, Asheron's Call, EverQuest, etc. gradually decline in popularity once thirty-two player games become competitive team sports and end up in the Olympics.
Aw, come on, you don't really believe that do you?
Check out "The Matrix." This movie's premise was a computer simulating reality so well, that the millions of players held by it didn't realize they were playing a game. Now if we ignore the fact that a few characters were trying to undermine the game (go Keanu!), all those players that were unaware they were held by 'the Matrix' didn't seem to find the game that abhorrent. Because they didn't know any better! OK, OK. My point is that here is an example of a game that billions of players are spending their entire lives playing.
OK it's only a movie - it means nothing. But how do we know we're not playing it now? Real life could be a game, and I think you'd agree that even if you were told it was a game, you'd probably opt to continue playing it. The only people that get bored of this game are those who commit suicide and quit the game of life early. So, as games go, it's pretty popular, even if you do get dealt a lousy hand. Ooops! I said I'd stick to games being dice and counters, didn't I?
So when we talk about 'Multiplayer', are we talking thirty-two players, or are we talking four billion? Perhaps it's somewhere in between, like sixty-four thousand? Who knows? Who cares? The answer is: we don't know. But, if I were you I wouldn't join the ranks of those who doubt we'll ever need more than five computers world-wide, or that human beings can tolerate speeds faster than 29 miles an hour, or that anyone needs more than 640K RAM. Dare I mention IPv6?
Questions to Ponder
There are a load of questions we need answered if we're going to get much of a handle on the future of gaming. I doubt I'm asking all the most important ones, and I won't even attempt to answer some of the ones I do ask, but here's some I've come up with so far:
- Just where is the 'game' going? Is interactive entertainment really the primary entertainment form of the next millennium? Are games just going to get better, or is something radical going to happen?
- And the essence of the game - What is it? Why do we play it? What makes a game fun?
- Where are the players going? Are they always going to be happy buying "better than ever" World Cup Soccer 2010 and the "now you can smell the rubber" Formula I Racer!?
- What do players look for in terms of an opponent? Are they into artificial or real opponents- and how will they tell anyway?
- The number of players - is this a social thing? How does it work?
- Where's the technology going? Maybe games will be technology led, perhaps they always have been? The trends are certainly ever upwards: computer power, network capacity, leisure time - is there no end to them?
- Who's going to make the games of the future? Perhaps it'll be like web sites and everyone will create their own game worlds?
- What about the environment and social conditions - these affect the games we play - don't they? Perhaps games are hedonism in another form, and a sign that modern civilization is on the brink of collapse. Or are we just going to turn into a civilization that spends all its time creating games for each other?
Cyberspace in the 21st Century
Which questions will I address? Well, this article, though it may just be a taster, is the first in a series of articles describing the way I see interactive entertainment developing over the next century. I will be placing particular emphasis on scalable, networked interactive entertainment, which is where an unlimited number of simultaneous participants are supported, as this is where I see the future going. In other words: massive multiplayer games for everyone with Internet access - at the same time. There! My cards are on the table.
You want more of my cards? OK, having been in software engineering since the seventies, I've seen games technology progress from text-based Adventure and other MUDs through the whole gauntlet of arcades games, to Quake. It didn't take a lot of imagination to combine multiplayer games with graphics - even a few decades ago. I'm sure there are many of you who, like myself, considered doing so way back then. It's rare though, that one gets any opportunity to work on such technology. However, there have been and will be enough lucky people working on this problem around the planet, that the massive multiplayer game will eventually surface. And by 'massive', I'm talking about games with the same number of simultaneous players as there are people cruising the web while you read this. Not that all the players will be crammed into the same subterranean arena, or dispersed across a multitude of isolated mini-arenas. No, something in between, just like real life. Sparse rural communities to crowded cities - anyone can potentially bump into anyone else.
Have you noticed something about graphics and games technology? They progress together, don't they? Yet you try telling your publisher that software rendering engines are passé, or that perhaps we don't need another Doom clone, or racing car simulator. Some companies push the envelope, bleeding on the edge, while others follow with their picnic tables and admire the view, patting themselves on the back at their courage for living so dangerously. Yup, it's the way it's been and will always be - can't do anything about it, but at least we can point it out to those prepared to recognize it.
The 3D rendering engines are being subsumed into hardware. Geometry is going the same way, and collision detection can't be far behind. Physical realism or 'Physics' is being tackled by at least one company. Scene management technology is being addressed by products such as Motivate and NeMo. Even AI gets pretty good treatment in such games as Creatures. One last piece of the technological jigsaw is required to complete the foundations of cyberspace. That is the networking.
Yes, there is DirectPlay, along with other 3rd party systems designed to make multiplayer games straightforward, but I'd say we are now at the same stage in terms of networking technology as we were thirty years ago in rendering engines. We know a lot of the theory, but not much of it has been incorporated into actual systems. Bits of it have been implemented in various university research projects and high budget military simulators (US DoD spent about $10 billion per annum over the last decade or two - don't quote me or they'll be after me). Some of this has filtered down into off-the-shelf components, but there is no single system that has been engineered from the ground up to incorporate all the latest principles. Of course, once this missing piece of the networked games engine has been completed, one still has to build the jigsaw, but that's a job big enough for the entire industry.
So, if you're interested in this new 'undiscovered country' of interactive entertainment technology, then read on. Those who aren't games technologists or those that don't want games with more than thirty-two players need not continue. I'm not going to waste anyone's time talking about the next two years, or those multiplayer games currently in development. I'm talking about virtual worlds on the Gibsonesque scale and the engines needed to run them.
Terms of Reference
Cyberspace is effectively the Internet, and it's continuously evolving (as if you didn't know already). It's where information is stored, exchanged, produced, and presented in a useful fashion to those interested in viewing and manipulating it. Alongside communication and reference, one of its key uses is entertainment. This is in either a passive form or an interactive one. More familiar terms for these are 'movie' and 'game'. (Of course, the former requires no more from the audience than to veg out in their armchairs, whereas the latter requires some brain-ache and repetitive strain injury.) The audiences have typically been large and co-located for movies and small (if not singular) and distributed across several locations for games. How the audience tends to manifest itself is largely irrelevant; the more important thing is the nature of the story.
In movies the story has been predefined. In games, only the setting has been defined, and the story is determined by the players' actions. A game, therefore, pulls the audience away from its 'fly on the wall' perspective and immerses it into the virtual world being presented. And as you know, a virtual world, or more properly a virtual universe, has to have its laws encoded into the game code, and not just the author's mind (but maybe one day). Computers have enabled us to define a virtual universe that can cope with unpredictable human nature. Though we must still limit the player to a set of actions to which we have encoded a universal response, at least until such time as a 'true AI' emerges to make the author's life a little easier.
There should be nothing radical or special about multiplayer games. Indeed, it is the game that supports only a single player which is the oddity. However, I'm not saying that playing a game alone is odd, just that the familiarity with the single player experience has really arisen from technical limitations and the hitherto poor connectivity of computers. Although it's not a very good analogy; in terms of sophistication, you could consider the virtual universe as being to the single player game, what the movie is to the book.
So, we come down to seeing that limitations of scale arise only out of technical limitations, and not those of the imagination. If a movie entertains ten people, then why not ten thousand? If a game works with a hundred players, why not a hundred thousand? For interactive entertainment to reach large audiences, it must overcome the technical scalability problems.
Perhaps I need an example here? OK, think Elite. But instead of one player, a hundred thousand players, each trading alien artefacts, outwitting the stellar police, and zapping Thargoids from one end of the galaxy to the other. (Police and Thargoids can be human controlled too.) The biggest problem is not the concept but the implementation - scaling the engine up…
The nature of stories and games is really just a reflection of our own and other people's lives. They depict and represent alternate lives, but concentrated down to the more entertaining essentials, with all the banalities of real life removed. Just as soap operas don't show hours of actors sleeping in darkness, so games dispense with a large degree of tedium. No-one wants to wait real-time timescales when it comes to their castle being built in their RTS game. Nevertheless, stories and games, however abstract, can be thought of as models of alternate lives. In this sense real-life is the ultimate game, in which we are all interacting and hopefully, entertained (getting back to the Matrix there). Similar to the resonance between 'life' and 'game', the notions of 'living' and 'playing' are also essentially the same thing, it's just that one has consequences in the real world and one doesn't.
Yes, perhaps one day, there will be a VR game so entertaining that its audience will be happy for it to operate in the same timescale as real life, banalities included. Though before then we'll have to come to terms with whether we really should end up with a dystopia such as presented in "The Matrix." Bored with that one already? How about ExistenZ? Hmmn, not such a good comparison.
So in the early part of this millennium at least, we'll have enough on our plate simply producing the concentrated forms of alternative lives. This means developing pieces of interactive entertainment that allow arbitrarily sized audiences to play around in a virtual playpen, with an inevitably restricted set of actions available.
This is not ten thousand games of Monopoly, nor thousand player Quake, but ten thousand planets, in a Star Trek universe, each of which is running ten thousand player games of Age of Empires, StarCraft, X-Wing vs Tie Fighter, etc. Well, not exactly, but you get the idea. Persistent virtual universes, where it is the players that rise and fall, not the game that begins and ends. You see, on the other side of the looking glass it is the worlds that are the true constants, and the players that are ephemeral. But, why persistent? Well, when you scale a virtual world up to cater for an unlimited number of simultaneous players then there simply isn't time to start and stop it. Don't believe me? Have a go at suspending the Web for maintenance - see how far you get.
Multiplayer Technology Today
I don't want to spend much time discussing the current approaches, but I'll include something about them if only for completeness. I expect pragmatism and games companies desiring to get games out by Christmas 'this year' rather than 'five years hence' are the essential reasons why massive multiplayer games are not yet really with us. And why sell a hundred player game if a ten player game sells just as well?
General Techniques. All multiplayer games based on networked computers will adopt an approach that is either about communicating input, or communicating the game model. A combination of these two can also be used where with some effort the 'need to know' relationships between players have been computed, typically based on their proximity with each other in the game world.
Note that in the following lists 'user input' can be communicated in its raw form or can be processed into higher level forms (possibly within the context of the game model).
Peer to Peer. This approach is where each computer runs the game model, but communicates with its peers in order to synchronise and ensure consistency. Three variations I can think of off the cuff:
computer publishes its user's input to all others
input is collected by a central point and then republished to subscribers
- A master model collects input and publishes model deltas
Most early multiplayer games adopt one of these approaches.
Client/Server. This approach is where only a single server runs the game model and all user input is fed into this. Each client performs only enough computation to present the user's view of the scene. However, it may be that there is little difference between the client software that models the local scene and the server software that models the entire game model, i.e. it's only the nature of the data that's different. Another selection of flavors that this approach may come in:
download compressed frames (MPEG say) or scene graph deltas (high
running scene modellers download scene changes
- Clients running scene modellers periodically download whole scene states followed by regular updates
Multi-Server. Multiple servers run the game model, replication being co-ordinated by a super server. Sometimes replication is not performed, instead each server runs an independent portion of the game model and services only those players currently located in that portion.
More recent games such as the RPGs, namely: Ultima Online, EverQuest, Meridian 59, Asheron's Call, and Diablo, will probably be using client/server or multi-server approaches.
Distributed System. The distributed systems approach is where a system of replication is used which doesn't make any distinction between participating computers. In effect, all computers are simultaneously behaving as peer, client, and server, depending upon their relationship with each other. Furthermore these relationships may be continuously changing, and the proportion of the model that each computer stores and processes will also change according to its need and capacity.
There is not necessarily any particular computer that needs to be ultimate control or in full possession of the entire game model at any one moment. A true distributed system is a fully collaborative effort, shared among all. However, it's still important that at some point, this system presents itself to the game application as though it existed upon a single computer - this is termed 'transparency'.
Names to plug into your search engines are: InVerse (Sandeep Singhal), Bamboo (Kent Watsen), and HLA - High Level Architecture (Judith Dahmann). Don't think that these are all similar, or even paragons of distributed systems, rather just take them as a tiny sample of the variety of approaches that can be adopted, including assorted elements of brute force, pragmatism, and elegance.
I'll not be exploring these or any other particular approaches. I'll examine the essential tasks of any distributed system that is to form the basis of a massive multiplayer games engine. If you want real-world facts in the meantime, checking out the above might be somewhere to start.
Scalable Today - Here Tomorrow
What people are only just beginning to appreciate, is how differently one has to approach the design and implementation of global scale systems. The Web is one of the best known and, along with e-mail, represent effective systems. This is due in large part to the fact that they work whatever the size of the network and number of users that they must support (OK, with a bit of tweaking over the years). Global scale systems are unlikely to succeed if they are designed for a specific level of demand or resource availability. This is despite the attraction of developing a system optimised for a specific environment and usage, given it will tend to outperform a system that can adapt to any environment. The point to note is that the latter only needs to be written once.
When a system has to reach a global scale, you don't want to rewrite it each time it has to cope with another order of magnitude in scale. The system has to look after itself.
The Internet, being a high-speed, natural selection environment (for companies if nothing else) will tend to select systems that get adopted most rapidly. A system that works as well for a million as well as for a hundred players and doesn't require another 100 database specialists on the development team, or investment in individual servers all over the planet, will leapfrog one that does.
If you develop a system that grinds to a halt once 10,000 players participate, then while you're fixing the problem, you'll be overtaken by one that grinds to a halt at 100,000. Both will be overtaken by a system that scales to any number. And any system that requires significant expenditure upon infrastructure in linear proportion to its scale will become unaffordable.
For example, imagine having to cough up a few grand for a new server every time you sell another thousand copies of your game. No, don't bother, plenty of companies think this is reasonable, so I'm wasting bytes trying to convince you otherwise. I'll just leave it that you have to start designing systems like viruses or worms, i.e. totally autonomous and self-organizing. You want to write a game and that's it. No hosting deals with ISPs, or administrating a load of servers. Beware the vested interests that will try to maintain the multi-server approach - there's a lot of money in it.
From another perspective, if your game engine isn't scalable it will be as future-proof as storing a year in two digits. Yup, 'Scalable Systems' is the next paradigm shift after 'Object Orientation', and funnily enough it's also alliterative.
The Next Os War
And now for something completely different!
Remember the first OS War? That ancient struggle to obtain supremacy in the bootstrap disks and ROM chips of the business machines of the seventies, and subsequently revisited in the form of the GUI-WIMP wars? Well, you ain't seen nothing yet.
The first operating system war was all about becoming established as the de facto, generalized model of a stand-alone computer - presenting a consistent face to the user and the application, and latterly a consistent face to the firmware supporting it.
The next OS war (if you believe there will be one) will be all about becoming established as the de facto, generalized model of the Internet as a single computing resource - presenting a consistent face to the user and the application, and of course to the supporting software on each connected computer.
The Web is not it. Well, how can it be? How could we arrive at the perfect system so soon? OK, this is a rather spurious basis upon which to argue the point, but the Web, or HTTP, HTML, and even XML are pretty new arrivals and have simply had the field largely to themselves. It's like MS-DOS and the IBM PC. Just because it's popular, it doesn't make it the best, but then something like Windows will come along as something better and despite the uphill struggle that it will undoubtedly face, it will eventually supersede.
So, I will place my bets that one day there will be a new protocol, or as I would say, a "Distributed Internet Operating System", that will facilitate the equitable pooling and exploitation of all resources and information around the world. Read some science fiction, Greg Egan say, for examples of developing this (old) idea.
Even today, everyone brings resources to the Internet, typically their computer, its storage, processing, and the bandwidth of a network connection to it. Everyone also makes demands upon these, and the balance between provision and consumption is continuously changing. I'd say there is a vacancy for a DIOS that does this transparently.
Yeah, right on brother, but what does this have to do with games? Well, I have a hunch that the most likely place in which to look for a suitable candidate for a DIOS will be in the field of interactive entertainment technology, specifically massive multiplayer games and the engines that support them. The fittest ones to survive will be scalable, distributed systems, and I suspect the fittest will also be the most intensively used examples of such things. I have a feeling that the entertainment industry will make more intensive use of distributed systems than financial, military, and other industries.
So, not only are massive multiplayer games going to be where games, per se, are going. And not only will massive multiplayer games be the primary form of entertainment this century. They will also end up defining the future of the Internet itself. Or it's all hogwash - as an alternative proponent exclaimed earlier.
Where To Next?
All I've done so far is to take a brief look at the past and the present, and then gazed into my crystal ball and spouted some nonsense about billion player games and a whacked out idea about another OS war. You don't have to buy any of it really - and you probably won't. However,some of you may have a bit of interest in multiplayer games technology, and might wonder if any harebrained ideas about developing a game engine to support billions, could possibly be relevant to your next project, probably with more modest numbers in mind…
See you next month!
Oh yes, don't just take my word for it, read some books and get a second opinion.
For the hard core coders out there who can't wait to roll their sleeves up, I suggest a good grounding could be obtained from the following textbook:
Coulouris, George, et al. Distributed Systems: Concepts and Design. 2nd ed. Harlow, England: Addison-Wesley Publishing Co., 1994.
If you're a generalist and want to know about the technical issues, but would appreciate things at a higher level, how about:
Singhal, Sandeep; Zyda, Michael. Networked Virtual Environments: Design and Implementation. New York, New York: ACM Press - SIGGRAPH Series, 1999.
If you're more the futurist and just want to keep tabs on where it's all going, try this one:
Dodsworth Jr, Clark. Digital Illusion: Entertaining the Future with High Technology. New York, New York: ACM Press - SIGGRAPH Series, 1998.
Crosbie Fitch is currently the Senior Systems Engineer at Pepper's Ghost Productions, which he joined in 1997 to develop a network games engine, reluctantly leaving special effects house Cinesite. In a deft twist of fate, PGP shortly decided that a radical change of direction away from games, toward an animated TV series was in order, and so Crosbie found himself writing plug-ins for Discreet Max - plus ça change... He can be reached at [email protected].