Com'è nato

La prova di Psiche è nato come progetto indipendente di un appassionato di programmazione a basso livello. Venivo da C e C++, e volevo imparare a scrivere un gioco con un linguaggio moderno e più semplice: così ho scelto Odin.

È stato prima di tutto un percorso formativo. Costruire un gioco intero, dalla finestra all'ultimo suono, mi ha fatto capire come lavora il linguaggio: come dispone i dati, come gestisce la memoria, cosa ti chiede e cosa ti restituisce. La favola di Amore e Psiche, dalle Metamorfosi di Apuleio, ha dato una forma a quel percorso: un gioco sul vedere e sul fidarsi, dove ciò che al buio sembra unito è unito.

Perché Odin

Odin tiene ciò che mi piace del C, dati semplici, procedure e controllo esplicito della memoria, e lascia cadere molto di ciò che rende pesanti C e C++: niente header, nessun sistema di build da combattere, nessun meccanismo nascosto. Un solo comando compila tutto il gioco, e il compilatore resta severo (-vet -strict-style) senza mettersi di mezzo.

La sua libreria standard copre più di quanto mi aspettassi: il salvataggio è sigillato con ChaCha20-Poly1305 da core:crypto, senza installare nulla. E i binding di raylib arrivano insieme al compilatore.

Perché raylib

raylib offre finestra, input, audio e GPU attraverso un'API C piccola e leggibile, e niente di più. Non c'è un motore che decide come va fatto il gioco: il renderer, le regole, il risolutore e il suono sono tutti scritti a mano sopra di essa. Era proprio questo lo scopo.

Tutto fatto dal codice

Nel gioco non c'è un solo file di immagine o di audio. Il palazzo è costruito da liste di parallelepipedi, il cielo, le nuvole e le catene di monti sono shader GLSL, e ogni suono è sintetizzato: musica generativa per ogni atto, una lira pizzicata, flauto e campane, l'atmosfera di ogni luogo, i passi. La cartella assets/ del repository contiene solo ciò che viene compilato nel gioco: i livelli, gli shader e due font sotto SIL Open Font License.

Ogni livello è un semplice file di testo, un pezzo per riga. Un verificatore costruito sul risolutore del gioco dimostra che ogni livello si può finire, che ogni pezzo serve e che i frammenti nascosti della favola sono facoltativi.

Qualche numero: circa 20.000 righe di Odin, 19 livelli in quattro atti, più di 100 commit nei primi dodici giorni.

Claude come copilota

Ho usato Claude Code come copilota di programmazione. Seguendo la mia guida, e sempre sotto la mia supervisione, ha scritto buona parte degli algoritmi. Il level design invece è mio: ogni diorama, ogni illusione e ogni enigma li ho disegnati, giocati e giudicati io, un livello alla volta.

Questo sito

Impostazioni

Lingua
Animazioni
Dimensione del testo

La tua privacy

  • Niente cookie, niente account, niente statistiche.
  • Le tue impostazioni restano solo in questo browser, nel localStorage. Non lasciano mai il tuo dispositivo, e puoi cancellarle qui.

Cosa conserva questo browser

localStorage · psyche:settings

Niente: stai usando le impostazioni predefinite.