While working to improve the way I display my ZX81 programs, I ran across one that didn’t have a picture. Finding that odd, I did some research and found that I’d written a page for it back in 1999. To my surprise, I’d never uploaded it. To rectify that oversight, I made Bugers this month’s program.
Something fun to play.
I wrote Bugers towards the end of my ZX81 programming youth. It is a simple game that has one of three bugers (don’t ask) trying to dispatch you. Press the Z (left), X (right), or M (up) key at the right time to stop them from eating, slicing or crushing you. Simple, right?
Warning, it isn’t as easy as you might think. While running through some test plays, my max score was only 80. That equates to me defending eight times against the bugers. Ouch. Maybe I was just ahead of my time, creating impossible games 31 years before they were in vogue.
Commentary aside, the game is about timing. Defend too soon, or late, and you crash—not quite the right word, but it’s what I used. Surprisingly, the mechanics work well on the ZX81. It was also easy to program.
Timing is in the frame.
It may not be obvious, but video games are all about animations. Whether a character is standing still, walking or jumping, each movement is a series of choreographed frames. Ever played a bad game where things doesn’t transition well? Yep, animation fail—but still an animation.
Bugers uses animations too. Looking at the code, you’ll find that each line is a frame of the animation. For speed I created each frame using a
Looking over the program, I am surprised by its simplicity. The main loop is only 4 lines, leveraging a calculated
GOSUB to animate each buger. Because I coded the movement between frames, there isn't the normal movement routine. Subsequently, Bugers is easy to follow.
Hard to find changes.
Usually, I spend a good amount of time noting all the improvements I could make, but not this time. There just isn’t that much to improve. As is, the program just works.
More of a modern day bias, I’d make some tweaks to the controls. The current scheme is a bit confusing for my now conditioned mind. Using ASWD or even the arrow keys would ease my aversion. Yet, in 1984 those keys weren’t yet ingrained in my mind.
Yet, I didn’t leave it completely alone. I did add an auto-start routine so the program would run forever. There is also a display bug that I left in. Although I’m sure I just mistyped, consider it a challenge to find and correct it.
Happy Halloween and beware of the bugers.