We got our first computer when I was about eleven. I’d used them before, at either school or at a friend’s house (I’m sure I’ve mentioned a VIC-20 and Commodore 64 in a previous post), but we didn’t have one at home until I was in year 6. Translate that to whatever grade is age appropriate for an eleven-year-old if you’re not Australian.
The very first computer we had was a ridiculous machine, but it was the one that started me with technology, programming and word processors. Behold, the machine:
Yeah, those are the specs. This is the machine that I first played the sierra adventure games on, and as you might imagine, they looked like crap. I said CGA graphics? That’s *four* colours – four very glaringly disgusting colours. Do a search for the term ‘cga graphics’, and you’ll see a bunch of pictures that are either cyan, magenta and black, or that are green, blue and brown. The resolution, 320×200. It could also do monochrome, but who the hell wants monochrone. It’s the late 1980s grandpa, not the early 1980s with your green screens and brown screens.
Anyone even know what I’m talking about anymore? Not sure that I even do.
Besides playing games on The Beast, there were two other things – the aforementioned word processing, and the programming. It’s so long ago that I can’t remember the name of the word processor, though it was definitely before Works (that was the following computer), and also sure was more of a text editor than anything else. On the programming front, my memory is a little better. The computer had a derivative of BASIC built into the operating system (MS-DOS 3.3) called GW-BASIC. The very first program I wrote was NOT Hello World, but music. See, there was a PLAY statement in GW-BASIC, where you could play beeps according to a defined string. It was around the same time when I had a lot of music books (for no real reason, as we had no means of making music at home at that stage), and I’d spend some time converting sheet music into strings of text, so that the computer could play them perfectly.
When mobile phones started offering the ability to create your own ringtones (before they turned into portable music players), the notation used for playing notes was exactly the same as what I’d played with in GW-BASIC. If something is bugging you about my continual use of GW-BASIC, it might be because you’re thinking of QBASIC. That came later.
Eventually with GW-BASIC, I started working on creating games. Just really simple text adventure things, before I really knew what I was doing. Game development was one of those things that I was always interested in, and dabbled every now and then. By the time I was in high school, GW-BASIC had given way to QBASIC, and at another point in time, Turbo Pascal. What I’d really wanted to learn was C, but it wasn’t in the budget. The internet was a tiny thing back then, and the only ‘free’ versions of things I knew of were the floppy copies being traded between school friends. I guess I never did much with all this. I remember having a traversable map, where you moved around along the lines of Zork, and later, like a game nobody besides my family has ever heard of, Wilderness Survival.
Some of the Pascal experiments were interesting – a turn-based navigation thing, where a centre dot tried to fire a dot at your own dot – eventually progressing to it leading your dot (so you’d have to take evasive moves). That was interesting. None of this really applied to the programming I was doing at school, which was more utility-based. I’m sure anything map-based (with the text-based navigation) used arrays, or something. I’m really not 100% sure how I did it, though thinking about it now, it’s possible I still have those things around somewhere.
It was never clear which side of it I preferred. I obviously love the story side of it. The idea of creating a world, and have people experience that world – it’s always been something I’ve enjoyed. As a kid, I use to (as my cousin puts it) control everybody’s fun, by guiding them on fanciful adventures through fantasy landscapes I’d invented. I also love the puzzle that is game creation, even if it’s often a case of not knowing what I’m doing. Diving in to something new, especially trying to do it from scratch, was something interesting on its own. I didn’t always know where it was going though.
In the late 90’s, I discovered MUSHes. These were online text roleplaying games, where you create a character, and act out the character with other people. The one I started on was Star Wars: A New Threat, and basically, you walk around like a text-adventure, and do things. These MUSHes also had inbuilt systems, which many times were controlled by a special scripting language called mushcode. It could do all sorts of wonderful things, setting attributes on objects (everything was an object – rooms, players, exits, and ‘objects’), and little bits of programming, and somehow, you get a character generation system. Or a space system. I dabbled with it, a few times, and got a bit decent at mushcoding, to the point where I got sick of it.
In a way, it was like programming in an engine. The MUSHes ran on a server, which you would telnet into (or use a special client), and you could have it so that code ran continuously (instead of acting when a player inputted). That meant it was possible to have a ship object flying through space, continuously changing position. I had some ideas about more complicated implementations, though they remained just-ideas. Using a framework was an interesting experience, and it’s nice in some ways to not have to worry about the implementation, and focus on the game portions.
At around the same time, I was also playing with AGI Studio, which was a tool developed that allowed you to create games that ran under the old Sierra On-Line AGI Interpreter. I started work on an ambitious game that was based on a script I’d been working on a few years earlier (and that still exists as a setting in one form today), which resulted in ‘The Lost Planet.’ I also had a short game I did for a Halloween called MediEvil, which I did without knowing of the other.
I eventually moved to a different engine, because I wanted something closer to the old Lucasfilm adventures. There was an experimental mod for AGI Mouse support, and I was able to replicate some button stuff, but in the end it looked easier to move to Adventure Game Studio. And that’s where THAT all came to an end, though I think I did have a runnable something when I stopped working on it. The time between then and now, I had a few false starts at programming mods. I had an idea for a Source mod that would have mostly invisible monsters who would get damaged by light, and yeah, that’s more or less what Alan Wake turned up with. At one stage, I started playing with XNA, and had a little demo where I could fly around a spaceship using a game controller, not unlike my old Turbo Pascal experiments. Had some ideas to adapt other stories into mods for either Morrowind or Oblivion, but at the time of said-ideas, I never had a computer good enough to run the tools. It was like jumping back to the Amstrad.
All this brings me back to today.
On the weekend, I was reminded about the existence of The Lost Planet, because one of the people I follow on twitter shared an anecdote abotu someone knowing him by reputation from his work. Unbelievably, the same once happened to me. I was meeting up with a high school friend, who’d brought a friend along too. Somehow the conversation went to games, and this friend of a friend had actually heard of The Lost Planet from someone else. This was before facebook, where you’d share what you did with social media and your friends would all know about it – this was completely independent.
I started thinking about what I’ve done, and for the umpteenth time, I set up a development environment. I did a basic tutorial on printing to a console, Hello World, variables and got to the point where I usually thought to myself “Alright, now for the meaty stuff.” This time, I chose differently. Instead of skipping past the basic stuff and trying to get into the meat of a game, I stayed with the text-based stuff. I started thinking about how I might structure things out, some loose ideas for new game concepts, but the main part was getting a basic game loop going, where a player could move between rooms – basic stuff, yes, and would’ve been 5 minutes work to do the same on a MUSH, and with scarcely any effort using INFORM or Twine. It’s done though.
I guess I want to know what I’m doing, not because I’m intent on reinventing the wheel, but because I want to find out what other shapes there are. For that reason, I probably won’t try to collaborate with anyone yet. Still in the early stages, and still working out where I want to go with it – but the important thing is I’m not trying to skip over the ‘easy’ lessons. For once.