Cavern Explorer: un altro gioco moderno per VIC 20

Introduzione
Qualche dettaglio tecnico
Conclusioni
Altre cosette come questa, per favore!

Download gratuito (.D64 image for VICE xVIC), file ospitato sul progetto GitHub.


Introduzione

Sono stato impressionato dal successo che ha avuto il mio primo gioco per il VIC-20 inespanso, Alien Invasion. Molte persone ci hanno giocato e sono entrato in contatto con gente molto cordiale sparsa in tutto il mondo che mi ha dato un sacco di consigli utilissimi. C'è ancora molto interesse per questi vecchi computer e molte persone sono ancora appassionate.

Ho quindi deciso di scrivere un altro gioco per il VIC-20 inespanso, sviluppando una vecchia idea che ho avuto molti anni fa imparando ad usare lo scrolling fine del C64. Il VIC-20 non permette sulla carta di avere uno scrolling fine come il C64, ma leggendo la documentazione mi sono reso conto che sarebbe stato possibile ottenerlo con uno sforzo tutto sommato limitato e con qualche trucco raster.

Il risultato è stato Cavern Explorer. Può essere giocato su macchine NTSC e PAL che dispongano dei soliti 3583 byte liberi senza espansione di memoria. Il giocatore controlla un'astronave che si getta verticalmente in una caverna su un pianeta alieno. Bisogna raccogliere il massimo numero di anelli pulsanti, evitando tutti i nemici. La navicella ha una certa inerzia mentre viene mossa e può raggiungere velocità estremamente elevate, ma bisogna fare attenzione a predire ciò che può fare, per evitare di schiantarsi contro una parete rocciosa.

Uno screenshot del gioco

Si può utilizzare la tastiera, un joystick o le paddle.

Qualche dettaglio tecnico

Il gioco è basato sullo scroll verticale dello schermo. Il ridisegno è effettuato ad ogni frame ed è sincronizzato con la posizione del pennello raster in modo da eliminare completamente il flickering. Lo scrolling fine è ottenuto giocando con la posizione verticale dello schermo che sul VIC può essere controllata con una risoluzione di due linee (anche se ho poi letto che con un trucco è possibile ottenere lo scroll pixel per pixel).

La principale difficoltà da affrontare utilizzando questa tecnica è che il trucco diventa evidente se i bordi hanno un colore diverso dallo sfondo perché si vede il contenuto muoversi su e giù continuamente. Ho provato ad utilizzare alcune tecniche raster per "chiudere" i bordi dove volevo io e mi sono accorto che potevano essere utilizzate solo sul bordo inferiore (e tra l'altro, ho anche trovato un bug sulla versione di VICE che uso per i miei test: bisogna sempre provare su una macchina vera). Per questo, ho scelto uno schermo nero con bordo nero e l'attenzione del giocatore è diretta sul bordo inferiore per le esigenze del gioco. Il risultato comunque è uno scroll abbastanza fluido con oggetti che possono muoversi rapidamente. La seconda difficoltà che esiste con questa tecnica è che non è facile posizionare oggetti che rimangano fermi sullo schermo. Ho potuto farlo con la navicella, disegnata utilizzando una tecnica di sprite software simile a quella sviluppata per il movimento degli alieni in Alien Invasion. Ad ogni modo, non è stato possibile fare lo stesso con il punteggio che quindi viene mostrato solo quando la navicella si schianta ed il gioco è fermo.

Ho deciso di aggiungere una certa inerzia alla navicella perché muovendola pixel per pixel rischiava di diventare troppo lenta rispetto alla velocità che il gioco può raggiungere. Non mi piacciono per niente i giochi lenti in cui il giocatore è limitato dalla velocità degli oggetti sullo schermo ed ha il tempo di pensare "mannaggia, vai più forte!" durante il gioco. Bisogna poter far andare la navicella molto rapida, anche se questo richiede un certo impegno per controllarla. Ad ogni modo, ho notato che questo rende maggiore la difficoltà del gioco che è, perlomeno all'inizio, maggiore rispetto ad Alien Invasion.

Gli effetti sonori sono abbastanza minimalisti e comprendono il rumore del motore della navicella, alcune esplosioni e non molto di più. Nel loader, ho invece cercato di esplorare qualche tecnica per ottenere musica e percussioni un pochino più convincenti basandomi sulle capacità abbastanza limitate del VIC-20. Penso comunque che ci sia ancora spazio per miglioramenti, finora ho appena sfiorato l'argomento.

All'inizio di febbraio 2022, ho aggiunto il supporto per i paddle. La paddle X controlla la posizione della navicella, con un po' di inerzia. All'inizio del gioco bisogna metterla in posizione centrale! La selezione del controller è fatta automaticamente (basta avere le paddle collegate al computer). Il pulsante di sparo controlla il freno.


Link al progetto GitHub con il codice sorgente

Il disegno mostrato dal loader

Cavern Explorer gira su un Commodore VIC-20 inespanso

Conclusioni

Per concludere, Cavern Explorer è un gioco che potrà spero essere apprezzato da chi ancora oggi riserva un posto speciale al VIC-20. E' diverso da Alien Invasion e potrà spero essere intrigante a sua maniera. A proposito, se leggete che "Il VIC-20 non permette di fare trucchi raster", bene, sappiate che l'affermazione viene da persone poco informate. Gli effetti raster sono poco visibili nel gioco (lo sono molto di più nel loader), ma ci sono.

E' stato molto divertente programmare Cavern Explorer e spero che lo apprezzerete!

Altre cosette come queste, per favore!

Se vi è piaciuto questo programma, date un'occhiata alle altre cosette che ho scritto per computer molto vecchi!


Silk Dust Silk Dust (En, 2020-2021) per C64, Plus4, VIC-20+24KB, MS-DOS...
The Queen's Footsteps I passi della regina (En/It, 2019-2022) per C64, Plus4, VIC-20+24KB, MS-DOS...
Two Days to the Race Tra due giorni la gara (En/It, 2018-2019) per C64, Plus4, VIC-20+24KB, MS-DOS
La piramide di Innuh La piramide d'Innuh (En/It, 2011-2018) per C64, C128, Plus4, VIC-20 ZX Spectrum
Alien Invasion Alien Invasion: un gioco per VIC-20 scritto nel 2018
3D maze for the Commodore 64 Labirinto 3D su 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.