File: DOOM_OS.TXT Guy Dunphy 14 Sept 1995 Virtual Reality Operating Systems (Patience, DOOM fans) --------------------------------- (WYSIWUZ - What you see is what u zap) Well, we've had DOS (up to here), and now Windows is being recognized for the alien artifact it is: it's taken years of painstaking dissection by experts to understand how (badly) it works. Given that no sane person could seriously propose that the operating system of the future (Oh please, please let there be only one, and public domain!) should be based in any way on those two products, perhaps it's time to begin considering what such an OS might be like, and how to get there. After all, there will need to be a real OS ready to use after 'Burn Microsoft to the Ground" day (which as you all know, is July 6th, 1998). Besides, if we talk about the OS a lot now, publishing all the ideas we can, then perhaps we can prevent some rumpled bastard from patenting every possible way of doing it right. What I imagine (with thanks to William Gibson), is a 3D world you can move around in, with various solid objects and structures providing a suitable 'environmental context', and also representing data objects. Data operations would be controlled and observed as actions and movements of the 'dicons', as the 3D icons might be called. Ordered sets of data (such as file systems) might be visualised as three dimensional constructs of dicons, with relationships between data units shown as different forms of connecting links. Data objects either come with their own attached 'dicon descriptor', which the OS executes to generate the 3D, sometimes animated dicon, or lacking a 'discript', the OS makes up a coloured, textured shape based on the type and contents of the data object. Executables are sort of spiky blue shapes, text files look like books or sheets of paper, depending on their size. Image data usually shows as little sketches of the image, and zipped or encrypted files are just whirls of coloured dots. Always, the modules the OS uses to generate dicons are replaceable, allowing complete customisation of the appearance of data representations. Deeply nested structures could be examined with tools rather like real world microscopes, allowing the user to zoom down into the finer details not seen at the virtual world's standard visual resolution. As for what the 'environmental context' might look like, the walls, floors and so on of the virtual world, I think it very important that this _not_ be dictated in any way by the OS itself. The OS should simply provide an engine able to generate a user's viewpoint as they move about in the space(s). The details of the interior (or exterior) decoration seen by a user must be customisable by the user, just as the data representations should be. This will allow for free expression of individual taste, not to mention generating a very lucrative market for cyberspace interior decorators, catering to those with no taste of their own. Another interesting side effect of eliminating fixed visual styles dictated by the underlying OS, is that the issue of 'look and feel' becomes moot. The system should behave however a linked 'environment template' directs. Now, if the OS's virtual reality support engine was any good, it should be able to run a mean game too. In fact, being able to act as a ripper game with very little extra code should be a good test for any hopefull future OS. This leads to the idea that maybe one way to _fund_ the development of such an OS, is to actually do it _as_ a video game, or series of games. This would allow the software to be honed, speed optimised, debugged by users (players), etc, while earning income from the game sales. Also, the whole process could be kept fairly secret (as to its true aims) thus avoiding being accosted by know-it-all busybodies. Further, it would avoid alerting the competition in the OS business (eg Microbrain). What would be a good name for such a game? How about Doom? :-) You're Doomed, Microsoft, Doomed I say! --------------------------------------- The first time I played Doom, I was intrigued by the 'computer screens' on the walls. Finding they were just another bit of texture was a disapointment. Of course, I know it's asking too much of the 3D graphics engine in Doom to be able to see real, detailed screen images when looking at a screen from any viewpoint. That still doesnt mean the screens can't be real, working computer terminals, though. It all just depends on your viewpoint. If you walk up to a wall screen and get in a position where it occupies your entire 'real' screen, then the 3D engine becomes superflous. There can be a one to one match between the pixels of the screen on the wall in the game, and your screen. Then you'd be sitting looking at a _simulation_ of a screen. Sort of a direct opposite to 'virtual reality'. Real virtuality? Anyway, imagine experiencing this:- You are deep into Doom III. This level has been particularly nasty, nearly wiping you out numerous times. You are now in a bad way, weakened, low on ammo, and completely stumped as to how to proceed. There are some doors you have not been able to open, and for your life you can't find the keys. There are more monsters coming in regularly; where from and how is a mystery. A few more and you're dead. Desperately looking for a secret exit, you are sliding along the walls, heaving at them to no avail, when you happen to pass close in front of a wall screen, and by chance your viewpoint enters a 'hot origin'. Bingo! The previously static wall screen grabs your viewpoint, filling your own screen, and the cursor keys stop working as 3D move controls. Hey! There is real stuff on this screen! There is a cursor! Your cursor keys and mouse move the screen cursor! What is this stuff? Looks like some kind of building control setup. Maybe those are doors. What happens if you click... (Sound of door opening nearby) Oh wow! You click all the doors open and with growling sounds getting louder, experiment franticly trying to 'unlock' yourself from the wall screen and back off. Turns out the trick is Ctrl-arrow. A dash for the nearest now-open door, and you find yourself in a new area, fortunately well supplied with health and weapon sustenance. Well! That bears remembering. From now on, check all screens. Sometime later, when you are in much better shape, and have cleared out an entire level so have time to wander around and look at the scenery, you find another 'live' screen, and experiment a bit. It seems that when your position gets close enough to the critical location, it jumps to the exact position needed for a 'full screen screen'. Then the 3D engine shuts off, with you just looking at 'the screen'. You can watch stuff happening on it. You can type things into it. Try to crack into it's operating system. Open and close doors. Shut down the power reactor. Reverse the pumps to the demon's toilets. The cursor keys (used to move about in the game) now work as (surprise!) cursor keys. The only way back to 'the real world' is Ctrl-arrow. If someone attacks you from behind while you are engrossed in Doom-world info-rummaging, the 'screen' goes red, just like any other time. Better pull away and turn round fast. OK, fine. New game feature. Funny there's no mention of it on the box. Later on in the game, you find another live screen. But wait! This is some sort of file system structure, in 3D even, and, and.. those are _your_ files in there. Very pretty, but what are your files doing in Doom? In fact, your whole disk tree is here, and dammit, this is a really neat interface. Great for flitting around in the branches, you can see just how big the files and directories are, what kind of stuff is in the files without opening them, all sorts of neat things. Hmmm.. you can even move stuff around, and goodness me, _run_ things. How come demons get an OS interface like this, and you don't? This could be the best OS around, if it was real. But here it is in a game, of all places, and you can't even get to it without fighting your way through monsters. Reminds you a bit of real life, in fact. In wandering around in this neat re-representation of your own data you come across the Doom directory. Well this is odd! Here are a bunch of things that look like, um, mode controls, even though they are rather crypticly labelled. What does the one marked 'Doomed' do for instance? You throw the switch. There is a loud 'Clunk!' sound through the speakers, and a bit of dramatic theme music, but nothing else happens. Oh well, its just a simulation of an OS, after all. What did you expect. A bit more dabbling, and the stunning clarity and power of the interface starts to really piss you off. What is the point of all this, inside a game? Is it going to help you get to the next level? No. Time to get back to the game. ... Much later (3am) you die, shut the machine down and go to bed. Next day, you boot up again, but whats this!? It's come up in the Doom OS. Err.. well. Lets give it a go, you think, before we go to the trouble of working out how to kill it off and get back to, um... Windows. On second thoughts, lets give it a really good go, maybe we won't _have_ to go back to windows. That would give you back a whole barrel of disk space, at least. Oddly enough, it works. Except with most of your shitty Microsoft applications, anyway. They all seem to be very good at detecting that there is something tainted about their environment, and stubbornly refuse to run. 'Well that's your problem, Microsoft' you think, working out whether this much better OS is worth the expense of replacing the few Microsoft apps you unfortunately really need, with ones from competitors that are not fussy about which shell they run under, since they don't sell the shell. Then you try using the Doom OS to look at the CD-Rom the game came on, and discover that _now_ you can see all sorts of things there which were invisible to DOS. Like you find a fantastic hyper-stack type help system, that goes right into the finer technical details of programming for this new OS. You find where the company gives their solemn and legally binding oath that there are _no_ undocumented system calls, every single one is fully explained in this documentation. Why should they hide anything, they say, they are a _games_ company, and don't think something of crucial social importance like a major computer OS should be a proprietry thing, not open to truely democratic and altruistic development. To prove their sincerity, in fact, they would like to place the complete source code for the Doom OS in the public domain, and here it is, in the next branch. You look. It is. What's more, almost all of it is written in something a bit like a threaded interpreter, but with some radical innovations that make it really _fast_, easy to implement on non-Intel, non-segmented RISC screamers, allows 'load and run anywhere in memory as-is' code modules with virus proof checksums that are valid at all times (whether on disk or running in memory), and is generally machine independent at a binary level. The good news just goes on and on. Wheeee! No contest, goodbye Microsoft. Sometime later, you discover the Doom OS has a built in screen saver. It just 'pulls back' into the Doom level from the screen where you first stumbled onto the Doom OS, and wanders off fighting beasties among the dim passages. Makes you wonder if you were really still in the game all that time. You discover that in Doom (the game) you can still find the 'Doom OS' screen, and go into it. There you can run Doom, find the OS screen, and run Doom... There doesn't seem to be any limit. It gets very confusing, did you pop up the same number of times? Does it matter? Strangely, as you go deeper again you notice that the Doom world is not always the same. Particularly, the things on the wall screens are not always identical at each nested depth. Eventually you find one that is completely new. It gives access to the Demon High Command's computers. There you find details of a sinister plot to subvert human culture by repressing information systems development, and poisoning the minds of all human programmers with vile corruption. A central element of the plan involves forcing everyone to use Microsoft Windows, but segmented architectures, unchecksummed code and relocating loaders also play key parts. These games are just getting _too_ realistic. PS For the super-brave, there is a game mode in which you battle your opponents amongst the Doom OS generated virtual scenery of your own disk drive's data structures. Oops! Missed, and blew away those GIFs I downloaded. Damn, that imp just shredded my compiler! No! No, not the system ker ... No carrier