It's free to join Gamasutra!|Have a question? Want to know who runs this site? Here you go.|Targeting the game development market with your product or service? Get info on advertising here.||For altering your contact information or changing email subscription preferences.
Registered members can log in here.Back to the home page.

Search articles, jobs, buyers guide, and more.

by Crosbie Fitch
Gamasutra
March 13, 2000

Printer Friendly Version

Letters to the Editor:
Write a letter
View all letters


Features

 

Contents

Introduction

Clues to the Coming of Cyberspace

The Interconnectedness of All Things

Have We Got What It Takes to Produce Cyberspace?

The Interconnectedness of All Things

So we’ve identified the clues to its arrival. How about some indications of its very nature? Let’s try and get a grasp of cyberspace, what the thing is, or will be, indeed, for what we want it to be.

You know how in the Hitchhiker’s Guide to the Galaxy, it was explained that the entire universe could be extrapolated from a piece of fairy cake? Well, given enough computing power it’s quite plausible that this could be done – it’s just the word ‘enough’ that is the problem.

I like the similar, but more numerical idea of repeatedly rolling a die – eventually patterns will emerge in the numbers rolled, from which the rest of the universe can be extrapolated. This is given that, like the piece of fairy cake, everything influences the die in some way. The trouble is again one word: ‘eventually’. Such a time would probably not be far from the Restaurant at the End of the Universe.

For less fictional theories check out the EPR Paradox, which describes ‘spooky action at a distance’ – apparent ‘communication’ between particles at the quantum level, but across astronomically large distances. This is a little bit of evidence that particles are connected in some way, albeit currently unknowable. From this we can conclude that everything in the universe is in some way connected to everything else. This is what you might term the interconnectedness of all things.

You’re probably wondering what tangent I’ve gone off this time. Well, perhaps it this interconnectedness that enables the operation of the colossal simulator that runs our universe? Perhaps we might one day be able to harness this interconnectedness and bypass the need to transmit information via the tediously slow optical media we’re lumbered with today. On such a day the Internet would be able to dispense with optical fiber and use an instantaneous or zero latency backbone instead. Cyberspace as an alternate reality would then definitely be with us.

Until that time, and here is the point I’m making, we have to simulate our virtual universes by communicating across what might as well be wet bits of string strung between rusty tin cans. Yup you’ve got to face it: the Internet is an anachronistic pile of relays, punched cards and vacuum tubes when it comes to comparing it against what we’d really need to achieve seamless cyberspace.

Oh well, I don’t suppose we could have expected our task to be that easy.

Internet Pea Soup

Somehow we’re going to have to do the best we can with what we’ve got. The Internet isn’t perfect, but it’s getting better. From this simple conclusion, we can immediately deduce that any attempt at using the Internet as a foundation for cyberspace must firstly cope with imperfection, and secondly exploit increasing performance.

Talking of the Internet’s performance, at the level we’re interested in, little is reliable or particularly speedy. Yeah, yeah, people keep telling me that it’s getting better and that people will soon have thousands of channels of video on demand via their cable modem. But, I remain suspicious. Heck, I’ll even say skeptical!

Just like personal transport getting faster, and people traveling in increasingly large volumes, something just doesn’t seem to be improving that much. Roads get wider, cars get faster, but with higher traffic densities, it still takes just as long (if not longer) to get from one side of a city to the other. Even air travel, with the delays in traveling to and from the airport, check-in and other delays, can sometimes be similar to the equivalent train or coach journey time.

How long have we been waiting for our CPUs and graphics cards to be fast enough, our hard disks and memories to be large enough, and our web pages to download fast enough? It’s always a case of “Whoa! Wait until you see what they’re bringing out next year – it’ll blow your socks off!”, but the hit is transitory, it’s never enough and before you know it, you’re back waiting for the next ‘improvement’.

Things do get better, but something remains the same. Moore’s law plus Parkinson’s law (work expands to fill space) seem to add up to status quo. In other words, double the performance, double the workload, and you still get a 10 minute coffee break while you wait for that compile or render to complete.

In the case of the Internet, I strongly suspect that as fast as the network capacity is increased, so the volume of traffic will expand to exhaust it. The thing that remains the same is latency. The trip time, in other words.

You can apply this to other areas as well. I might also say, that frame rates in video games will always range between 20 to 30fps, packaged software will always arrive on between one and seven disks (or holo-cubes), and word-processors will always take a minute or so to print out your resume…

So I’m sorry to have to break this to you, but web pages will never download any quicker than they do today.

What a depressing thought eh? Well, think about it – while the Internet remains fundamentally hierarchical in its topology, and demand keeps pace with capacity, the same bottlenecks that cause delay today, will still be with us tomorrow. The solutions are either to string a piece of optic fiber between each pair of computers on the planet (a hell of a lot of spaghetti!), or to reduce demand, impose tolls say.

Design for High Latency

In the face of performance meeting workload, the best you can ever do to increase latency is to improve the efficiency with which the available resources are used, and this invariably means improving your understanding of the nature of those resources.

So, in the case of the Internet, you cannot treat it like a reliable LAN and expect to use it efficiently. If you treat the Internet like a LAN in the hope that it will soon be as good as a LAN, it’s not much different than writing a flight simulator (including renderer) in interpreted BASIC in the hope that by the time it’s finished computers will be fast enough to run it at a decent frame rate.

OK, so some of you will allow me faint praise for a few good points, but regard my pessimism as ultimately misguided. Moreover, I suspect that various network experts would be more forthright, and gently suggest that I’m actually wrong about the Internet, i.e. in the next ten years it will in fact easily be able to support permanently online, retinally scanning, holographic video-phones and haptic body suits worn by the population of the entire planet (dogs and other pets included). Conventional system architectures are just fine thanks.

Blimey! Well, that’s a few terabytes per second of bandwidth per carbon unit there, and I’ll be very impressed if supply can so dramatically outpace demand.

On the other hand, maybe it might just be a good precaution to make more efficient use of the Internet, just on the off-chance that latency doesn’t improve. Of course, even if it does improve, then a more efficient utilization would fully exploit that improvement.

You just can’t lose can you? Come on, abandon those secure and nice, comfy servers, put down your reliable protocols. Let’s get down to the smelly, leaky sewers of UDP and see if we can make better use of them directly.

Making the Best Out of a Bad Situation

Confucius would probably have a few words to say about how games have to be written in harmony with the inherently flaky nature of the Internet, instead of stubbornly demanding 100% reliability from an intermediate layer. In protocol terms, that’s “Use UDP, and don’t use TCP”. But then, it’s always been a case of using the right tool for the job.

To simulate a large scale virtual world across large numbers of computers, we need as much interconnectedness as we can get. And that means it is better to get low latency, noisy communication, than high latency, perfect communication. If you insist on any compromise then you must ensure that improving the quality of the communication has insignificant impact upon its latency requirements.

What do I mean by that last bit, ‘latency requirements’? Well, communication only needs to be timely, it doesn’t need to be any better than that. Some things you may need to know as soon as possible, some things you can wait a while for. Some things are important, some aren’t, some are in between. Some information has a limited lifespan, some information may always be potentially useful. When you’re communicating the state of play in a game to all its players, it’s typical that each player has specific and distinct information needs peculiar to its current situation. So, there’s rarely any point in communicating everything to everyone – though if you have a broadcast medium then sometimes you may end up sending something to everyone.

Not only must we understand the system upon which we build cyberspace, but we must also understand the sorts of cyberspace application that we hope to run.

A Global Venture

The global network is vast, and cyberspace will match it. Its enormous scale requires a complete paradigm shift in the way you approach the development of Internet based systems. I know I’m repeating myself here, but it is important to bear in mind several things when trying to understand the philosophy behind my descriptions of the technical issues over the next few months.

Scale   We have no control over the number of computers, the size of the network, or the workload that the system must support. The system must work just as well on two computers as it does on two billion.

Simplicity   We haven’t got forever to develop a global system. The software has to be easy to develop, self-contained, and self-supporting. It’s got to be developed by a small group of people (possibly dispersed) and so decomposition into small modules would be a good idea. It’s also got to be possible to develop it even whilst it’s running. This means continuous, live, automatic upgrade across every computer participating in cyberspace – zero administration.

Open   There’s little hope of retaining or defending any intellectual ownership, patents, licensing or distribution rights. The Open Source approach would appear to be an appropriate model for development.

Global and open collaboration also appears to be a good way of a system being widely adopted, and probably becoming a standard.

Content   ‘Content is the way to happiness’ seems to be the motto of the Web today, and it applies just as much to cyberspace. Vast capacity means vast content and vice versa. It also means far too much work for a single organization, let alone a single person. Just like the Web, cyberspace content will have to be created by the masses, and that means we have to produce good content creation tools.

I see no reason why a system cannot be developed to achieve all these ends. Although it may seem fairly ambitious to achieve real-time distribution of vast virtual worlds across billions of simultaneous participants, I hope I can convince you, eventually, that it’s not that big a deal really.

________________________________________________________

Have We Got What It Takes to Produce Cyberspace?


join | contact us | advertise | write | my profile
news | features | companies | jobs | resumes | education | product guide | projects | store



Copyright © 2003 CMP Media LLC

privacy policy
| terms of service