Wade Clarke's memoir of growing up writing games for the Apple II

SPECTRON (c. 1984-1987)

Spectron title page screenshot

I believe that Spectron, a stick figure platform game with three screens, was the first action game I made that sported all the following features at once:

  • Hi-Res graphics
  • The player only flickers when you move, not constantly!
  • Is controlled by joystick
  • Is in real time (things keep happening when you're not moving)
  • Has multiple screens with a different thing to do on each screen

Before Spectron, I'd done all these things at different times, but never in one game.

(Here’s the short demonstration video of all of Spectron.)

The game has a world concept that's not described before you play, but you get whiffs of it in the texts that appear when you die. You're a spy infiltrating a base. Blow it up and you save the planet from Spectron. I think Spectron was the bad guy, though it could have been the name of the base itself? Anyway, to do this, you just have to get through the three screens. You only have one life, so if you die, it's back to the start for you.

I remember drawing the word SPECTRON on graph paper for the title page before translating it into HPLOT statements in the game.

Re: the advances (for me) of this game, let's consider the basics of computer animation: You achieve it by drawing an object in one position in one frame, then in another in the next frame, then displaying the next frame, then repeating the process.

On the Apple II, the technique of page-flipping (between two Hi-Res screens) to produce smooth animation was pioneered by Nasir Gebelli. I wasn't anywhere near capable of this in the 1980s, or even aware of it. What I would do is draw the object in one position, erase it on the same frame (before your eyes, causing flicker), draw it again, erase it, draw it again, etc. I did this both in ASCII art games and in graphics games. And in all games before Spectron, I'd do it during every cycle of the game. So I was erasing the object every frame even if it hadn't moved, causing constant flicker. The advance of Spectron was this: I now only erased the object during a cycle if the object moved. In other words, if you don't push the joystick, your guy doesn't flicker.

The internal resolution of the game is, in a way, really low. So on the first screen, you have no sense that you're about to fall off the edge into one of the pits. If you are pushing the joystick right and you're standing in the death spot next to the pit, you die immediately. So the key thing is to slow down to taking single steps as you approach a pit.

On the second screen, you face the reverse problem. A platform slowly floats down. You have to step onto it with near pixel-perfect timing when it's beside you. I've a memory of programming some leeway into this because it was too easy to die.

The third screen has a choppy line appearing and disappearing too rapidly. You have to move into that space when the line is not there as you climb up a rope thing. Again, as on screen one, if you push up and the choppy line's in place, you die immediately with a strong sense that something went wrong. Conversely, once you've passed the death spot, you'll find you can sit right in the choppy line without dying, which looks silly.

A thoughtful bit of bastardry I put on level three is that if you push left while on the rope, you fall off… very slowly… and die.

It's funny how I test player typing competency after screen three. The three code numbers necessary for blowing up the base are given to you, and you just have to type them back into the game. You're then rewarded with a pic of the base exploding to the accompaniment of the game's lone sound effect. Or, if you were an incompetent typer, you die again.

So with Spectron, I've got less flickery hi-res graphics, joystick controls, platform mechanics and levels. These are important steps for some future games.


To start the game, type RUN SPECTRON and press return. The game requires a joystick (or something pretending to be one in an emulator).

wade_dos33_a.zip (Contains wade_dos33_a.zip.dsk)