La storia di Zachtronics e dei programming games. Un’esperienza meravigliosamente complessa tra il gioco e lo sviluppo.
La gratificazione di portare a termine un livello di un puzzle game trascende la padronanza delle meccaniche.
La logica e l’intuizione, lo Yin e lo Yang della mente del risolutore di puzzle, sono i veri strumenti che il giocatore utilizza e che determinano il ritmo di gioco. È anche per questo che di puzzle game “puri” ne esistono davvero pochi. Portal fa affidamento sulla narrazione per cercare di guidare il procedere dell’avventura, The Witness sull’esplorazione ambientale, Candy Crush su grafiche clickbait, e così via.
In tutto questo, Zach Barth, il fondatore di Zachtronics, come gestisce la progressione nei suoi giochi? Cosa aggiunge all’esperienza puzzle per renderla più fruibile e godibile?
Ecco… diciamo pure che Zach Barth se ne sbatte il caz*o, amici.
Più che di un puzzle game “puro”, si parla di un’esperienza hardcore: giochi in grado di prosciugare ogni singolo neurone rimastoci o di darci alcune tra le più grandi soddisfazioni che il mondo dell’intrattenimento ha da offrire.
Questi giochi sono famosi per essere complessi. L’articolo si focalizzerà sui punti in comune tra le produzioni e ci sarà solo qualche accenno alle singole meccaniche di ogni gioco.
I giochi Zachtronics sono piccoli ambienti di sviluppo, ognuno col proprio “linguaggio” di programmazione. Che si tratti di costruire circuiti elettrici in TIS-100 e SHENZHEN I/O, di formare legami chimici in SpaceChem o di praticare l’alchimia in Opus Magnum, lo scopo di questi giochi è di
ideare e programmare un processo automatizzato che porti a termine un compito.
In generale, Zach Barth prende sottoinsiemi dell’Ingegneria e li estremizza, creando esperienze di gioco familiari per i più tecnici, ma accessibili per i nuovi arrivati (giusto per i primi tre livelli, di solito).
Per gli sviluppatori, si tratta di pensare a un mondo di gioco verosimile e che permetta di usare svariati strumenti per risolvere i puzzle. Per l’utente, la chiave sta nel decifrare come funzionano questi strumenti e le meccaniche che ne derivano.
Nerd&Dev, oltre ad essere un nome che suona meglio pronunciato che letto, cerca di unire il mondo dei giocatori con quello degli sviluppatori. È un luogo virtuale dove scambiare opinioni su giochi passati, presenti e futuri (e Metroid 4 che non uscirà mai). Un buon modo di leggere questi articoli non è chiedersi se sia tutto giusto o sbagliato, ma è trovare una propria chiave di lettura sul perché alcuni videogiochi siano così divertenti e interessanti.
Il tutorial che non c’è
TIS-100 è stato il mio primo programming game, ed è ancora oggi uno dei miei preferiti in assoluto. Diciamo, però, che se fossi ad un primo appuntamento, non sarebbe il gioco che mi vanterei di aver finito (o forse sì, o forse dovrei smetterla di parlare di videogiochi agli appuntamenti). In ogni caso, per i livelli di TIS-100 vengono dati degli input numerici e un output previsto. Il giocatore muove ed elabora i dati in entrata per ottenere il risultato richiesto.
Dodici nodi assembly su una schermata nera e tabelle di numeri scritti con font di qualche epoca preistorica del Commodore. Non la più user-friendly delle schermate
La difficoltà del gioco non è data dall’obiettivo del livello, ma dalla
limitatezza degli strumenti in nostro possesso. La struttura ricalca
Assembly, un linguaggio di programmazione piuttosto complesso e anche chi programma in C o Java non è abituato a ragionare in maniera così vicina al linguaggio macchina. Ovviamente, non è un gioco sul programmare in Assembly, ma è una esperienza che ne riprende il processo di apprendimento e utilizzo.
Togliamo tutte le parti della programmazione che fanno schifo nella vita vera. Non facciamo un gioco sul programmare in C perché semplicemente non sarebbe divertente!
Zach Barth
Quello che TIS-100 mantiene dell’Assembly è la difficoltà di utilizzo. La totale assenza di progressione può mettere alla prova anche i più tenaci. Semplicemente, ad un certo punto ci si trova bloccati e non si sa più che fare.
Rileggere il manuale di gioco, staccare il cavo Ethernet per non finire “casualmente” su una soluzione del livello e rimanere a pensare “
Ma chi me l’ha fatto fare?“. Queste sono solo alcune delle esclusivissime features di TIS-100 e di altri programming games del buon Zach.
Se non sei capace, il gioco non ti farà credere di esserlo. “I giochi Zachtronics
non ti fanno sentire formidabile, ma pretendono che tu lo sia“, ci ricorda lo stesso Zach.
Tentativo dopo tentativo, dopo aver cancellato l’intero progetto tre o quattro volte, si arriva a una risicatissima soluzione. La gioia monta per un istante, ma poi arriva
l’info-grafica coi risultati della community e scopri di essere nel percentile più infame della storia dell’umanità.
Ed è qui che, oltre alle trame accennate nei suoi giochi, Zach Barth aggiunge la meta-narrazione e racconta con realismo balzachiano il senso di inadeguatezza dell’uomo comune.
In parole povere, questi giochi sono un casino.
Leaderboards: il vostro peggiore incubo
The Optimization Game
SHENZHEN I/O condivide il linguaggio simil-Assembly di TIS-100, ma aggiunge la possibilità di
creare e muovere i nodi a nostro piacimento. Inoltre, sono presenti moltissimi nuovi componenti, alcuni anche con uscite audio/video rudimentali. SHENZHEN I/O ha davvero tanto da offrire, ed è infatti accompagnato da un
praticissimo manuale di istruzioni di
40(!) pagine.
Fino ad adesso, abbiamo usato il termine “puzzle game” per definire i giochi Zachtronics. In verità, non è sensato definirli tali. Un puzzle game prevede una soluzione più o meno univoca, mentre la libertà tipica dei programming games può dare luogo a migliaia di soluzioni possibili. Parafrasando Orwell,
tutte le soluzioni funzionano, ma alcune soluzioni funzionano più di altre.
In che senso? Diciamo che far funzionare lo stesso programma con la metà delle righe di codice e con un costo di produzione inferiore è chiaramente positivo, ma tra il dire e il fare c’è di mezzo il bestemmiare. Risolvere un livello di SHENZHEN I/O non è impossibile, ma rendere efficiente il programma è tutta un’altra faccenda.
In questo livello, bisogna programmare un pannello al neon animato (molto Aesthetic/Blade Runner), commissionato da una squadra di e-sport
9¥ – 252 Watt – 20 righe – Mio risultato (nella media)
10¥ – 124 Watt – 2 righe – World record (link)
Ogni gioco Zachtronics tiene conto di
tre parametri che determinano la bontà della nostra soluzione. Nel caso di SHENZHEN I/O, questi tre parametri sono
Costo di produzione,
Potenza elettrica e
Righe di codice. Non c’è un giudizio oggettivo sulle nostre performance, ma una leaderboard che compara il nostro risultato con quello delle altre migliaia di persone che hanno completato lo stesso livello. È solo il giocatore a decidere se la propria soluzione è soddisfacente, confrontandosi con la community.
Spesso non esiste una soluzione con tutti i parametri al minimo. Lo spazio a disposizione per costruire il circuito è limitato e il giocatore deve trovare un giusto compromesso tra efficienza e costo. Nell’esempio qui sopra, lo youtuber
misotanni ha speso poco più di me, ma con risultati nettamente migliori in termini di performance. Altre persone potrebbero arrivare a spendere anche la metà, ma con il compromesso di dover scrivere più codice o di avere un programma poco efficiente.
Inutile dire che le possibilità di risoluzione sono pressoché infinite. SHENZHEN I/O abbraccia la propria
libertà d’azione in una interessantissima
sandbox-mode dove creare LCD games stile Mr. Game & Watch. Sono più un esercizio di stile che altro, ma il risultato è quasi ipnotizzante.
Fun-fact: Zach Barth è anche noto per aver sviluppato Infiniminer nel 2009. Forse non molti conoscono questo gioco, ma quello che è interessante è che un certo Markus Persson (meglio noto come Notch) è entrato in possesso del codice sorgente di Infiniminer e ne ha tirato fuori il prototipo di un giochino chiamato Minecraft.
[ vedere il successo di Minecraft, ndr] È stato come vedere un incidente d’auto in slow-motion
Zach Barth
Da dove cominciare?
Opus Magnum è il più accessibile dei giochi Zachtronics. Se lo spazio di lavoro in SHENZHEN I/O era limitato, in Opus Magnum si possono costruire macchine di qualunque grandezza si voglia. Per la precisione,
macchine alchemiche che sintetizzano qualsiasi oggetto la vostra fantasia steampunk sia in grado di immaginare, dal carburante per dirigibili alle cure per i postumi da sbornia (perchè anche nella Londra vittoriana si alzava il gomito).
Con questo gioco, Zach Barth ha voluto sviluppare
un’avventura che gli utenti fossero in grado di completare. Accessibilità e spettacolarità sono le caratteristiche che permettono a Opus Magnum di essere apprezzabile da un pubblico più vasto. I livelli sono più facili da completare e vederli funzionare è una delle cose più appaganti che esistano su questo pianeta. La narrativa e l’estetica del gioco permeano l’esperienza, contribuendo non poco al coinvolgimento del giocatore, ma mantenendo il fulcro nel gameplay e nei puzzle.
Opus Magnum, tra tutti i giochi Zachtronics, è sicuramente il gioco da cui partire. Non è un gioco facile (nessuno di questi giochi lo è davvero), ma
è facile comprendere come funzionano gli strumenti messi a nostra disposizione.
Per chi fosse spaventato dal confronto con la community, può decidere di giocare l’intera avventura in
Hermit Mode, una modalità che nasconde le leaderboards e permette di preoccuparsi solo che il proprio progetto funzioni. Non mi sento di consigliare questa modalità, però, visto che le idee migliori nascono proprio dal confronto coi risultati degli altri.
Il gioco permette anche di esportare le proprie soluzioni in
GIF, permettendo all’utente di condividere più comodamente i propri risultati (o di far credere ai propri amici di essere intelligente).
La domanda a questo punto sorge spontanea:
Questi giochi sono divertenti? La risposta è che neanche Zach Barth lo sa.
Non posso realmente sapere se un mio gioco sia divertente o no. Se invito qualcuno a provare il gioco che stiamo sviluppando, finisce sempre per essere una scena pietosa.
Zach Barth
Io credo che siano esperienze, ambienti di sviluppo mascherati da videogioco.
Programmare non è divertente se non ti piace farlo e la stessa cosa vale per i programming games.
Il fattore unicità è davvero raro da trovare nell’industria dell’intrattenimento e Zachtronics è la prova che, creando ottimi prodotti e discostandosi dalla massa, si può creare ed espandere una nicchia di mercato.
Sono giochi criticabili sotto molte regole del buon Game Design, ma quasi mai criticati. Ognuno di questi risulta essere un’esperienza ricca e coinvolgente, nonché educativa a suo modo. Il mondo accademico e i nuovi studi indie dimenticano spesso che
il Design è l’arte di soddisfare un bisogno e non di creare un’opera d’arte. TIS-100, SHENZHEN I/O e Opus Magnum sono semplicemente i
Zach-like, i programming games migliori mai fatti.
#LiveTheRebellion