Elite (1985): come comprimere un universo in 64 kilobyte
rivista: ZZap!64 n. 1
data: maggio 1985
piattaforma: Commodore 64
sviluppatori: David Braben, Ian Bell (Firebird)
Nel maggio del 1985, il primo numero della storica rivista britannica ZZap!64 si trova a dover giudicare un software che disintegra le categorie videoludiche esistenti. Elite non è un gioco arcade, è la dimostrazione cruda che un intero universo tridimensionale procedurale può risiedere stabilmente in 64 kilobyte di memoria RAM, forzando i limiti fisici dell’hardware.

il reperto storico
“La prima cosa da dire è che il gioco gira un po’ più lentamente sul 64 – questo è causato da una combinazione del fatto che il processore centrale del BBC gira a una velocità superiore, e che la grafica vettoriale è più difficile da programmare sul 64. Tuttavia non crediamo che questo tolga molto al gioco. […] Ancor più importante, la versione 64 contiene alcune nuove caratteristiche: ci sono ‘missioni speciali’ extra che possono verificarsi se ci si dimostra all’altezza. […] Poi, uniche per il 64, ci sono i Trumbles. Questi simpatici animaletti pelosi si riprodurranno sulla tua nave fino a riempire la stiva e anche le tue orecchie con una cacofonia di squittii riproduttivi.”
— ZZap!64, recensione originale
la pagella dell’epoca
| parametro | voto | valutazione originale |
| presentation | 94% | manualetti meravigliosi: informativi, divertenti e comodi. |
| graphics | 91% | splendida grafica vettoriale che mostra un’ottima azione 3D. |
| sound | 52% | spari laser, rumori di crash, iperspazio e suoni di attracco. |
| hookability | 95% | dal tuo primo volo spaziale capisci che è un vincitore. |
| lastability | 98% | 8 galassie, 2000 pianeti, infinite possibilità di commercio. |
| originality | 87% | shoot-em-up 3D e trader: una combinazione brillante. |
| value for money | 95% | persino a £14.95 è un acquisto obbligato. |
la bussola razionale: smontare l’hardware
il miracolo del calcolo vettoriale a 1 mhz
All’epoca, l’impatto visivo venne liquidato con un lusinghiero ma superficiale “splendida grafica vettoriale”. La realtà tecnica è un esercizio di brutalità matematica. La CPU MOS 6510 del Commodore 64, viaggiando a circa 1 MHz, non possiede un’unità di calcolo in virgola mobile (FPU) e non ha istruzioni hardware per eseguire moltiplicazioni o divisioni.
Ogni singolo vertice di un’astronave in rotazione doveva essere calcolato tramite aritmetica intera. Per evitare che la CPU calcolasse i complessi valori trigonometrici a ogni frame, bloccando di fatto la macchina, i programmatori caricarono in memoria delle tabelle di lookup (valori di seno e coseno pre-calcolati). Inoltre, il chip video VIC-II non era progettato per disegnare vettori, ma sprite e caratteri: il codice doveva bypassare le routine del sistema operativo per mappare direttamente i pixel nella memoria video, implementando un algoritmo per non disegnare le linee nascoste e dare solidità agli scafi.
8 galassie generate da un seme
I redattori di ZZap!64 rimasero paralizzati davanti ai “2000 pianeti disponibili”. Nessun supporto magnetico dell’epoca avrebbe mai potuto mappare a mano 2000 sistemi solari con i relativi parametri.
La soluzione per ingannare lo spazio di archiviazione fu la generazione procedurale. L’intero universo di Elite non esiste su disco: viene calcolato matematicamente partendo da un singolo “seme” (seed) iniziale di soli 6 byte. Sfruttando un algoritmo pseudo-casuale basato sulla sequenza di Fibonacci, il codice generava in tempo reale coordinate, tipo di economia, livello tecnologico e persino i nomi alieni (pescando da una tabella di sillabe predefinite, es. “LA”, “VE”) a ogni salto iperspaziale. Un’infrastruttura logica rigida che ha anticipato di decenni i moderni motori procedurali.
il malware biologico (esclusiva c64)
Un dettaglio affascinante riportato dalla recensione riguarda i “Trumbles”, chiare scopiazzature dei Tribbli di Star Trek. Questa funzione era esclusiva della versione Commodore 64. Avendo a disposizione 64KB di RAM (il doppio rispetto ai 32KB del BBC Micro originale su cassetta), Braben e Bell avevano memoria in avanzo. Invece di lasciarla inattiva, la saturarono con uno script inutile ai fini del gameplay ma geniale per immersività: un generatore di sprite e frequenze sonore fastidiose che simulava un’infestazione biologica nella stiva. Un surplus di memoria hardware convertito volontariamente in puro stress gestionale per l’utente.
curiosità fuori asse logico: i tre volti dell’anteprima
Se analizzando l’immagine in evidenza vi state chiedendo a chi appartengano i tre volti stilizzati, la risposta non si trova nel codice procedurale di Elite. Sono Gary Penn, Julian Rignall e Bob Wade, fondatori e pilastri storici della redazione originale di ZZap!64 del 1985. L’illustrazione estrapola e modernizza le iconiche caricature in bianco e nero che venivano stampate sopra le tabelle dei voti per identificare il recensore di turno. Un dettaglio visivo tecnicamente inutile per comprendere l’hardware del C64, ma un doveroso easter egg per chiudere il cerchio su chi ha certificato per primo questo miracolo ingegneristico.
[ Archeologia Informatica – Note Legali & Disclaimer ]
Questo articolo ha finalità esclusivamente didattiche, di studio e di conservazione storica del software (retrogaming/abandonware). Il codice originale e i contenuti citati appartengono ai legittimi proprietari e agli autori della rivista dell’epoca. Il porting e l’analisi tecnica vengono messi a disposizione gratuitamente e senza alcuno scopo di lucro. Se detieni i diritti di questo materiale e desideri la rimozione o una differente attribuzione, contatta l’amministratore del sito per l’immediata rimozione (take-down notice).