Cavern Explorer: a VIC 20 game written in 2018

Introduction
Quelques détails techniques
Conclusion
Plus de ces trucs, s'il vous plaît !

Téléchargement gratuit (.D64 image pour VICE xVIC), fichier hébergé sur le projet GitHub.


Introduction

J'ai été impressionné par le succès rencontré par mon premier jeu pour le VIC-20 sans expansion, Alien Invasion. Beaucoup de monde a joué à ce petit jeu et j'ai pu rentrer en contact avec des personnes très gentilles aux quatre coins du monde qui m'ont donné des conseils très utiles. Il y a très clairement encore un intérêt pour ces vieux systèmes qui sont au centre de l'intérêt de beaucoup de passionnés.

J'ai donc décidé d'écrire un autre jeu pour le VIC-20 sans expansions, en développant une idée que j'ai eu il y a beaucoup d'années, quand j'apprenais à utiliser le défilement fin du C64. Le VIC-20 ne permet pas sur le papier d'avoir un défilement de l'écran aussi fluide que le C64, mais en regardant les détails de la documentation, j'ai pu me rendre compte qu'après tout il était possible d'obtenir un effet similaire avec relativement peu d'effort.

Le résultat a été Cavern Explorer. Il peut être joué sur des machines NTSC et PAL avec les canoniques 3583 octets libres disponibles dès que la machine a démarré. Le joueur contrôle un vaisseau spatial qui rentre verticalement dans une caverne dans une planète étrange. Il faut cueillir les anneaux qui pulsent, tout en évitant les ennemis et les parois. Le vaisseau peut bouger extrêmement vite, à condition de savoir gérer l'inertie qu'il possède pour éviter des accidents.

Une photo de l'écran pendant le jeu

On peut utiliser le clavier ou une manette.

Quelques détails techniques

Le jeu est basé sur un défilement vertical de l'écran. Le dessin est effectué à chaque trame et est synchronisé à la position du pinceau électronique sur l'écran, de façon à éliminer complètement le scintillement. Le défilement fin est obtenu en jouant avec la position verticale de l'écran qui sur le VIC peut être contrôlée avec une résolution de deux lignes. J'ai ensuite appris qu'il était même possible obtenir un défilement avec précision d'une seule ligne en exploitant certains aspects non documentés, mais je n'ai pas utilisé cette technique en Cavern Explorer.

La difficulté principale à aborder en utilisant cette technique est que l'astuce devient très visible si les bords ont une couleur différente du fond de l'écran. En fait, on voit l'écran bouger en haut et en bas continûment ! J'ai donc essayé d'utiliser quelques techniques "raster" pour "fermer" les bords de l'écran où je le voulais et j'ai malheureusement vu qu'elles ne fonctionnaient que sur le bord inférieur de l'écran. J'ai entre temps découvert une différence entre le comportement de l'émulateur VICE et la vraie machine. Il faut toujours tester ses logiciels sur le vrai matériel ! J'ai choisi un écran noir avec bord noir et l'attention du joueur est dirigée vers le bord inférieur comme conséquence de la façon où le jeu fonctionne. Le résultat est donc un défilement assez fluide, avec des objects qui peuvent bouger rapidement. La deuxième difficulté à aborder est qu'il n'est pas facile d'avoir des objects qui ne bougent pas pendant que l'écran défile. J'ai pu l'obtenir pour le vaisseau en utilisant une technique de "sprite" similaire à celle utilisée pour les aliens du jeu Alien Invasion. Il a été impossible de faire de même pour montrer le nombre d'anneaux cueillis, qui est donc montré uniquement quand le jeu s'arrête lors d'un crash du vaisseau.

J'ai décidé de rajouter une certaine inertie au vaisseau parce que le mouvement pixel par pixel pouvait le rendre trop lent, étant donné la vitesse que le jeu peut avoir au bout de quelques niveaux. Je n'aime pas du tout les jeux lents où le joueur a le temps de penser "oh, bouge plus vite" pendant le jeu. On doit pouvoir faire bouger le vaisseau très très vite, même si le contrôle devient plus difficile. De toute façon, j'ai remarqué que Cavern Explorer est à cause de l'inertie du vaisseau, du moins au début, un peu plus difficile que Alien Invasion.

La bande son est très limitée pendant le jeu et inclut le bruit des moteurs du vaisseau, quelques explosions et peu plus. Dans le chargeur du jeu, j'ai en revanche essayé d'exploiter quelques techniques permettant d'obtenir une musique et des percussions un tantinet plus convaincants, en se confrontant aux possibilités plutôt limitées du VIC-20. Je pense qu'il y a encore de la place pour des améliorations car j'ai juste à peine abordé la question.


Lien au projet GitHub avec le code source

Le dessin montré par le chargeur

Cavern Explorer tourne sur Commodore VIC-20 sans expansions de mémoire

Conclusion

Pour conclure, Cavern Explorer est un jeu qui pourra j'espère être apprécié par ceux qui réservent encore une place spéciale au VIC-20 parmi leur intérêts. C'est un jeu différent par rapport à Alien Invasion et pourra peut-être intriquer quelqu'un. Par ailleurs, si vous lisez quelques part que "Le VIC-20 ne peut pas utiliser des techniques raster," sachez que ces affirmations viennent de personnes peu informées. Des effets raster sont présents dans le jeu, quoique de façon plutôt discrète (sauf dans le chargeur).

Je me suis amusé beaucoup à programmer Cavern Explorer et j'espère que vous allez l'apprécier !

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
Alien Invasion Alien Invasion: un jeu pour VIC-20 écrit en 2018
3D maze for the Commodore 64 Labyrinthe 3D pour le Commodore 64 (2017)

Log

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.