La grafica ai tempi dello Spectrum

 Si fa presto a dire GPU o DirectX, ma una volta non esistevano queste possibilità. Allora quali accorgimenti si potevano utilizzare per aumentare le prestazioni dei giochi di una volta? Parlo dei mitici anni ’80.

La soluzione più semplice era quella di utilizzare il linguaggio principe, cioè l’assembler.

Per molti, oggi, questa parola suona male, quasi una bestemmia, ma per altri questa non è solo una possibilità, ma è una necessità.

Negli anni ’80 spesso si utilizzava questa soluzione insieme al linguaggio più diffuso nel mondo degli home computer. Vale a dire, in un programma Basic si inserivano piccole routine in assembler.

Era una necessità che avvertivano, in modo particolare, quelli che si divertivano a creare piccoli giochi, o animazioni, elettronici come il sottoscritto.

Sullo Spectrum per creare delle immagini grafiche erano necessarie alcune operazioni.

Per prima cosa occorreva definire, nella memoria del computer, una griglia che serviva a stabilire la dimensione dell’immagine. L’immagine veniva, poi, definita attraverso una serie di simboli grafici definiti dall’utente (UDG).

Successivamente occorreva scrivere un programma per muovere la griglia definita in precedenza.

Infine, l’ultima operazione consisteva nel sostituire i simboli UDG, simboli definiti dall’utente, con l’immagine voluta.

Che cosa erano questi UDG? In sostanza, la definizione di un simbolo UDG passava attraverso i caratteri.

Una lettera poteva essere modificata in un altro oggetto, magari in una immagine, seppur rozza. Ogni lettera era formata da un matrice 8×8, quindi 64 punti. Alcuni punti potevano essere colorati, altri no; era anche possibile modificare la loro disposizione. Infine, era anche possibile combinare le diverse matrici per formare un disegno più complesso, per esempio un animale.

Lo Spectrum forniva 21 caratteri UDG, da A a U.

Un animale, per esempio un topino, poteva essere realizzato con una griglia di 3×3 caratteri UDG:

A B C
D E F
G H I

Per farlo esistevano due metodi:uno si basava interamente sull’uso dell’interprete Basic e l’altro era una soluzione mista tra Basic e assembler.