Alien Invasion: a VIC 20 game written in 2018

Introduction
Some technical details
A physical release in 2018?
Conclusion
More of that, please!

Free download (.D64 image for VICE xVIC), file hosted on the GitHub project.
Play Alien Invasion online in the Nippur72's VIC 20 emulator Play Alien Invasion online in the Nippur72's VIC 20 emulator. Use W and X to move the ship, SPACE to shoot, M to toggle music off.

Introduction

As I could already express elsewhere, my very first computer was a Commodore VIC20 that my mother bought in the mid-1980's. I learnt how to program it in BASIC, but I have been rapidly limited by the simplicity of that programming language. In 2018, I therefore decided to write a complete game in assembly language that could work on an unexpanded VIC20.

I chose to write a sort of a Space Invaders clone, combining some elements inspired from Arcadia, one of the most popular games for the VIC20 at the time. Those elements were the unusual screen configuration (very tall and relatively thin), as well as a fiendish speed. This is somewhat different from the original Space Invaders game where alien movement was quite slow, but there were many of them. Purists are warned!

If you want to try the game, you can play it online, clicking on the image above, thanks to the awesome Nippur72's VIC 20 emulator. You can also download it and play it on a VICE emulator, or on a real VIC 20 if you wish. Download is totally free.

Alien Invasion runs on an unexpanded VIC20

You can use keyboard or joystick.

Some technical details

To give a few technical details, the alien movement is smooth and pixel-based and the program creates some sort of "sprites" composed by 4 characters printed on the screen and defined in such a way the alien can be in an arbitrary position inside of them. The drawing operations are synchronized with the vertical refresh signal of the video generation circuitry. This is done by means of a properly set timer, as the VIC20 can not generate interrupts from the video raster lines, as the C64 does. The current code is developed and tested for PAL and NTSC machines.

I had some issues for the NTSC code as the redraw should be done faster than in PAL systems and a certain effort is needed to avoid a liberal amount of flickering for alien movements. Movement of bombs and cannon are character-based. The game occupies 3071 bytes in total and that leaves I believe only 2 bytes remaining, as part of the 3.5KB ram must be dedicated to the graphic character set.

I spent quite a long time to develop the game and the result of my efforts can be downloaded by the link I gave at the beginning of this page. It is the first game I try to write completely in the 6502 assembly and I am happy of the result. The game can be run alone ("aliens-inv" file) or can be preceded by a loader ("aliens-intro") that shows an introductory screen and plays J.S.Bach's Fantasia from Partita 3 BWV827.


Link to the GitHub project page with the source code

Alien Invasion runs on an unexpanded VIC20

Alien Invasion runs on an unexpanded Commodore VIC20

A physical release in 2018?

On Twitter I promised to send three versions on cassette to anyone who could score an appropriate high score. This sparked a certain interest and excitement, I had plenty of feedbacks and I could gather some very good ideas to improve the game. The three cassettes went to @BedfordLvlExp, @Chris_J_Baird and to @MagerValp. Huge thanks to Chris, as he kindly sent to me C10 cassettes that were perfect for the game!

Sorry: no, this game will not be available for sale on a physical support anytime soon, but at least three #R@RE highly valuable and collectible cassettes exist (I am not too serious, BTW). Let's say four, as I'll keep the master tape for myself :-)

Artwork for the cassette sleeve

One of the cassette covers I prepared for the game.

And the master cassette for the game, with the cover

And the master cassette for the game, complete with the cover

Legends about loading games in 1980's from cassette invariably tell about dozens of minutes of bored waiting. While this may have been only partially true for big C64 games that came usually with a fastloader, it is certainly not the case for this VIC20 game. Less than two minutes are enough to go from the LOAD command to the running game.



Conclusion

I am quite happy about the result, even if the game is very simple and not very original. I am not an expert gamer, but I find that the game is quite easy at the beginning so that it can be entertaining, and the difficulty quickly escalates. My high score is 3960 points. Can you do better than this?

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
Cavern Explorer Cavern Explorer, another modern VIC-20 game (2018)
3D maze for the Commodore 64 3D maze for the Commodore 64 (2017)

Log

September 22, 2018: Added cross-links to other vintage programs.

September 21, 2018: Improvement of the page, correction of typos, added paragraph dedicated to the "physical release"

May 22, 2018: first version of the page (in italian, french and english languages)

June 19, 2018: upgraded to version 2.0 of the game (pixel by pixel movement)

License

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