(Originally posted in our discussion forums, minor corrections and additions)
In the early universe, many monkeys were loaded onto “spaceship playnet”. These monkeys were chosen if they could (a) inhale, (b) exhale previous inhalation, (c) cause a construct of fabric and metal to rise by aprox 98f in temperature by placing themselves upon it.
Although doctrine assigned each monkey a role in the construction of the universe, it transpired that infact some of their construction must overlap and preferably fit together. The simians were displeased, they had not signed on for that.
Disillusioned that The Powers could so obviously overlook his striking red display buttocks, that their uniquely scented dung was not the decor of choice of Those That Rule, each monkey made his own bed in which to lie, a hole in which to poo. Except one. Who turned out to have evolved into a bizzare ape adapted for bipedal locomotion.
This peculiar ape-descendant was good, but when he looked in each hole what he found was feces. Still, he managed to use the holes to fashion a crude fusion reactor and flame-throwing truck – erm, I mean set of game servers. And lo, they operated (most of the time) and the universe was formed (although it was not available much during the first few moments).
But hark – the toll on such a monkey of spending so much time out of his tree was great and The Powers saw that he was in need of companionship. The mighty Lord Mo took from the Holy Barbeque a rib and shaped it into Eve (not EVE), unto which Rickb gave a glowing pink moniker “kfsone”. And so Eve accepted the position but decided not to be Vandal’s bitch and changed his moniker to “KFS1” and ditched the pink.
Eventually the first monkey-ape-man dude passed on into the after life, the hallowed halls of SCA before drifting into the netherworld of Buena Vista Interactive, and KFS1 was left alone with a universe that appeared to be comprised of pits dug by monkeys and bewalled with feces that had been dried and cemented into place so that It Sort Of Worked.
The last of these holes it the Spawning System. When I say “spawning system” you think of a button you click that launches you into the world.
Unfortunately, it’s not that simple; its actually quite a complex system spread out across the various server processes and it even represents a big chunk of our network stack. I’ve been very unkind and very unfair and sort of wildly inaccurate (but only sort of) in my satirical depiction of how it came to be; there are actually reasons for some of it, tho no rhyme nor reason to which bits and none of which are valid to today or tomorrow’s game – and all of which are slightly obstructive the way the Earth is “slightly obstructive” to one’s falling from Texas to China.
Each measure of complexity in the current spawning system requires 3-4 other measures of complexity to support it and integrate it into the much simpler mechanics of the rest of the game.
The molten iron core of this body of obstacle is the game’s own version of the Quantum vs Newtonian physics dilemma – in that in order to be in the game world you have to temporarily be removed from the game servers; e=mc2.
It might sound like replacing the Old Testament with the New – a significant body of work still – but actually its simpler still: replace the whole shebang with “Shoot one-another”.
It’d take me far too long to explain why and how but this is actually the obstacle between here and dynamic missions: the ability to change, create, join and leave missions while spawned.
If you’re thinking “that sounds like a lot of nonsense” – you’re not far off the mark. With all of the work I’ve done in the last 2 years, we’re about perfectly placed to drop the current suite of systems that make it possible to spawn and despawn, all their complex ties into the update system, the strat system, the mission system, the chat host, the server cluster and the network stack and introduce a simple system that causes vehicles to be instanced when you spawn and hands you control of yours.
In terms of the game servers it is the last big wall that needs replacing with a doorway, behind which is a whole bunch of development tracks we’ve been chomping at the bit to work on; and it’s what I’m hoping (when I’m done writing specs & task-tickets) will be approved for the first few weeks of the 1.28 dev cycle.
Thanks for reading