BETA215
[b]Was isolated from 1999 to 2006 with a 486. Built my own late 80s Operating System.[/b]
by fiberbundle · 6 days ago
In the late 1990s, my parents divorced, and my mother took my brother and
myself and had us go live in a very rural area of Australia with a
psychopath who was wanted in 3 states. This was our new stepfather, so
we were to remain in isolation so that he wouldn't be found. This being
said, we were not allowed to leave the house after school hours, nor use
the internet, nor own mobile phones.
Before leaving, my dad left me an Osborne 486, with a whoppping 640k of
extended RAM if memory serves me correctly. This 486 had only a copy of
MS Dos 6.0 on it, and the standard utilities (EDIT.com, QBASIC etc). It
had a shareware copy of Rise of the Triad 1.0, and I believe, one or two
other shareware titles, Xargon and Wacky Wheels. The last game I saw
before leaving New South Wales in the 1990s was a Half-Life preview in a
games magazine.
I was not allowed to rent books that were not strictly relevant to
school work and this made the 6 hours after school incredibly slow, so I
set to work making my own games and entertainment on this 486.
Thankfully I was able to convince my parents that I needed a copy of
"BASIC BASIC" and "ADVANCED BASIC" by James S Coan from our school
library, despite being dated to the 80s.
With these, I built my first DOS Clone which emulated/mimicked dos in
every way I could possibly achieve. Technically, it would function
identically (you can move/change/rename/delete files and directories,
list time, date, directory listings etc). Fairly basic stuff. I'll post
the source codes to all of these shortly, just sorting them as I type
this.
Next I moved onto text-based adventure games: [url=http://i.imgur.com/kc2fUXb.png]http://i.imgur.com/kc2fUXb.png[/url]
I wrote a horror game and some generic crappy adventures which totalled
to around 40 000 lines (bearing in mind, that's by labelling each line
as "100, 200, 300" etc, rather than going by single digits.
My next experiment was to introduce graphics. Ideally I wanted graphics
to accompany the parser. You would say "Walk NorthEast", and the screen
would show a little display that of a first person view walking. I began
work on my own "raycaster" of sorts. Below is a screenshot of an early
version before I had working skies:
[url=http://i.imgur.com/lg8mIaB.png]http://i.imgur.com/lg8mIaB.png[/url]
Soon after, I was able to create very very primitive "detailed" scenes
using various ASCII combinations. I created a DOOM clone to the best of
my memory, as I hadn't seen or played doom for a few years at that
point. It had relatively small maps consisting of 10 x 10 unit data
grids which looked a bit like this (Each number represented a different
wall tile or object. 0 meant nothing - floor and sky.
The screen would be divided up into 8 x 8 chunks and project pre-written
ASCII art that depicted walls at different angles. I did a wall at a 45
degree angle, a 22.5 degree angle, etc until I had 4 or so of each wall
setup rotated at each angle, and then was able to make the player
rotate in iterations of 22.5 degrees at a time (creating a very basic
"3d" engine).
[url=http://i.imgur.com/z3pAvcG.png]http://i.imgur.com/z3pAvcG.png[/url]
(map grid example)
DATA 1, 5, 1, 5, 1, 5, 1, 5, 1, 5
DATA 3, 0, 0, 0, 0, 0, 0, 0, 0, 2
DATA 4, 0, 1, 0, 0, 0, 2, 4, 0, 5
DATA 3, 0, 1, 0, 0, 0, 4, 2, 0, 2
DATA 4, 0, 1, 0, 0, 0, 0, 0, 0, 5
DATA 3, 0, 1, 0,-1, 0, 0, 0, 0, 2
DATA 4, 0, 0, 0, 0, 0, 6, 0, 6, 7
DATA 3, 0,10,12,10,12, 0, 0, 0, 7
DATA 4, 0, 0, 0, 0, 0, 0, 0, 0, 7
DATA 8, 7, 8, 7, 8, 7, 8, 7, 8, 7
By this point, I wanted to up the ante. I had vaguely recalled one of my
childhood friends at the school I had been going to before leaving for
the country whom was into C++. He told me about John Carmacks wolf3d
engine, and how it "cast" rays out until they hit a surface, and simply
calculated the distance from the camera, then painted the image in
vertical strips on the screen.
I made a simple (albeit crappy and slow) raycaster over the next year
and ended up with this. Instead of projecting pre-made ASCII art at
various angles, it correctly cast rays and projected them onto the
screen in vertical strips.
[url=http://i.imgur.com/p33ftz2.png]http://i.imgur.com/p33ftz2.png[/url]
I then wanted to take it a step further and make my own "game engine".
(Silly me, thinking I might make something that could possibly sell? It
would've been about 2004 by now). I developed my first general GUI and
implemented the raycaster into it
[url=http://i.imgur.com/gHU7tnQ.png]http://i.imgur.com/gHU7tnQ.png[/url]
(only just noticed that I had the map being read back to front. The map
on the right should be mirrored the opposite way)
After this, I developed OSCI (as you see in the main picture). I had a
lot more files floating about on my whopping big 203mb hard disk by this
point, so I wanted a more unique way of managing them, without having
to navigate via the traditional DOS tree structures, so I developed OSCI
and built my own apps for it (DFC - Digital Filing Cabinet, which I
used to input my homework, for saving and arranging files, code etc)
Here's an early shot of OSCI with -some- but not all of the basic
commands. Technically I built it over my "DOS" clone, so it carried over
the basic commands of my dos clone, but had visual representations of
what was going on, such as directory structure etc.
[url=http://i.imgur.com/y5FRYoO.png]http://i.imgur.com/y5FRYoO.png[/url]
About 1-2 years later (I don't remember if it was 2004-2005 when I did
this), I was allowed to leave high school and go to TAFE, a type of
college we have here in Australia. There I built a basic TAFE operating
system known as the Command Line Interface of TAFE for an assignment.
The teachers didn't like the abbrieviation (CLIT) for that... so I had
to change it to Command Line Interface of East NSW TAFE (CLIENT)
[url=http://i.imgur.com/XSDOXEZ.png]http://i.imgur.com/XSDOXEZ.png[/url]
[url=http://i.imgur.com/otcBknZ.png]http://i.imgur.com/otcBknZ.png[/url]
It was a very simple TAFE dos system with tree structures, file
copy/move/rename capabilities, but by this time, it was heavily
outdated. I had no idea what modern operating systems were like as the
school I went to used those boxy old Apple Powermacs from the 1980s (the
tiny ones), and the TAFE college was running obsolete systems with
Windows 2000 on them, which was basically like 98, but crappier.
The rest they say, is history. Mum finally ditched the guy who made our
life hell. I was allowed to move back to civilization and had my mind
absolutely BLOWN away by Crisis screenshots.
I didn't code anything for a while, since there was a lot to catch up
on. I spent years literally playing Half-Life (and Half-Life 2! That was
absolutely amazing to experience), as well as a few other titles, and I
realized that my work was technically obsolete as hell, and not really
of any value. In 2008, my dad whom I'd gone to live with threw out the
Osborne 486 (he's not very sentimental) because the clock chip on the
motherboard had died, so I lost a lot of work, however I did have plenty
of floppy-disk backups at the time, and those are the ones you're
seeing in the pictures above.
I took another shot at coding this year to see if I could build anything
interesting in C++, but the difference between something like QBASIC
and a full blown C++ IDE just ended up baffling me more than anything
else, and I struggled for a bit. I learned what I could about the SDL
library and built a simple 3d raycaster with the ability to do multiple
storey heights, and with a level editor that worked on 3 different
axi', so th