|
Features

Cyberspace
in the 21st Century:
Foundations
Cyberspace:
the next online revolution - massive multiplayer online games supporting
billions of players, simultaneously.
Youve
seen the Web. Almost the entire planet is wired up. Everyone uses e-mail
to talk to each other now, and even the telephone has changed. Were
going mobile, even wearable other services are arriving such as
SMS, WAP, I-Mode, etc. Millions of people even have their own web page.
We are all connected as equals in this world and we work and play together
in harmony. Its one big global village and were going to find
ever more sophisticated ways of telling each other stories and having
adventures together.
If
you thought the five digit figures for players connected to online games
was large scale, youre just seeing a MUD on steroids. Wait until
you see an online world as large as the web, unfettered by bottlenecks
caused by primitive client/server technology.
Everyone
is gradually waking up to the fact that for an application to be of this
global scale, it must be a distributed system. Consider file and resource
sharing facilities such as Napster and MojoNation, tools such as NetZ,
and games in development such as Atriarch. People are beginning to see
that the future is distributed. Not everyone believes that global scale
applications stopped with E-mail and the Web.
So,
if you want to move on from small scale online games such as Ultima
Online, Everquest and
Asherons
Call,
toward global scale virtual environments such as those depicted in movies
such as The
Matrix, Tron,
and Dark
City,
then youre going to have to wrap your brain around the distributed
systems approach.
In
a nutshell? Well, instead of sharing files as with Napster, youre
sharing the latest news concerning the state of the game model. Some of
this news is created by each player when they make changes to their environment,
but mostly each player subscribes to the news concerning that part of
the game world that theyre currently interested in. Each players
computer processes the portion of the game model they possess locally.
It will seem difficult to believe that this can work for real-time information
just as much as MP3 files, but then thats the old paradigm
shift raising its head again.
These
are the continuing propositions of Crosbie Fitch and his distributed systems
approach to online games
Establishing Some Ground Rules
Now, where were we? Oh yes, something about cyberspace. What the hell
is it, again? And how do we create it?
Cyberspace is a medium in which alternate realities or virtual universes
can be created. Therefore, if we're trying to create cyberspace then that
means we need to build a system that can model a virtual universe - one
typically similar to our own (otherwise we'd all go mad eh?).
For such a grand project it is important that its foundations are sound.
Whilst some might be inclined to create million player Doom, with
players blinking in and out of existence as they see fit, this tends to
give rise to a rather intermittent and frustrating experience (the monsters
simply hate it). Of course, teleportation may be a valid phenomenon in
some alternate realities, but it is better to ensure that such a feature
would be deliberate and not simply a consequence of technical compromise
or expediency.
In this installment I'll go over many of the key technical issues (as
opposed to the philosophical ones) that we must address before we can
embark upon the design or implementation of a system.
Bedrock
The lowest foundation we have is the hardware. This is the operating platform
on which we will be building our system. Discussing this may be rather
unexciting, but like good chemists we have to define our equipment just
to make absolutely sure we all know what we're dealing with.
Of an unknown and effectively unlimited number of players, every one of
them has a computer which is connected to a common network.
Each computer has unknown and varying amounts of CPU, RAM, and persistent
storage. However, it is considered to be highly reliable. When corruption
does occur it is likely to be instantly detected. As far as the computers
go we have to cope with anything from 4MHz PC/XTs connected via sneakernet
(human assisted floppy disk interchange), to quad Pentium super-servers
connected via optic fiber. In other words, we don't know Jack.
The network connection may only be available during play, and even when
it is available, has unknown latency, bandwidth, and reliability. The
minimum quality of service that is available is where only the integrity
of individual packets can be ascertained. Guarantees of their delivery,
ordering, and timeliness are rarely available, and where they are optional,
tend to have an impact upon effective latency and/or bandwidth.
We'll place some limits on the scalability we're aiming for - just to
make our lives a little easier. We'll say that the number of participating
computers on the network can vary from two to a billion. Any more we'll
leave to version 2. Note that a participating computer is not necessarily
servicing a player all the time.
Thus everyone who might want to play at some time joins the big cyberspace
party. They contribute varying amounts of resources (processing, storage,
communication) according to what they can afford, and in turn receive
a product enabled by the combination of these resources, which is an interactive
entertainment experience of a shared virtual world.
Given this rather vague and hazy platform, we just have to create the
product and ensure that it's all fair and everyone's happy. So without
further ado, let's try and figure out how to build it. What is the nature
of cyberspace?
The
Isolation of Cyberspace
|