else Heart.Break()
else Heart.Break() è uno di quei giochi di cui non ho saputo niente fino al momento in cui è uscito. E invece, sviluppato dal piccolo team capitanato da Erik Svedäng, è un gioco che è stato in lavorazione per ben 5 anni, ricevendo anche fondi dal Nordic Game Program – lo stesso che, nel 2006, finanziò parte dello sviluppo di LIMBO.
In poche righe, viene descritto come:
un’avventura punta e clicca 3D
in cui si fa dell’hacking, con un linguaggio di programmazione in-game chiamato SPRAK
in un open world dinamico
dove le nostre scelte hanno delle conseguenze.
Guardando gli screenshot non potevo fare a meno di chiedermi come tutto questo potesse funzionare, in quel mondo low-poly che sembrava costruito su di un plastico, pieno di cel-shading e colori accesi.
Ancora oggi non riesco a capire precisamente come, ma in buona parte funziona. Facciamo così: cercherò di spiegarlo a voi, sperando di capirlo anch’io.
Un’avventura cyberpunk cyberhipster
Protagonista della storia è Sebastian: un ragazzo qualunque che, con la sua sciarpa, il suo cappellino e il suo zaino, parte alla volta di Dorisburg per cominciare a lavorare per la Wellspring come venditore ambulante di lattine di soda. Un lavoretto, niente di più.
È una storia che comincia realmente quando si accorge che inizialmente la sua camera d’albergo è, per colpa di “un glitch nella porta. Capita ogni tanto.”, il bagno del piano.
Come, con queste premesse e nel giro di poche settimane, Sebastian arrivi a diventare un importante hacktivist di una piccola società segreta contraria all’establishment del Ministry è una cosa che non si riesce proprio a prevedere. Soprattutto, se si considera che tutto l’intreccio parte dal colpo di fulmine provato alla vista di una ragazza di nome Pixie, conosciuta per caso in un locale.
Il ruolo di hacktivist acquisito da Sebastian ci permetterà di vedere come la città di Dorisburg sia regolata da un linguaggio di programmazione che possiamo in buona parte manovrare a nostro piacimento e che, in maniera direttamente proporzionale alla nostra curiosità, ci può aprire a numerosissime ore di gioco, del tutto parallele all’intreccio principale.
Un realismo surreale
Quello di else Heart.Break() è un mondo che sa essere estremamente surreale ed estremamente reale allo stesso tempo. Da un lato si tratta di un mondo in cui tutto, dalla tazza di caffè alla porta della nostra camera d’albergo, ha un codice sorgente che può essere modificato; dall’altro è un mondo popolato di persone che non ti tengono per mano, dicendoti dove andare, cosa fare e come farlo. Se vi siete mai dovuti trasferire in un’altra città a voi sconosciuta potreste provare il perfetto dejavu.
Per la grandezza della sua ambizione, probabilmente non si presenta come il titolo più accessibile tra i generi a cui fa riferimento, ma non è detto che non lo sia affatto.
I personaggi
Il fatto che i personaggi (protagonisti e non) della vicenda si comportino in maniera per niente tradizionale rispetto ai videogiochi standard è forse uno di questi motivi, ma personalmente non la ritengo affatto una cosa negativa.
Ogni personaggio, in else Heart.Break() ci viene mostrato come se avesse impegni quotidiani da eseguire a determinate ore del giorno. Per questo la maggior parte delle conversazioni appaiono brevi e un po’ “goffe”. Raramente potremo parlare più di un paio di volte con qualcuno.
Ma è proprio questa goffaggine a rendere, secondo me, più piacevole l’immersione nel mondo e nella testa di Sebastian; che appare spaesato, come forse molti di noi nella sua posizione potrebbero apparire, ma non per questo meno determinato.
L’impacciataggine e l’imbranataggine di Sebastian (a quei livelli accessibili praticamente solo ai giovani con il perk della timidezza) nel cercare di conoscere Pixie, che per un bel po’ di tempo cercherà di mantenere la sua privacy, quasi senza accorgercene ci finirà a fargli fare la figura dello stalker. Più sullo stile di Scott Pilgrim con Ramona Flowers, però, quindi niente di malvagio. Lei non mancherà di farcelo notare, in ogni caso.
Dorisburg
Non avendo grandi guide all’interno del gioco, saremo costretti a girare parecchio per la città. Ma è girando ed esplorando che scopriremo ampie fette di quello che il gioco ha da offrire. Senza suggerircelo, il gioco ci permette anche di essere curiosi al punto da rischiare di spoilerarci parti del gioco stesso. Una possibilità che ritengo sia stata volutamente lasciata dagli sviluppatori.
Esplorando scopriremo tutti i locali e i bar che i giovani frequentano quando vogliono divertirsi e come, i più ribelli e vandali tra loro, si divertano a cambiare le luci dell’illuminazione cittadina quando nessuno è nei paraggi per beccarli.
Trovare dischetti sparsi per la città con diari, poesie e considerazioni strane, oppure constatare che un hacker è passato prima di te a mettere le mani su qualcosa mi ha dato molto l’impressione di una Dorisburg molto più grande e dalle diverse sfumature: alcune tangibili, altre nascoste.
Programmazione come puzzle solving
In un recente video del suo Game Maker’s Toolkit, Mark Brown cita la programmazione come “il miglior puzzle game del mondo” per quanto sia “open-ended” e soddisfacente una volta che si risolve un problema.
Il gioco viene descritto accessibile anche a chi non ha mai programmato in vita sua, ed è probabilmente vero. Ma, ancora una volta, il gioco non ci offre tutti gli strumenti su un piatto d’argento.
Al di là di alcune cose basilari, non ci sono veri e propri tutorial. Pur avendo la possibilità di leggere un manuale in-game sullo SPRAK (il linguaggio di programmazione del gioco), i puzzle vanno spesso risolti analizzando il codice degli oggetti attorno a noi, rompendolo, ricostruendolo e rimodellandolo secondo le nostre esigenze.
Proprio come prevede la gavetta di ogni buon programmatore!
Programmazione come tool / svago
Il fatto che virtualmente qualsiasi oggetto inanimato in else Heart.Break() abbia un codice che possiamo modificare, ci permette di facilitarci la vita in svariate occasioni. Possiamo, ad esempio, far si che una bottiglia d’acqua o una lattina di birra abbiano le proprietà del caffé e viceversa, così da non farci mai rimanere “a secco” di energie.
Oppure semplicemente possiamo sabotare il punteggio del cabinato arcade dell’Yvonne bar, così da farci fare migliaia di punti tutti insieme. A che serve, dite? Ma perché? Mo tutto deve avere per forza uno scopo preciso? :V
Il ritmo, la giocabilità e l’intreccio
else Heart.Break() non sembra essere costruito per essere veloce, nonostante sia un gioco popolato di appuntamenti da rispettare (“vediamoci alle 18 fuori all’Yvonne Bar”).
La visuale semi-isometrica manovrabile con il mouse e il ritmo generale dei personaggi e delle azioni, che mi ha ricordato molto quello del primo The Sims, pur rappresentando di tanto in tanto un problema non costituiscono un motivo per rendere meno interessante un gioco che mi è piaciuto tantissimo scoprire.
Spesso ho dovuto fare affidamento alla memoria e agli appunti che ho preso durante il gioco per ricordare nomi, luoghi, appuntamenti, operazioni da compiere e blocchi di codice.
Non mancano glitch, bug sparsi (che prontamente gli sviluppatori cercano di aggiustare) e situazioni strane, che sembrano lasciate in sospeso. Ma non ho potuto fare a meno di spenderci 30 ore, nonostante tutto e vedere almeno alcuni dei 4 finali possibili, dichiarati dagli sviluppatori.
Conclusione
Ho avuto parecchia difficoltà nello scrivere questo articolo. else Heart.Break() mi è molto piaciuto come esperimento e come esperienza in generale, ma la trovo parecchi difficile da raccontare in poche parole senza escludere qualcosa da quel tutto che, secondo me, rende il gioco migliore della somma delle sue singole parti.
Già solo l’aver scoperto che gli sviluppatori avevano indetto una game jam appositamente per sviluppare – con il linguaggio di programmazione presente nel gioco – piccoli giochi da inserire nei vari cabinati arcade presenti a Dorisburg è uno dei motivi per cui l’ho tanto apprezzato, nonostante le sue falle.
È come se bug e features si fossero mischiate in questo titolo che, di fatto, ci presenta un universo esplorabile e, in parte, manovrabile poiché gira su uno specifico codice sorgente. Un codice che possiamo imparare a conoscere e che potenzialmente ci può insegnare anche più di una cosa su come si programma in generale.
E poi ci sono quei piccoli particolari che – siano esistenti per davvero o siano solo frutto della mia immaginazione – rendono tutto più interessante e ampio di quanto non sia. A cominciare, ad esempio, dai molteplici significati che assume il titolo dei gioco, alcuni piacevolmente inaspettati.
Se dicessi altro, purtroppo, sarebbe spoiler.
E un gioco accessibile a tutti? Forse no, ma spero tanto di sbagliarmi e che la mia valutazione sia di incoraggiamento quantomeno per dargli una occhiata.
Commenti