Shoot the UFOs in This Simple ZX81 Game
Defend the Earth from the invading ships in this ZX81 shooter.
Taking a minor departure this Memorial Weekend, my ZX81 program is actually from my childhood best friend. Neighbors during our time in Italy, Jeremy and I spent a lot of time together playing with our LEGO bricks, D&D, and on our computers. U.F.O is a simple shooter game that takes a unique approach to graphics.
A different way.
The most striking thing about U.F.O is its design. I hardly used the
PLOT command in my games. Although there are some great uses of plot, in general it is too slow for complex images. U.F.O is a case in point.
To print the the alien craft in the game, Jeremey used a series of
FOR loops. Each loop plots a line of the craft. It is a nice, big, structure that looks great. And, then, it reverses the processes to erase it. The effect is neat, but boy is it slow. And I mean, slow!
Of course, it easy to critique such an old program, but that’s the point of this blog. If you’ve been following along, you can guess what the fix is. Changing all that code to a single
PRINT AT routine. But, it would also change the game. I’ve built quite a few games based on the same game design. Adding another defeats the purpose.
A good start.
As designed the game is still fun to play. You shoot the ship as it passes. It may not explode, but the data is kept. This happens twenty times, with the goal to shoot the alien each pass. Shooting the aliens looks nice, if static. Although a bit boring—the game needs some randomness, the mechanics work.
And there is the rub. Written in a weekend, I’m sure with my watching, the game is a good start. And a start is all it is. We should have spent more time improving it and adding new game mechanics. It wasn’t our thing. We were off doing other things.
Looking back on it, It wouldn’t be hard to convert to MCODER and speed up the graphics. Yet it solves on aspect of the program. The lack of diversity is still there. With more speed, I could drop the aliens in from random positions and make it harder to shoot. This is an effort to be left for another day.
An aside on my site.
In case you haven’t noticed, I’ve moved all of my ZX81 articles over to my main site. I’m going through all these old articles and converting the links and text to work within their new home. For the most part, the old sub-domain is deprecated. There is still a lot of work to do, but after two years of making the decision to merge things, it is good to see progress.
In the meantime, the original platform I built my site on has disappeared—probably for good. In a way it is freeing. Much of the original code has been hacked and slashed by me over the years, to the point it is unrecognizable. But there are a lot of things that I still don’t like and wish I could improve on.
That doesn’t mean I’m ready to abandon my CMS, but I continue to look for options. Knowing that the community I was once part of has disbanded and disappeared, it opens up some new options for me. A few of us still keep in contact. Now would be a good time to release what we did and keep pushing forward.
Until then, I’ll continue to focus on the content of my site. There is a lot left to do.