Cavern Explorer: another modern VIC 20 game

Introduction
Some technical details
Conclusion
More of that, please!

Free download (.D64 image for VICE xVIC), file hosted on the GitHub project.


Introduction

I have been impressed by the success of my first game for the unexpanded VIC-20, Alien Invasion. A lot of people played it, I got in touch with nice fellows scattered around the world and they provided plenty of feedback. There is still definitely an interest in vintage computer systems and a lot of people are into that.

I decided to write a second game for the unexpanded VIC-20 using an old idea I had many years ago while playing with the pixel-based scrolling capabilities of the C64. The VIC-20 is not supposed to have a pixel-based scrolling of the screen, but reading the documentation I thought that it was possible to reach almost that with a limited effort and with some raster effects.

The result has been Cavern Explorer. It can be played on NTSC and PAL machines with the regular 3583 bytes free, and you control a spaceship that dives vertically into a cavern in an alien planet. You should collect as many rings you can while avoiding foes. The ship gains momentum while you move it, so you can go extremely fast, but you need to be very attentive and predict what it can do to avoid crashes.

Actual game screenshot

You can use keyboard, joystick or paddles.

Some technical details

The game is based on the vertical scrolling of the display. The redraw is done at each frame and is synchronized with the raster position so that there is no flickering. The smooth scroll is achieved by tweaking the vertical position register of the screen that has a resolution of two lines (though I then discovered that there is a trick to obtain a pixel-based resolution).

The main difficulty that has to be faced while using this technique is that the trick remains very visible if the borders have a different color from the screen as you really see the screen going up and down. I tried to use some raster techniques to "close" the borders and I discovered that they are effective only on the bottom border (BTW, I spotted a bug in the VICE version I use for the developments. Always try on the real stuff!) So I went to a black border on a black screen and the attention of the player is directed towards the bottom border by the gameplay. The result is a smooth scroll and fast moving objects. Another difficulty is that it is not easy to put objects that stand still on the screen. I did that for the ship, that is drawn with a sprite-based approach similar to the one used in Alien Invasion. However, I definitely could not afford doing that to show the score, written only when the ship crashes.

I decided to add momentum as allowing for a pixel-based movement I needed a technique to move very fast the ship when the game requires it. I do not like slow games where you are limited by the speed of your objects on the screen and you have the time to think "please, go faster!". You should be able to go as fast as you wish, even if it becomes more difficult to control the ship. This technique is effective, but requires a certain skill to be mastered. Overall, I noticed that, at least at the beginning, the game is harder than Alien Invasion where the difficulty is more progressive.

The sound effects are quite minimalistic, with the noise from ship's engine, some explosions and nothing much more. In the loader, I tried to explore some techniques to make a little more convoluted music and percussions from the very basic sound capabilities of the little VIC-20. I feel there is the room for some interesting techniques, but I am still barely scratching the subject.

At the beginning of February 2022, I added the support for paddles. The X one controls the position of the ship, (with a certain inertia). At the beginning of the game you should center it to control the ship. Recognition is done automatically. The fire button brakes the ship.


Link to the GitHub project page with the source code

The loader graphics

Cavern Explorer runs on an unexpanded Commodore VIC-20

Conclusion

In conclusion, Cavern Explorer is a game that may be enjoyed by people that still cherish their little VIC-20. It is somewhat different from Alien Invasion and it should be intriguing in its own way. If you read that "VIC-20 does not allow raster tricks", well, know that this comes from ill-informed people. The raster effects should be quite subtile in the game (much less in the loader).

It has been terrific fun to develop and I hope you will like it!

More of that, please!

If you liked this program, have a look at the other things I wrote for old computers.


Silk Dust Silk Dust (En, 2020-2021) for C64, Plus4, VIC-20+24KB, MS-DOS...
The Queen's Footsteps The Queen's Footsteps (En, 2019-2020) for C64, Plus4, VIC-20+24KB, MS-DOS...
Two Days to the Race Two Days to the Race (En/It, 2018-2019) for C64, Plus4, VIC-20+24KB, MS-DOS...
La piramide di Innuh The Innuh pyramid (En/It, 2011-2018) for C64, C128, VIC-20, Plus4, ZX Spectrum
Alien Invasion Alien Invasion: a VIC20 game written in 2018 for the VIC-20
3D maze for the Commodore 64 3D maze for the Commodore 64 (2017)

Log

February 5, 2022: Version 1.1 with paddle support and bugfix.

September 23, 2018: French and Italian translations. Add cross-reference table at the end with links to other programs.

September 22, 2018: First version of the page.

License

Creative Commons License
This work is licensed under a CC BY, NC 4.0 licence.