Alien Invasion : un jeu pour VIC 20 écrit en 2018

Introduction
Quelques détails techniques
Une sortie sur support physique en 2018?
Conclusion
Plus de trucs comme ça, s'il vous plaît !


Téléchargement gratuit (image .D64, adaptée à VICE xVIC), fichier hébergé sur GitHub.

Introduction

Comme j'ai eu déjà l'occasion de dire ailleurs, mon premier ordinateur a été un Commodore VIC20 acheté par ma maman vers le milieu des années 1980. J'ai appris à le programmer en BASIC, mais j'ai été vite limité par la lenteur du language très primitif que la machine supportait. En 2018 j'ai donc décidé de franchir le pas et d'écrire un jeu complet en assembleur qui puisse tourner sur un VIC20 sans expansion de mémoire.

J'ai donc choisi d'écrire une sorte de clone de Space Invaders mais en combinant certains éléments inspirés d'Arcadia, un des jeux les plus populaires pour le VIC20. Ce dernier avait deux éléments qui m'intéressaient. Le premier était un écran très haut et relativement étroit. Le deuxième était la vitesse frénétique du jeu. Ceci rend ce programme plutôt different du jeu Space Invaders originel, où le movement des aliens était plutôt lent, mais il y en avait un grand nombre. Le puristes sont mis en garde !

Alien Invasion runs on an unexpanded VIC20

Le jeu peut être joué avec le clavier ou un joystick

Quelques détails techniques

Pour décrire quelques détails technique, le mouvement des aliens a lieu pixel par pixel. Le logiciel crée des sorte de "sprites" qui sont composés par 4 caractères imprimés à l'écran et redéfinis de façon à contenir un alien dans une position arbitraire à leur intérieur. Les operations de dessin sont synchronisées avec la fréquence de rafraichissement de l'écran. Ceci est obtenu à l'aide d'un timer, car le VIC20 ne peut pas générer d'interruptions sur une ligne vidéo particulière comme peut le faire le C64. Le code actuel a été développé et testé sur une machine PAL et produirait un papillotement très évident des aliens si exécuté sur une machine NTSC. Le mouvement des bombes et du canon est fait caractère par caractère. Le jeu occupe 3035 octets en tout et ceci laisse moins que 50 octets à disposition, car une partie des 3,5KO de mémoire doivent être dédiés aux caractères graphiques redéfinis.

Après avoir consacré un effort considérable au développement, le résultat de mes effort est téléchargeable sur le lien que j'ai donné au début de ce document. C'est mon premier jeu complet écrit complètement en assembleur 6502 et je suis content du résultat. Le jeu peut être exécuté tout seul (fichier "aliens-inv") ou peut être fait précéder d'un chargeur (fichier "aliens-intro"). Ce dernier montre un écran d'instruction et joue la Fantasia de la Partita 3, BWV827.


Lien à la page de projet GitHub avec le code source

Alien Invasion tourne sur un Commodore VIC20 sans aucune expansion

Alien Invasion tourne sur un Commodore VIC20 sans aucune expansion

Une sortie sur support physique en 2018?

Sur Twitter, j'ai fait un petit concours et j'ai promis d'envoyer des cassettes contenant le jeu à trois personnes ayant eu un hiscore approprié. Ceci a provoqué un certain intérêt et pas mal d'excitation et j'ai pu obtenir plein de bons conseils par des joueurs. J'ai pu améliorer un peu le jeu avec les bonnes idées dont on m'a fait part. Les trois cassettes sont allés chez @BedfordLvlExp, @Chris_J_Baird et à @MagerValp. Un grand merci à Chris, qui m'a très gentiment envoyé des K7 C10 qui étaient parfaites pour le jeu !

En fait, no, ce jeu ne sera pas distribué en vente sur K7 or autre support physique, mais effectivement il y a au moins trois #R@RE cassettes de valeur inestimable et dont la valeur pour les collectionneurs va grimper les côtes rapidement (non, je ne suis pas sérieux ici...) Disons qu'il y en a quatre, car je vais garder une copie du jeu pour moi :-)

Dessins pour la pochette de la cassette

Dessins pour la pochette de la cassette

Voici la cassette master dans sa pochette

Voici la cassette master dans sa pochette

Legendes à propos du chargement de jeux sur K7 dans les années 1980 parlent invariablement de dizaines de minutes pleins d'ennui. Si cela a pu être seulement partiellement vrai pour quelques gros jeux pour C64 (qui avaient souvent un chargeur rapide), ce n'est certainement pas le cas pour ce jeu pour VIC20. Moins que deux minutes sont suffisants pour aller de la commande LOAD au jeu en exécution.

Conclusion

Je suis content du résultat même si le jeu est très simple et pas forcement très originel. Je ne suis pas un joueur expert, mais je trouve que le jeu est assez facile au début pour qu'on s'y accroche et dévient rapidement très difficile. Mon meilleur score est 3960 points. Qui sait faire mieux ?

Plus de trucs comme ça, s'il vous plaît !

Si vous avez aimé ce programme, jetez un coup d'oeil aux autres petits logiciels que j'ai fait pour des ordinateurs anciens !


Two Days to the Race Two Days to the Race (En/It, 2018-2019) pour C64, Plus4, VIC-20+24KB, MS-DOS
La pyramide di Innuh La pyramide d'Innuh (En/It, 2011-2018) pour C64, C128, Plus4, VIC-20, ZX Spectrum
Cavern Explorer Cavern Explorer, un autre jeu moderne pour VIC-20 (2018)
3D maze for the Commodore 64 Labyrinthe 3D pour le 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.