| |
|
|
||||
![]() |
||||||
| |
|
|||||
|
Cyberspace
in the 21st Century: The point I've been leading up to is that the quality of the platform, whether hardware gameconsole or MMOG software infrastructure, doesn't have to be your problem, it can be someone else's, and perhaps even the whole world's problem rather than one or two manufacturers, middleware developers, or software houses. So let's just get out of the mindset where it's up to you, the games developer, to worry about offering the player a continuous glitch-free infrastructure and a guaranteed tear-free experience just focus on the content, the essence of the game. Of course,
the infrastructure's very interesting stuff and I'm sure many of you will
want to get involved in one or more Open Source projects (middleware or
otherwise) alongside producing games as an employee. Here's a link to
some form letters that might help you transition your occupational status
from employee to employee and Open Source worker: http://www.sage-au.org.au/osda.
Some enlightened employers might even see key benefits to you working
on Open Source projects as part of your employment. I'm not
simply saying, just develop the content to the games developer. What I'm
saying specifically is wear two hats: one as a developer of proprietary
games content, and the other as a developer of Open Source infrastructure.
This way you get to do the same cool things as always, but you don't get
confused into selling the technology in with the game. In any case, as
long as you are paid the same, and get the same kudos, what's the difference?
Oh, yeah
bye, bye technology licensing deals crocodile tears
to that. And running
away from big brother Speaking
of which, I've always been surprised at how willing some chat services
have been to take on the responsibility for ensuring that users behave
themselves. Sure, there's 'value added' benefit in selling a chat service
that's safe for the family (if that's a key market advantage), but if
this gets extended via UO/AC/EQ into cyberspace then players are going
to end up spending the bulk of their money paying to be policed - and
much less on the entertainment (the fun bit). I'm not saying cyberpolicing
is a bad thing, or even that it's not going to become a lucrative business,
just that, again, it's not exactly the raison d'être of games development. Cyberspace
will be as big as the Web. And just as policing the Web is a separate
issue from developing content for it, the same will apply to cyberspace.
For example, you might produce "Spaghetti Western World". One
universe based on this theme could be un-policed. Another one could be
policed. Why? To make sure players don't get up to any naughty business,
like exchanging addresses for secret rendezvous, or details of cheap digital
TV projectors legit, honest guy. If you're looking for revenue
models, perhaps in this case, it is that the un-policed version is free. Not that
Kind of Security So there
we are. I've removed all the games developer's stability and security
worries in a few paragraphs. What a doddle eh?! Too fast for you? Ok, so really,
I've just passed the burden for the infrastructure of cyberspace onto
the Open Source community, and cyber-policing onto society. You, however,
now wear two hats: the first as a game developer for a respectable game
development company, the second as an Open Source worker contributing
to the development of cyberspace (when you get a break from helping your
landlady carry out her garbage). I'll be
dealing with issues about producing content in a subsequent article -
so put your first hat away for next time. The rest of this article requires
the second hat (yeah, it might be red, at that). Stability
and Security Continuing
with the development of cyberspace as a distributed system of hierarchically
related nodes, let's explore how we go about keeping such a system working,
i.e. stable in the presence of failure and secure against attack. As far as
stability is concerned we'll first look at how we ensure the system remains
stable and balanced in the absence of failure, but under arbitrary loading
and stress, and second how we can ensure the system is not critically
perturbed in the presence of expected failure. As I've indicated earlier, it's not critical to the system (or its ability to provide entertainment) that it addresses issues of player behavior (lawful, socially acceptable), data protection (privacy, intellectual property), and commercial viability (business and revenue models), and so this area will not be much explored in this or the next article. These issues may of course be addressed by anyone who wants to perhaps if a commercial opportunity seems apparent? Stability A system
is stable if it has the ability to maintain satisfactory operation (equilibrium)
even in the face of destabilizing forces or events. Some of
the more obvious destabilizing things our distributed system has to put
up with will be of the failure kind. However, there is also the workload
aspect, i.e. stability in terms of load balancing across the various resources
it uses: processing, storage, and bandwidth. Let's look at load balancing
first. I've touched upon it in previous articles, but let's see if I can
shed a little more light on load balancing here. Load
Balancing Now, you
can get yourself into all sorts of difficulties if you start making the
load-balancing bit of a system too complicated because by being part of
the system it has to address the complex behavior generated by its own
complex balancing procedures. A bit of a Heisenberg idea here, i.e. an
unbalanced system (without a load balancing component) may seem a doddle
to balance, but once you introduce an extra balancing component, you no
longer have the simple system that you started with. So, if you do address
load balancing it's probably best to do it in a simple way and let PhD
students burn their young brains out coming up with refinements (whether
they add complexity or not). So the approach
I'd suggest is to use a heuristic approach, i.e. make some intelligent
guesses, tweak it until it works and don't worry about why it works (unless
someone pays you to find out). This is just like hacking, but with a veneer
of scientific respectability. Metrics What are
the sorts of things we need to measure, and what kinds of measurements
are likely to be useful? We can quickly suggest the big three resources:
storage, processing and communication. We'll be interested in qualitative
aspects as well as quantitative ones not just how much, but how
good. The other things we need to measure will relate to the concepts
that the system introduces, i.e. relationships, responsibility, interest,
and objects. I've quickly created a few tables (one to eight) to give an idea of the sort of measurements we might make in a distributed modeling system.
You may
notice in tables one thru three that I've introduced the idea of integrity.
Sounds like it could be useful as a security measure of some sort, doesn't
it? Well, it can help towards that end, and when you see that an entirely
new concept reputation appears in table 8, you might begin to realize
its purpose. Well, I'll get on to that a bit later, but for now we just
need to appreciate that a variety of measurements need to be made simply
in order for the self-organizing nature of the system to operate. These
measurements become the foundation upon which the heuristics are based.
However, while we're talking about foundations, don't let that suggest
you should take these measurements as cast in stone. There may be others
that I haven't listed that may be more useful. Of course,
for entirely different purposes such as system monitoring, diagnostics,
interesting statistics, etc. there's a myriad of other measurements that
can be made, ______________________________________________________ |
||||||||||||||||||||||||||||||||||||||||||||
|
|