“Pioggia digitale” di Matrix per ZX Spectrum

Recentemente, ho deciso di partecipare alla MATRIX Challenge, organizzata dal gruppo Retro Programmers Inside nel mese di luglio e conclusasi ieri. L’obiettivo della sfida è stato quello di riprodurre il famoso effetto Digital Rain (noto anche come Raining Code), presente nei film di fantascienza The Matrix, su macchine a 8 o 16 bit, utilizzando il linguaggio di programmazione preferito.
La mia scelta è ovviamente ricaduta sull’abbinamento Sinclair ZX Spectrum e linguaggio C, utilizzando la toolchain z88dk/sdcc e il risultato è stato particolarmente apprezzato.

La mia implementazione dell’effetto “pioggia digitale”, per ZX Spectrum.

La tecnica che ho adottato è quella di riempire inizialmente lo schermo con caratteri casuali (in un primo momento utilizzando i caratteri standard e in una fase successiva realizzando i miei UDG), rendendoli non visibili (inchiostro nero su carta nera). Quindi, all’interno di un ciclo infinito, ho implementato l’effetto pioggia alterando l’area di memoria degli attributi dello schermo. Le gocce “cadono” in una posizione casuale e ogni goccia lascia una scia di lunghezza casuale. La scia è più luminosa immediatamente dopo la goccia e diventa più scura man mano che la goccia scivola verso il basso.
Successivamente, ho rivisto il codice per migliorare le prestazioni e implementato differenti velocità casuali per le gocce. Inoltre, ho disegnato alcuni simboli simili a quelli presenti nel film e, per dare un tocco di originalità, ho aggiunto la ragazza col vestito rosso.
Infine, ho deciso di rendere il tutto interattivo, aggiungendo la possibilità di modificare, durante l’esecuzione dell’animazione, sia il tipo di effetto (tasti 7, 8, 9) che il colore (tasti 1, 2, 3, 4, 5, 6).

Puoi vedere i video delle varie fasi dello sviluppo (prima versione, ragazza col vestito rosso, versione finale) ma, se hai a disposizione un web browser con supporto JavaScript e un device munito di tastiera, è sicuramente più divertente provare la versione online interattiva (disponibile grazie all’emulatore JSSpeccy).

Infine, lo staff di Retro Programmers Inside ha pubblicato un video con tutti i partecipanti alla MATRIX Challenge, che mostra le varie versioni della pioggia digitale di caratteri, realizzate per computer Amiga, Commodore 64, VIC 20 e MSX:

Presentazione di tutti i partecipanti alla Matrix Challenge.

Wake up, Neo…
The Speccy has you!

Read in English

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.