Fight Your Way to Victory with This ZX81 Space Shooter

January’s program of the month is a tricky first person space game.

Windmill, ZX81 screen shot, by Steven Reid, 1984Nothing starts the year out better than a space shooter. The top of the printout was quite faded, so I wasn’t sure about ZTSXXSTZ when I started to type it in. But, once I got the first few bits working I realized I had something worth sharing.

Playing it for the first time.
I’m sure I was playing Zaxxon or some other weirdly named game when I came up with the name. The name doesn’t matter, but the game looks decent. Looking over the listing, I could see their was a ship in it. Kind of looks like Darth Vader’s Tie fighter right? The listing wasn't clear, but I knew it was some sort of space game.

Running the first few lines, I could see the cross hairs and memories started to return. This is a space shooter! Excited, I rushed to enter the rest of the program so I could get it working . Yep, it plays as a remember—not well.

The controls are inverted, as a space shooter should be. They aren’t what I’m used to, so I bungled around a bit. But then the cool part happened. I got shot! A shaking screen, then a black screen with a white band. What a perfect death scene. If only the game played better.

I struggled to shoot even one fighter. The controls were all wonky. Even when I thought I’d shot one, it wouldn’t disappear. Not that it mattered. As I was closing in, I got shot.

Time for a few tweaks.
Getting nowhere with my test play, I dug into the code. I first reduced the chance of dying. About 25% of the time will a fighter fire at you. And, only 5% of the time will it kill you. This gives you enough time to shift into position and clear the board. Plus, if you take out a fighter, your chances of survival only get better.

Next, I fixed the controls. I’m used to the ASDW keys, something I’ve written about before. I also moved the fire key to . for consistency. Once adjusted, I wrote some testing code to make sure the shots worked. After a few tweaks, the game was playing as intended. Yet, the ships still weren’t working right.

Looking over the code, I realized I hadn’t actually removed destroyed fighters. Once I added in a few checks, things started to look right. Now that they were clearing, I found that I messed up the routine after you shot all four. Another fix down, and the game was working well.

Play it again, Steven!
With gameplay elements working, I could now test the game again. Although a bit slow, the game is actually fun. You can usually clear a few screens before being shot at. Although I miss the death screen, when it does come you are pretty much toast.

Polishing the game a tad, I added a score when you clear the screen. The game allows for repeat plays now, and runs at load. There are some other minor fixes here and there, but otherwise is the same game. I was an impatient teen—if only I’d put more time into testing back then.

But, it could be better.
First, I like the game as is. But, I couldn’t help thinking about the speed. I don’t think it would take much to convert to MCODER. Not only would that speed up the game, but I could add in some extra game elements that are too slow in BASIC.

For example, I could move the ships as well, making it harder to target. It would also be nice to have the shots that miss go past you. Perhaps even allow you to dodge them. At the moment, the fire sequences are static.

I suspect I’ll break the death scene converting to MCODER. So, I’d need to come up with something else. I thought about a full screen graphic, with you drifting in space with a cracked windshield. As is, the game ends with a simple statement and your score. Kind of anticlimactic. Doing something more there would be fun.

Another idea was adding a shield and upping the shots again. That way, you could see the fighters shoot at your more, but you wouldn’t die right away. Adding a health bar to the bottom of the screen should work.

Ideas aside, the game works pretty well. Definitely something you would have seen, or played, back in the early eighties. While you enjoy, I might try some of those ideas. Hmmm.

Comments on this article:

No comments so far.

Write a comment:

Type The Letters You See.
[captcha image][captcha image][captcha image][captcha image][captcha image][captcha image]
not case sensitive