Bleep Bleep Bleep Dept.

By Serdar Yegulalp on 2013-09-30 14:00:00 No comments

When I was a kid, the first personal computer I owned was about as far down on the food chain as you could get: the lowly Timex Sinclair 1000, aka the ZX-81. No color, no sound, no keyboard (well, it had one of those pathetic membrane keyboards), 16K of memory. But what it lacked in power or features it made up for in approachability, and in having a very active community of people making stuff for it.

We later replaced it with the ill-fated TS 2068, which added 64K of memory, color, and sound (and loaded programs a bit faster from tape), but suffered from not having much in the way of a support culture. It was a bastardized version of the far more widely-used ZX Spectrum -- why didn't they just bring that to the United States? I wondered. Then Dad started bringing home his "luggable" Panasonic PC clone, and both Sinclairs ended up in the attic for keeps.

But one thing I did do with both of those primitive little machines was write video games. They weren't very good (hey, I was twelve), but they were mine. The sense of accomplishment that came from producing something from nothing had no parallel with anything else in my experience.

One game I made was Amoeba, where you controlled a protozoan -- running around a field gobbling up nutrients, and trying not to run afoul of parasites. Half Pac-Man, half Centipede. I spent more time working on the animated skits that ran between game boards than I did the game itself. Another game I wrote, the name of which I don't recall (I think it was just called Robot -- how creative), was a fairly ambitious crossbreed of the old arcade game Space Zap with some aspects of Donkey Kong 3 (no, really) shoehorned into it. 

Both games were written on the 2068, in BASIC, but used some nifty optimizations available there. The 2068 let you define custom character sets, which made it possible to create sprites out of one or more characters that could be moved around the screen pretty quickly. Writing an arcade game in BASIC suddenly wasn't out of the question, especially given how intimidating assembler was. My brother, ever the ambitious one, got his hands on an assembler environment for the 2068. He got most of the way through writing an Asteroids clone in machine language -- complete with its own built-in sprite handling -- before bailing for other pastures.

When the PC came along, we struggled for a bit more with BASIC -- and a BASIC compiler my father had picked up -- before switching to Borland's Turbo Pascal. I loved it: Pascal was easy enough for me to learn, compiled to native machine code, and opened up possibilities for programming that weren't visible through BASIC's prison bars. But most of my game programming there came to naught, in big part because I didn't have good ideas for what constituted a playable game. Soon I shelved that hobby entirely.

What mattered most, I think, was how those machines let me get my hands dirty with programming in a way that modern computer use really doesn't. Home computing in the early '80s was a do-or-die business: you either learned how to use one of those things, top to bottom, or you just gave up and went back to your filing cabinet and IBM Selectric. It didn't matter if you owned one of the Sinclairs, or the Apple II / II+ / IIe, or the TRS-80 (I, III, or 4), or the Commodore 64, or the Atari 800 (and I had friends who owned one of any of those machines, hence the list) -- the fact you could master any of those environments, or all of them, made you someone to reckon with. Today, the hobbyist has to go big (C++) or go home. There's little middle ground, save maybe for sandboxes like HTML5 / JavaScript. Those are about to get interesting with things like asm.js and NaCl on the horizon, though.

Somehow, the tapes for Amoeba and my other games went missing. If I'd had the sense to hang onto them, I'd bounce them to audio files and see about getting them running again in an emulator. For old times' sake ... and as a reminder of how limits should be seen a spur to creativity, not a constraint of it.

Tags: computers programming technology video games