Ho caricato lo snapshot di un famoso gioco isometrico su Claude e poi gli ho chiesto (con alcuni criteri molto specifici) di decompilare il gioco dallo snapshot e riscriverlo completamente in BlitzMax, con l’intenzione che tutto (menu, in-game, suoni, ecc.) funzionasse esattamente come nel gioco originale.
Porca miseria. In poco più di un’ora era pronto, e il risultato è sbalorditivo.
Il codice BlitzMax ottenuto è facile da seguire e commentato.
Per chiunque fosse interessato, questo era il mio prompt (utilizzando l’impostazione Low di Claude Opus 5.5):
ciao.
decompila questo.
vorrei che venisse convertito per blitzmaxNG 0.165.3.61.
Porta l’INTERO programma in blitzmax.
Codice molto semplice, pulito, facile da seguire e totalmente non ottimizzato.
Cerca di creare un suono equivalente per ogni suono del programma.
Fallo girare in una finestra da 1280x800, con il display del cpc scalato a 4x.
niente ottimizzazione.
niente fronzoli.
solo un porting diretto 1:1.
niente stranezze con la memoria per scorrere i dati, solo semplici array dove possibile.
la regola d’oro è mantenere il codice blitzmax IL PIÙ SEMPLICE POSSIBILE, e il più leggibile e facile da seguire possibile.
sul serio, niente cose elaborate o «sofisticate» in alcun modo!
In pratica lo stesso gioco, i remake saranno più facili da creare.
Ho provato con i sorgenti del mio gioco Bitume a migrare al mio framework C++ con Direct2D (un aggiornamento del framework Direct3D che avevo usato per il remake di Hurlements per Windows). E naturalmente funziona.
Ancora una volta, un altro tipo di gioco che stavo cercando di ricreare a mano in un progetto (creando una sorta di framework isometrico per CPC)… Cercando di imparare strada facendo (ho persino recuperato un articolo di Jon Ritman a riguardo da leggere). E l’IA può semplicemente fornirmi il codice, se voglio.
Ma va bene così, è solo «un’implementazione» tra le tante… Posso continuare ad andare avanti piano piano (senza fare pasticci).
Avevi intenzione di modificarlo e usarlo come base per un altro gioco? O è solo per il gusto di farne il porting?
Mi ha sempre incuriosito capire come venissero creati i giochi isometrici, soprattutto visti i limiti dell’hardware di allora. E il codice in BlitzMax è chiarissimo, si segue e si impara con estrema facilità. L’IA mi ha dato la possibilità concreta di esaminarlo e di comprenderne a fondo il funzionamento.
E devo proprio ammetterlo: Jon Ritman è un genio assoluto! Il rapporto di causa-effetto tra gli oggetti di gioco, le interazioni tra personaggi e oggetti, personaggi e superfici, nonché tra personaggi e personaggi, ha una profondità e delle sfumature davvero straordinarie. Non mi ero mai reso conto di quanto «Head Over Heels» fosse effettivamente geniale. Non è solo un capolavoro a livello di gameplay, ma anche di pura programmazione.
«Head Over Heels» è il mio gioco per CPC preferito in assoluto, quindi dare un’occhiata dietro le quinte ha un valore davvero speciale per me. Quasi quasi chiedo a Claude di fare il porting di Rasputin la prossima volta…
Purtroppo il personaggio del giocatore è un pasticcio di pixel e nessun tasto di controllo lo fa muovere.
Non appena il mio limite di utilizzo si resetterà, continuerò a lavorarci.