Arrays of yellow cables race through the air to and fro hanging like thick spiderweb. Beneath them black racks of servers whir and chatter softly in a language only they understand, "He's here". Drives seek and blink small red LED eyes dimly illuminating the coolness in waves emanating from one lonely sysop in the corner.
Cody Love perches atop a stack of obsolete hardware fashioned into a makeshift desk; His face lit by a sole terminal's CRT glow; Fingers tap dance noisily on the rustic keyboard in his lap. A file tree listing struggles to scroll up the old monitor causing the aged drive to chirp and groan while sending small pulses of activity through the severs' room.
A beige case creaks beneath Cody. He manages to blurt out
"2038?!" before bursting into a fit of hearty laughter. "How can I clean OLD files off this workstation if the data is from the FUTURE!? HA Hahahh..ha...hmm", he ponders momentarily. A clatter of keys slings the contents of one of the files onto the screen.
"I don't really remember making any of this", remarks the system operator leaning in close to the screen, bathing his glasses in mirrored reflections, "but these are my files". Strange yet almost familiar lines of source code scroll up the display littered with esoteric symbols and names, bits of Latin, and even stellar constellations. "No", Cody thinks aloud, "code isn't familiar... some of the source style is, but these symbols--" He stops short as a page fills with code tracing the shapes of sacred eastern geometry.
The [PG DN] key gives a loud hard smack. Page after page of maddening sigils flash by whitening Cody's finger, compelling it to press even harder. He stands up abruptly and shakes his head free of the spellings that were forming in his mind. Reaching behind the small tower at his feet Cody flips the unit off and unplugs its cables in one expert motion. "I either wrote this when I was blasted out of my gord, and forgot. Or else... naw, it couldn't be."
Computer case slung under one arm, Mr. Love peers suspiciously up and down the hallway. "Coast is clear. You're coming with me", he says to the deaf metal box. Scurrying as nonchalantly as possible down the hall he passes his desk, swipes at a secure exit at the end, and expels himself from the building's rear.
"Another one bites the dust!", Cody barks a little too loudly at a disinterested security guard whos gaze lifts not even one eyebrow. "Just act cool!", Cody silently commands himself. "Acting normal would have been not saying a damned thing", a cooler sysop replies, "I've done the same thing 5 times today, no big deal" The workstation is gently placed into a dumpster near several other of its dead kin. Cody carefully waterproofs it by tucking a bag of shredded paper around it, whispering, "Sit tight, we're almost home."
Compiler Hunter (working title) is a game designed for computer science wizards, apparently. After decoding a series of esoteric messages and demonstrating some basic CS skills a virtualized computing environment of some kind springs to life out of a batch of files from decades in the future. The eve of March 1st, 2038 to be precice.
Having compiled itself for the machine architecture the system finds itself on (I've tested 32 bit & 64 bit x86, on BSD, Linux & Windows), the system occupies a significant amount of memory (over 3GB) and consumes nearly all system compute resources, pegging as many cores as available at 100%. Not exactly sure why yet (probably has something to do with the way it executes its "logic"). Despite the high CPU load, the host OS remains fairly responsive. Maybe it's just playing "nice"?
When unable to connect to the workplace network, this system attempts to periodically send data to a known website address, but I am not yet sure why. Thus, for now it is left completely disconnected from the web (I'm not sure if the system would defeat a software firewall or not, better safe than sorry).
This "system", which I'm now calling Fusys (abbreviation of "Future System", or "F@%& you, Sysop"), runs as a userland executable yet defies attempts to inspect its memory while it is executing. Somehow the host OS is crashed when a debugger is attached (on all Windows OSs & Linux kernels I can find, as well as the newest version of FreeBSD, amazingly). Trying to single step from the first program instruction seems like a randomized walk through the program memory: Every couple of instructions accesses some random looking memory value, mixes it through pre-existing register values, stores a cryptic value in memory and on the stack, then issues "ret" to "randomly" jump somewhere else. This continues for longer than I have patience, but if allowed to run the host OS will eventually hang, BSOD or "Kernel Panic" so long as the debugger is attached. Might be due to sending garbage parameters to an OS syscall, but I can't be 100% sure.
In addition to the binary executable itself, memory snapshots of the program when stored in the /swap/ partition upon suspending the host OS seem to be encoded somehow -- it's all gibberish, no plaintext or apparent blocks of data or CPU instructions (but surely there must be, surrounded by what looks like noise). The memory seems opaque except for two 4k pages of RAM. One which is all zeros, the other all zeroes except three 32bit values 0x93000004, 0x0a090307, 0x402f3e5f. Modifying any but those two pages in the /swap/ storage crashes my host system upon resume from suspend.
After a bit of probing a simple ASCII text protocol can be discovered: The two (mostly) empty 4K memory regions are apparently memory mapped to /tmp/[fusys].io (where [fusys] is a bunch of gibberish). The tech wizard then develops a small application to decode, display, and communicate with Fusys by reading and writing to the aforementioned pages / memory mapped .io file. A quirky shell-like environment is encountered displaying colored ASCII text (though I'm not 100% sure yet which indexes should map to what colors in the palette):
..........
...@/>_...
..........
?
Within the shell there are a few files that can be viewed via command line. Some are executable programs which can be ran. Other files document a (partial?) list of terminal commands. A few files are .txt containing cryptic riddles.
That was level one, apparently.
Now, I suppose the next stage of the game is to try and discover more about the OS "architecture" (if it has one) by finding a compiler, or creating one. Hence the (working) name "Compiler Hunter". The player is unaware what CPU architecture Fusys is emulating, but if it's x86 or ARM or MIPS then the binary files are encoded somehow (doesn't look like any standard instruction set I've seen). Perhaps the player will have to discover more documentation or begin by modifying the contents of the "binary" executables seen in the terminal? Those initial bootstrapping files with all the weird symbols might have a clue? We shall see.
Perhaps the player will begin by making a "hello world" program (with raw hex opcodes, by trial and error if need be). Then proceed to construct an assembler / disassembler so the system can be explored beyond what's listed in the shell.
I haven't figured out a way to save & load game state yet, so for now one has to do everything over again from scratch if Fusys crashes or is terminated (or if it decides to crash the host OS). This has slowed my progress somewhat, but hasn't been too much of a bother yet.
I realize the target demographic of this game may be severely limited due to the skills required to play, but if even just one player "beats the system", I think it might be worth it.
Note: Tentatively marked 10% complete since the Fusys "virtual environment" currently exists in this timeline. I am not sure what percent complete I'm actually at, to be honest.
I plan on creating a bridge between a network attached PC and the isolated PC running FuSys somehow, using some "sanitized" data transport (no complex NIC hardware talking to eachother directly, I don't trust it with any direct connection between Integrated Circuits). Hopefully this will ensure FuSys can't "escape" its containment (not sure if it's even trying to, but just to be safe).
Once a clean data transport is established I can implement a "telnet" style interface or a client served by the relay machine so others can access the system remotely. I had thought about just uploading the core files to everyone, but I have a bad feeling about that for some reason.
However, if Fusys really is from 2038... then its creator(s) may be able to anticipate ANY move I make. Future me would have had decades to figure out a way to defeat whatever precautions I take, and I don't know who I'd be working with or what their motives are -- I could be under duress in the future, or even dead! Well, certainly dead given a long enough projection, but you know what I mean. I don't know if I should trust future folks nor their time-traveling Operating Systems. Hmm.
More research is required. I'll keep you posted.