Joshua Barretto
Retroscena

Un porting impossibile: «Super Mario 64» su Game Boy Advance

Domagoj Belancic
14/7/2024
Traduzione: Leandra Amato

Uno sviluppatore di software lavora nel tempo libero a una versione di «Super Mario 64» per Game Boy Advance. La sua motivazione per questa impresa apparentemente impossibile: domostrare che dopotutto è possibile.

«Super Mario 64» è una pietra miliare nella storia dei videogiochi. Nel 1996, il rivoluzionario titolo platform è riuscito a portare il classico gameplay dei giochi di Mario in 2D nella terza dimensione. I controlli intuitivi nello spazio tridimensionale e la splendida grafica 3D hanno lasciato i fan di Nintendo a bocca aperta.

«Super Mario 64» ha stabilito nuovi standard per il design dei giochi 3D.
«Super Mario 64» ha stabilito nuovi standard per il design dei giochi 3D.
Fonte: Nintendo

Lo sviluppatore di software Joshua Barretto si è posto l'obiettivo di portare il leggendario gioco 3D sul Game Boy Advance (GBA), cioè su un sistema senza hardware 3D dedicato e senza la potenza di calcolo necessaria per visualizzare paesaggi e modelli di personaggi così complessi.

«Sei pazzo, è impossibile»: questa è stata la reazione iniziale della scena degli sviluppatori GBA quando Joshua ha annunciato il suo progetto. Ora vuole dimostrare che questa impresa impossibile è invece possibile.

Ho parlato con Joshua delle sue motivazioni, del background tecnico e dei suoi piani futuri per il progetto.

Il primo prototipo fa scalpore

Joshua ha quasi 30 anni ed è un fan di Nintendo da molto tempo. All'inizio degli anni '90, era l'orgoglioso proprietario della console portatile viola di Nintendo. All'epoca, desiderava poter giocare a «Super Mario 64» sul suo GBA. Joshua ricorda: «Ho persino preso ingenuamente in considerazione l'idea di presentare una petizione a Nintendo per ottenere un porting». Circa vent'anni dopo, Joshua ha realizzato il suo sogno di «Super Mario 64» su GBA.

L'8 maggio 2024, lo sviluppatore di software ha pubblicato il primo video del suo progetto «Super Mario 64» per GBA sul suo canale YouTube. Qui mostra l'area iniziale del gioco con il castello e il giardino di Peach. Un piccolo triangolo rosso corre e salta. Il prototipo funziona a un frame rate basso, le texture e la geometria distorcono il paesaggio vuoto in opere d'arte astratte al minimo movimento. Ma il prototipo funziona, compreso il sistema di collisioni e la fisica.

Il video si diffonde rapidamente nella scena degli sviluppatori retrò e GBA. La stessa scena che gli aveva sconsigliato questa impresa perché «impossibile». Questo non ha scoraggiato lo sviluppatore di software dell'epoca. Al contrario, lo ha spronato: «Mi piace proporre e confutare ipotesi».

Progressi costanti

Per i prossimi aggiornamenti, Joshua si concentrerà sul modello dei personaggi e sulle ottimizzazioni tecniche. Il triangolo astratto come personaggio principale del gioco è ormai storia. Ora un «vero» Mario corre nell'ambiente pixelato, anche se non è ancora animato e rimane semplicemente in posa a T. Ora è possibile esplorare anche l'interno del castello di Peach e il primo livello del gioco. Inoltre, il gioco funziona anche in modo molto più fluido. In alcune scene di gioco, Joshua raggiunge i 30 FPS.

Per il progetto Joshua utilizza il linguaggio di programmazione Rust. Ha scritto l'intero codice da zero, quindi, a rigore, non si tratta di un «port», ma di un remake sviluppato da zero per il GBA. Il termine «demake» è più appropriato a causa delle limitazioni tecniche dell'hardware.

È incredibilmente difficile sviluppare da zero un gioco 3D così complesso per la piccola console portatile di Nintendo senza una base. L'hardware ha molte limitazioni che Joshua deve programmare. Il GBA non supporta numeri in virgola mobile nella sua logica di calcolo, ma solo numeri interi. Inoltre, la console portatile non dispone di un hardware 3D dedicato, per cui tutto deve essere renderizzato pixel per pixel, come, ad esempio, nel caso di «Doom» e «Quake».

Anche la scarsa quantità di RAM (32 KB di memoria veloce, 256 KB di memoria lenta) e la debole potenza di calcolo del sistema causano problemi: «Il GBA è diverse migliaia di volte più lento di un moderno computer portatile di fascia media».

Joshua deve la sua grande esperienza nell'hardware GBA a diversi pionieri della scena dello sviluppo di questa console: «Vorrei ringraziare progetti come OpenLara e persone come 3DSage per aver mostrato al mondo cosa è possibile fare con le moderne conoscenze sul GBA».

Nonostante le grandi limitazioni, il GBA nasconde poteri inimmaginabili.
Nonostante le grandi limitazioni, il GBA nasconde poteri inimmaginabili.
Fonte: Shutterstock

Nonostante queste limitazioni, Joshua riesce a compiere progressi significativi in un arco di tempo molto breve. A circa un mese dal lancio del progetto, Mario corre già per il mondo con animazioni reali. L'idraulico ha anche «riappreso» parte del suo set di mosse dal gioco originale: salti, capriole in avanti e all'indietro, salti in lungo, salti tripli: assomiglia molto al gioco «vero»! Anche il frame rate è molto più stabile e più elevato grazie a varie ottimizzazioni in background.

Lo stato attuale e uno sguardo al futuro

Joshua ha lavorato su ulteriori contenuti nell'ultimo aggiornamento. Il gioco presenta ora stelle collezionabili e porte che trasportano l'idraulico in diversi livelli. Mario ha anche imparato più mosse (Ground Pound, Wall Sliding e Wall Jumping) e si muove in modo molto più naturale nell'ambiente di gioco grazie ad animazioni più fluide e a una telecamera migliore.

Ma Joshua non è ancora soddisfatto: «Il prossimo passo è l'aggiunta di elementi più complessi come gli avversari. Ma resta da vedere se rientreranno nel budget per le prestazioni».

Joshua continua a lavorare diligentemente in background all'ottimizzazione del gioco per poter incorporare ulteriori elementi. L'attuale modello di Mario è composto da soli 134 triangoli (l'originale per N64 ne ha ben 764). Joshua mi assicura che la versione attuale del gioco funziona davvero sull'hardware originale del GBA: «Il gioco è ancora più bello sul GBA perché l'LCD ha un effetto ‹ghosting› che fa sì che i fotogrammi consecutivi si confondano. In questo modo il gioco risulta ancora più fluido».

Ecco come si presenta il Mario di Joshua.
Ecco come si presenta il Mario di Joshua.
Fonte: Joshua Barretto

Tuttavia, lo sviluppatore di software non vuole replicare l'intero gioco «Super Mario 64» con tutti i suoi livelli e le sue funzioni: «Il mio obiettivo è dimostrare che si può fare», spiega Joshua. Se la cosa dovesse funzionare, potrebbe immaginare di scrivere un gioco 3D completamente nuovo per il GBA con le basi che ha sviluppato: «Sono un grande fan dei giochi open world e penso che un grande mondo aperto sul GBA sarebbe una dimostrazione impressionante di ciò che la console può davvero fare quando viene spinta ai suoi limiti».

Joshua trova particolarmente affascinanti i voxel: potrebbe quindi immaginare di lavorare a un demake di «Minecraft» per il GBA. Joshua ha già acquisito esperienza con mondi di gioco aperti in ottica voxel. Da qualche tempo sta lavorando all'RPG open world «Veloren», che è possibile scaricare per Windows, Mac e Linux gratuitamente.

«Veloren» è molto bello.
«Veloren» è molto bello.
Fonte: Joshua Barretto

È improbabile che Joshua rilasci il progetto «Super Mario 64»: «Nintendo protegge la sua proprietà intellettuale in modo molto rigoroso, quindi non posso distribuire nulla con gli asset Nintendo. Tuttavia, ripulirò il codice sorgente e lo pubblicherò in modo che altri possano imparare da esso o compilare il gioco per giocarci autonomamente».

Immagine di copertina: Joshua Barretto

A 46 persone piace questo articolo


Potrebbero interessarti anche questi articoli

  • Retroscena

    Nintendo DS è la console portatile di maggior successo di tutti i tempi – perché?

    di Cassie Mammone

  • Retroscena

    I videogiochi platform 3D: dalla scoperta della terza dimensione alla caduta nel dimenticatoio

    di Cassie Mammone

  • Retroscena

    Buon compleanno «Mario Kart 8» – il miglior «Mario Kart» di tutti i tempi compie dieci anni

    di Domagoj Belancic

Commenti

Avatar