Welcome to the Macroverse
17th April, 1999
Reality is dissolving.
The screen in front of you seems to become transparent, even as the walls around you fade away. Soon, you find yourself
adrift in the void; the place between worlds. Time has no meaning here. There's no up, no down. No big or small. You're sense of self dissolves,
reforms, dissolves again, reformes again... Reality bubbles, froth and foam surround you...
...and you find youself standing in a field dotted with
trees. It's quite hot again today, and the clouds seem to sit in the air, acting as if nothing
has happened. You look out over your campsite, strewn across the landscape from last night's storm, wondering if you'll every sort it out
again. Maybe you think you hear a dog barking, out there beyond the trees, but maybe it's just your imagination; this desolation plays
tricks on your mind. You're alone out here, and you're not really sure why. Maybe there's something you have to do, but you can't recall
what it is.
A gentle breeze picks up, cool, from the south. It blows against your tent, making the fly-screen door flap.
There is nothing beyond the field, the makeshift barrier between you and the void surrouning the world seems awfully flimsy today. Your watch
blips: It's nine o'clock. You remember: Time to get to work, there's a world waiting to be built.
It could be the next run of the mill text adventure. Imagine if instead of just reading a story, moving from location to location,
you could create the world as you go, and interact with other people who are also building or remodelling the world around them, maybe
just building a home, or there to talk with others.
Maybe it's pure text. Maybe it's 3D. What's the difference?
So what is a scalable objects-definition engine? It just sounds like some fancy name a programmer made up. Essentially, it is.
I've decided to put together a site detailing an idea that's been kicking around in my head for the last couple of years. Years ago, I used to
play a number of text adventures. They were popular then, the alternative games were fun, but text adventures and Multi User Domains (MUD's) allowed me to interact with the computer and other users in a unique way.
It lost its charm.
I found myself battling aliens or monsters or bad guys in 3D worlds, so engrossing that I bought special 3D accelleration hardware to run them properly. I played point and click adventures. Some of them were difficult finish, but essentially it was simply a matter of clicking the mouse a few billion times. The graphics, the sound, the ambience of these games was (and still is) fantastic.
I went back and played Zork again (all of them). They still lacked something. There was a lack of detail I would have liked, a lack of interaction with each location. It was Interactive Fiction, and I was after Virtual Reality.
I still am.
The idea that's been bouncing around in my head these last few years is, essentially, this:
- Wouldn't it be great if I could be playing a multi-user game, and I were viewing the world in 3D usign all my expensive 3D hardware, but I was playing other people who were using text interfaces, or playing those 'Swords and Sourcery' type adventure games, all within the same world space.
The idea is great. Pulling it off would require a few things...
- Some kind of server that handles everything, from what software a client is accessing the server with, to every action the player does.
- Some sort of games-definition file that allowed players tramping around in a 3D mechwarrior-style outfit to look 3D to other players with a 3D interface, to be accurately described to players using a text interface (in real time), and to appear in whatever form any other client expects to see them from.
- Some sort of handler for the passing of time. People playing a text adventure generally take a whole klot more time to respond to a situation than does a 3D player. In the 3D world, you do an action (ie shoot a weapon) and there's immediate feedback, and immediate response: you can see and hear the world around you. In text adventures (IF, printed books etc) the user can walk away at any time, and come back to find the game (or book) in exacly the same state they left it in (MUD's are a bit different).
- Some sort of handler for objects in the game. You have to be able to describe an object that is going to be used in a number of different client engines, whether it be text on a screen, or graphics (flat ot 3d), the representation of those objects have to match.
This last point is probably the reason nobody else has tried to create a game, or even a virtual environment, in this form. There are any number of virtual realities avaliable nowdays. You only have to look at work done by companies like www.worlds.net (alphaworld) to see that 3D graphical environments that can contain people, houses, streets, sounds and music, can and do exist, and have done for years. I have had people say to me (after showing them my house in Alphaworld) 'Yes, but what do you do? Can you fight people, like in Quake?'. If it's 3D, it's a game. It's the same mentality as people who think [about computers] if it's not a spreadsheet, it's not work.
I've put people like this in front of machines running: a) a text adventure and b) games like 'you don't know jack', and their responses have averaged the idea that they don't know what to do, because they think it's not interactive; more accurately, that it's a computer, therefore it's not interactive. Computer=Furniture. Once they work out that the game is very clever in what it does, they immediately start to say 'Can you do this?' to things, that invariably return the answer 'no'. All games, or interactive environments (say a virtual museum or library) should have the functionality built in them to at least offer the response as 'Yes, but you have to make it do that.'
I'm trying to 'rough out' an engine that is capable of 'scaling up' to become an engine that is capable of driving a text adventure, AND a 3D adventure, AND a virtual environment, AND whatever else people conceive to be a system that requires knowledge or information on objects and their relationship to each other and the world around them. It's a big ask, it's a big project.
The engine needs to be able to handle objects, and to be able to define what an object's purpose is. It also needs the ability to modify the function or properties of an object. For example,you can dig a hole with a shovel, and eat cornflakes with a spoon, but you might not have a shovel and need a hole dug: You dig it with the spoon.
Therefore, it's called the 'Scalable Objects-Definition Engine': Scalable because it needs to have the ability to grow to meet different requirements. Objects-Definition because 'things' that the engine refers to (objects) need to be classified in some form (defined). Simple huh?
So, I've tried to define the basics of how the engine works.
btw; if anyone would like to write it for me, it would be appreciated ;-)
Interactive Fiction (IF) Engines
Here's a quick overview of both engine types.
Classic IF Engines | Scalable IF Engines
Table of Contents
Home | Basics | Specifics | Program Flowcharts
Objects | Classes | Actions | Players | Functions
Feedback | Code Examples