About ] Mission ] Services ] Funding ] Opportunities ] Open Tools ] Crosbie's Stuff ]

Cyberspace Engineers

Engineering Cyberspace!

In Brief

 

Causality

Causality is not distributed. It only appears to be distributed because state is distributed.

Behaviour is based upon local state and affects local state. Some of that affected state may be 'owned' and will thus be passed on to all other interested players' computers where it will override their local state. Because the set of interested players will have very similar local state, they will all have modelled the local behaviour very similarly so any incoming overrides are likely to be very similar to the locally computed version.
Essentially, everyone models their local scene, publishes changes to the state that they own, and subscribes to changes of state they don't own. Thus the quality (lack of glitches) of the modelling will be determined by how good the connections are between players interested in the same state (scenery & locality). Given prioritisation to the more important modelling, the player's experience should degrade gracefully. Depending upon game design decisions, when the connectivity is particularly bad (sucks), a mist could gradually occlude the view of the scene. However, the important thing is that this approach scales, i.e. the better the connectivity, the higher the quality of the player's experience (I'm talking about it going from 'perfectly playable' to 'LAN-like' to 'Matrix', rather than from 'chug' to '5 fps').

Yes, there are alternative approaches. The DIS system for example is one of those that distributes causality (in as much as it can be done) by communicating events and taking great pains to maintain event ordering - even doing roll-back if critical events arrive out of order. This is a nightmare and arises out of an over-fixation on simulation correctness. You can imagine all the military guys getting hot under the collar if there's a chance the simulation might be in error and the blue team lost their tank due to a communications glitch. But all we have here is simply an arbitrary and non-scalable compromise between simulation rate and simulation accuracy. I say "Forget it! Let accuracy improve as the communications improve, do not cripple the design simply to get a tad more accuracy in the short-term."

Persistence

It’ll only take a small proportion of players to retain state on their computers in order to keep the game persistent. For example, if all the web sites on the planet suddenly had their hard disks crash, one could probably make a fair stab at reconstructing the information by using everyone’s web cache. At least, all the interesting stuff would be recoverable. And that is the point of the ‘interest’ concept, players have on their computers what is likely to be required (now or shortly) to model the player’s environs. This varies according to the player’s hard disk capacity (that they designate as being available – like a Web cache). Players who designate a huge wodge, will likely have quite a lot of (mostly old) world state on their drives. This is available to everyone, and someone will always have pretty recent state.

However, more than this, there is a hierarchical organisation of all these players’ computers (continuously changing), where the most recent state is continuously passed up the hierarchy. The few computers at the top will be the largest, most reliable, most continuously online, computers (the hierarchy organises itself to achieve this). Of course, we can always ensure there’s a farm of 486s with CD-RW drives permanently connected, but note these are only a kind of low-use backup reserve. They are not required for, and do not affect, overall system performance.

Interest tends also to act as a caching policy, a bit like ‘least recently used’. In other words, if none of 1,000,000 players aren’t interested in a scrap of litter that a player dropped in a remote forest five years ago, then it may just happen that it will be forgotten about, but it wouldn’t be too much of a tragedy. If we’re worried then we increase the capacity and reliability of our ‘persistence farm’, but I reckon, that there’d be plenty of philanthropic types, who’d take that task off our hands with no charge. In any case, I expect that the likes of search engine providers such as Google will be eager to step in, given the potential for other services they could offer, e.g. map making, history book making, etc. Remember also, that I’m proposing that we do not try to own the technology or infrastructure (99.9999% of the infrastructure will be provided by millions of players in any case).

As the numbers of players quickly mounts up, so will the volume of state that requires persistence. Luckily, the storage resources will also mount up to accommodate this. Players are inspired to improve their local resources for greater fidelity of experience, and as a side-effect this also improves things for everyone. What’s more, we don’t have to charge the player 10$/month for this – they buy it gladly.

When you consider just how vast the storage capacity for content (let alone state) will become, then you can see how much in demand services for producing that content will be. One company couldn’t hope to do it alone, but it could be a  market leader. Alternatively, a company could develop technology to automatically generate content (buildings, planets, spacecraft, castles, etc.) as necessary.

Many will be assuming that all massive multiplayer game producers will have to produce the content in-house.