SWISS GAME DESIGN ARCHIVE 1968-2000

Back

A

GAME

1985
/
1st
/
ZX81
Shoot'em Up

Cave Flight

“Navigate your plane safely through the cave! While on a reconnaissance flight through unknown territory, you have accidentally flown through a massive gate into a cave whose floor is covered with a vast quantity of diamonds. Try to collect as many as possible by flying your plane over them.” (Homecomputer June/July 1985, p. 55)

In the era of home computer pioneers, there was a unique art form: the listing game. Before the internet, digital downloads, or cheap floppy disks, hobbyist computer magazines distributed software by printing the source code directly onto the paper pages. To play the game, the reader had to sit down at their keyboard and manually type in every single line of code. Because people were manually copying code from a printed page, errors were very common, and finding these typos was very difficult.

Cave Flight is a side-scrolling shoot'em up game for the ZX81 microcomputer that was released in 1985. It was designed by René Straub as a "listing game", meaning that the game was not released on a physical disk that could be bought in stores, but that the game's code was published in a magazine. Cave Flight was published in the June/July 1985 issue of the German magazine "Homecomputer". It consists of about 1.5 pages of Sinclair Basic code and was René Staub's first published game. He developed it in one to two weeks, sitting in the living room in front of the TV.

The concept of Cave Flight is as simple as it is relentless. The player controls a flying object, represented only by characters, through an ever-changing cave system. The object of the game is to collect as many diamonds as possible and beat the high score. The challenge lies in avoiding the spikes of the cave. The player has three lives and loses one if he crashes into an obstacle; if all three lives are lost, the game is over.

What makes Cave Flight so impressive from today’s perspective is the platform for which it was written. The ZX81 had only 1 KB of RAM as standard. To fit a smooth game with scrolling graphics and user input into this tiny amount of memory, René Straub had to program extremely efficiently.

To improve the performance of his ZX81 game, René Straub used machine code for the first time to program the scrolling mechanics because standard BASIC was too slow. It was hard to mix the two languages, especially when it came to memory allocation for the bytecode. Straub used a variable at the beginning of the code because of its fixed memory location. He let the machine translate his hex code at the end of the program into bytecode at a specific memory location. This was important because most of the ZX81 's processing power was used up by screen rendering. This meant that Straub had to find a balance between the ZX81 's "slow" and "fast" modes. The "fast" mode stopped drawing to the screen to make sure that the computer could keep up with the speed of the program. The ZX81 uses commands as characters to save memory, results in an early form of context-aware development.

Cave Flight is one of only a handful of Swiss listing games in the CH-Ludens Archive. Only selected and awarded listing games were published by the computer magazines in the 1980s. If your listing game did not get an award, it was only known to the friends you showed it and may have been lost. Two of the other few known listing games are Jagdszene Chicago (1985) for the Texas TI99 computer by Christoph Gronimund and Top Tennis (1985) for the Atari 8-bit by Bernhard Dalle.