Skip to main content

Tag: Keita Takahashi

Il (vero) cyberpunk è invisibile agli occhi: Else Heart.Break()

Il (vero) cyberpunk è invisibile agli occhi: Else Heart.Break()

  • Luca Rungi

  • 12 settembre 2022
  • noninteragire

Else Heart.Break(), fin dal titolo, non fa neanche finta di nascondersi dietro a un dito: per decifrarlo correttamente, infatti, sono già necessari un minimo di rudimenti di programmazione1. Il progetto nasce da un’idea del programmatore e sviluppatore Erik Svedäng e viene plasmato nell’arco di cinque anni (2010-2015) grazie al programma Nordic Games e agli sforzi congiunti di un team ridotto (tra cui spicca il nome di Niklas Åkerblad2). Tuttavia, questa piccola perla poco conosciuta di ormai sette anni fa (e disponibile per PC, Mac e Linux) è ben lontana dal voler essere una mera esperienza didattica.

Il piccolo team svedese, infatti, vuole innanzitutto raccontare una storia e, nel mentre, spronarci a interagire con gli oggetti più scontati (come una tazza di caffè o una porta) in modi che mai avremmo immaginato. Se questo ha stuzzicato la vostra fantasia, vi auguriamo una buona lettura!
C’è tanto da dire, ma niente paura: nulla di ciò che seguirà vi priverà della possibilità godere di Else Heart.Break() in futuro.

E il cyberpunk m’è dolce in questa Dorisburg

Sebastian è un giovane ragazzo che, improvvisamente, riceve un’offerta di lavoro per telefono, un’opportunità che lo porterà sulla piccola isola fittizia di Dorisburg. Giunto al porto si reca subito all’hotel; non farà in tempo a provare a entrare nella sua stanza che si verificheranno le prime stranezze le quali, oltre a lasciare sbigottiti, saranno ottimi indizi taciti e gratuiti per una parte del potenziale che potremo scatenare in futuro.

Else Heart.Break() ha un’alternanza giorno/notte, uno scorrere del tempo graduale e una routine giornaliera per ciascun personaggio dell’isola. Ah e Sebastian ha il brutto vizio di addormentarsi per strada se portato allo stremo!

Una grande nota di merito di Else Heart.Break() sta nel fatto di non dare mai al giocatore indicazioni a schermo sui suoi obiettivi correnti. Queste informazioni ci saranno comunicate dai personaggi durante le conversazioni, ma starà a noi orientarci con una piccola mappa turistica e grazie ai riferimenti offerti dai nostri interlocutori. L’assenza di una guida diretta, tuttavia, provoca un fenomeno interessante nel giocatore curioso e disposto ad accettare queste condizioni: la sovrapposizione completa di noi e del nostro avatar. Sebastian è infatti tanto spaesato quanto il giocatore: il risultato è che, quando si perderà nelle viuzze di Dorisburg, scoprendo abitazioni abbandonate o meno e luoghi curiosi, lo farà insieme a noi. Lo stesso vale per le conversazioni con i primi personaggi, durante le quali proverà a farsi accettare e a entrare nelle cerchia dei ragazzi e ragazze (una in particolare) dell’isola.

Un aspetto particolarmente potente si manifesta quando, grazie ai nostri sforzi, faremo delle piccole o grandi scoperte in maniera autonoma, senza indicazioni o avvisi a schermo di congratulazioni di alcun tipo. Sebastian e il giocatore, in queste occasioni, sono gli unici e i veri fautori di queste svolte genuine guidate esclusivamente dall’ingegno e dalla volontà di sperimentare, di usare la conoscenza ottenuta per sviluppare idee e opportunità tramite l’iterazione. E tutto ciò, naturalmente, caricherà in maniera particolare anche tutte quelle piccole svolte di trama che si dipaneranno nel corso dell’avventura di Sebastian.

Finora non si è ancora veramente discusso di ciò che rende Else Heart.Break() una piccola perla tutta da scoprire. Per farlo, è giusto partire da un piccolo parallelo con un titolo molto diverso dal punto di vista del tono, ma molto simile nelle intenzioni.

La bomba in testa

A una manciata di giorni dalla fine del 2020, Keita Takahashi pubblica finalmente il suo ultimo gioco dopo diversi anni di sviluppo: Wattam (Funomena, Annapurna Interactive). In pieno rispetto della tradizione dei titoli ideati precedentemente, il punto di Wattam è farci tornare bambini, ponendoci davanti a un contesto non solo spiccatamente vivace e spensierato a livello estetico, ma anche ricchissimo di stimoli che portano gli utenti a giocare e a sperimentare istintivamente senza forzature esterne.

Wattam, tuttavia, nasconde anche un sottotesto più che mai attuale e che funziona parecchio proprio in virtù del contrasto – strumento talvolta dimenticato – del messaggio di fondo con l’atmosfera e il tono dell’opera a livello superficiale. Per citare lo stesso Keita:

Usually, people have different layers in their minds. Even me, I have lots of layers; each layer of Keita Takahashi has a different perspective and different thoughts. Like, I don’t play video games, but I like to make video games.

Keita Takahashi su se stesso.

Keita ha avuto l’idea per Wattam guardando i suoi figli che si divertivano a costruire e distruggere subito dopo, da cui l’origine della bomba innocua del Sindaco.

Il mondo di Wattam, in principio molto ridotto, si allarga presto sia a livello spaziale che “demografico”, generando meraviglia proprio in virtù dell’espansione graduale del contesto di gioco in cui siamo stati catapultati. Else Heart.Break() fa un’operazione simile, ma in maniera improvvisa e positivamente sconvolgente: ci presenta infatti dapprima un mondo, l’isola di Dorisburg, nella sua interezza così com’è, ma accennando fin dalle prime battute di gioco alla possibilità di poter intervenire su parecchi elementi per raggiungere i nostri obiettivi grazie all’ingegno. Questo mondo poi, a un certo punto, si spalanca di fronte a noi rimanendo tuttavia esattamente come prima. Com’è possibile? Semplice: non è stata Dorisburg a cambiare, ma le possibilità di Sebastian di interagire con essa.

È proprio qui che sta l’uovo di Colombo, uno smacco brillante a tutti quegli open-world ipertrofici che ormai stanno saturando il mercato tripla A. Se il trucco magico della meraviglia sta nella percezione dell’utente e non nelle mere dimensioni di un contesto virtuale, allora forse diventare matti per creare mappe sempre più grandi e dettagliate è un po’ come guardare il proverbiale dito al posto della luna.

Trovare il nostro primo modifier è stata un’epifania incredibile. Cosa dicevamo qualche immagine fa? Che il sonno era un problema? Tsk Tsk.

Tornare bambini hackerando lattine

Ciò che permette a Sebastian di manipolare molti degli elementi che lo circondano, a prescindere e a dispetto della loro natura elettronica, è il cosiddetto modifier: un apparecchio di medie dimensioni portatile dall’aspetto sì tecnologico ma al tempo stesso un po’ vetusto (due lampadine  e tubi rigidi campeggiano in bella vista lungo i bordi). Una volta utilizzato su qualcosa di interagibile, tuttavia, ecco che accade la magia: lo schermo del modifier si piazza in primo piano, mostrando due cose molto importanti: (1) il codice relativo a quell’oggetto preciso e (2) i suggerimenti per le funzioni già disponibili per lo stesso.

Avete capito bene: in Else Heart.Break() è possibile cambiare la programmazione degli oggetti più svariati in maniera permanente. Il tutto, chiaramente, con qualche limite doveroso. Il già citato Erik Svedäng, aiutato da Johannes Gotlén, ha creato un linguaggio di programmazione accessibile proprio grazie ai modifier, detto Sprak (ovvero “linguaggio” in svedese), per offrire ai giocatori strumenti potenti ma innocui per la corretta funzionalità del titolo.

Lo Sprak, in poche parole, è una sovrastruttura dei sistemi di gioco creata appositamente per poter essere manipolata a piacere senza rischi, offrendo inoltre già parecchi strumenti per scatenare il nostro ingegno in partenza, senza impedirci di crearne di nuovi.

Nel gioco troverete tantissimi floppy contenenti le cose più svariate e anche divertenti. Interagendo con il modifier coi computer, invece, spesso troverete esempi pratici da cui trarre spunto.

Se siete arrivati a questo punto della lettura, forse vi sarà sorto un interrogativo: bisogna essere programmatori per giocare a Else Heart.Break()? Chi scrive, prima di giocarlo, aveva affrontato qualche corso nel tempo libero e quindi è difficile capire come potrebbe essere percepito da chi non ha mai sentito parlare prima di variabili, funzioni eccetera. Quel che è certo, tuttavia, è che il gioco offre sia occasioni che materiale diegetico per venire a conoscenza e fare pratica coi primi rudimenti. Oltre a qualche personaggio disponibile, troveremo infatti dei floppy in particolare (con la possibilità di consultarne e riscriverne il contenuto senza doverli inserire nei computer) che spiegano in una manciata di paragrafi alcuni concetti base.

Per incuriosirvi ulteriormente, ecco di seguito un esempio molto pratico e utile: in Else Heart.Break() le porte, così come le chiavi stesse, sono liberamente hackerabili3 tramite il modifier. Una porta chiusa è sbloccata da una chiave contenente un numero intero corretto (esempio: 123456). Se il punto quindi è aprire una porta chiusa con una chiave che non abbiamo, le soluzioni potrebbero essere due: la prima è quella di intervenire su una chiave qualsiasi in nostro possesso per implementare un cosiddetto brute force e provare tutte le combinazioni possibili in sequenza; la seconda consiste invece nel cambiare direttamente la destinazione di un’altra porta accessibile (divertente, ma devastante per i poveri npc se non gestito a dovere).

Ora solo Sebastian può accedere alla nuova destinazione speciale. La destinazione per esteso tra virgolette usata nella funzione Goto() è mostrata sempre in chiaro nel modifier per tutte le porte.

E questo è niente! Facciamo qualche altro esempio di oggetti manipolabili: caffè, lattine, computer, lampioni, una tartaruga, sigarette, cabinati. Una menzione speciale va ai quadri elettrici, una vera e propria sorpresa nella sorpresa di cui non vogliamo privarvi. Teneteli d’occhio quando ci giocherete.

Un piccolo bonus: come appena accennato, nel mondo di gioco sono presenti anche computer e cabinati liberamente accessibili. Se vi state chiedendo se sia possibile modificare o creare giochi dentro al gioco sì, avete capito benissimo (e non solo brevi avventure testuali, molte già presenti e tutte da scoprire). Inoltre, tutti gli oggetti in grado di collegarsi alla rete possiedono la funzione “Connect()”, grazie alla quale è possibile collegarsi ad altri oggetti connessi a loro volta per accedere a tutte le proprietà a loro disposizione. Un’ottima opportunità per espandere la funzionalità di un oggetto e arricchirne le potenzialità in maniera esponenziale.

Strano luogo vero? A voi scoprire di cosa si tratta.

Un gioco che stimola e richiede interesse

È innegabile che Else Heart.Break(), in un certo senso, se ne freghi dell’accessibilità immediata e di proporsi a un pubblico il più ampio possibile. Il coraggio di Else Heart.Break() sta proprio nel fatto di porsi come un modo estremamente originale di muovere i primi passi nel mondo della programmazione, rifiutando al tempo stesso qualsiasi compromesso che ne vizierebbe eccessivamente l’intento.

Il gioco è inoltre potenzialmente un sandbox ghiotto per tutti coloro che hanno già dimestichezza e che potrebbero quindi riuscire a ottenere risultati ancora più radicali ed esilaranti (ci siamo trattenuti, ma se andate a sbirciare ne vedrete delle belle). Finché c’è genuino interesse e voglia di mettersi a provare spinti dalla curiosità, Else Heart.Break() è un parco giochi cyberpunk straripante di stimoli.

Il fatto che il modifier possa essere recuperato in più di un modo, ma senza che mai nulla venga suggerito dall’alto come prevederebbe la norma dei giochi moderni, è prova ulteriore del fatto che Else Heart.Break() non voglia mai prenderci per mano, lasciando che il protagonista faccia il suo percorso (e noi con lui). Il tutto, comunque, è sempre coadiuvato da una parte narrativa che accompagnerà Sebastian, dando forma ai nostri desideri e obiettivi in maniera spontanea senza mai risultare pedante.

Poteva forse mancare un omaggio a Ingmar Bergman in un gioco svedese?

La grande differenza tra Else Heart Break() e il resto dell’offerta probabilmente sta in questo: il gioco sacrifica l’accessibilità istantanea per donare strumenti utili a imparare, divertendosi, i rudimenti di una competenza reale. Questo fattore apparentemente innocuo in realtà rappresenta una spaccatura rispetto alla norma del medium, in quanto gran parte, se non la quasi totalità, delle competenze – intese come le nozioni pratiche necessarie a completare un dato titolo – che si acquisiscono fruendo dei videogiochi, sono superflue e fittizie in quanto valide, seppur in modo squisitamente effimero, solo all’interno del contesto del gioco in questione. Queste competenze, tuttavia, sono destinate a essere prive di qualsiasi significato o utilità al di fuori di esso. Imparare invece che cos’è una funzione, per esempio, ha applicazioni oggettivamente più diramate e istruttive/costruttive.

A scanso di equivoci, il paragrafo precedente naturalmente non vuole essere bacchettone e denigrativo in generale verso gran parte dei videogiochi e il loro potenziale espressivo o competitivo (come le cosiddette speedrun). Se non ci credete, vi ricordiamo il papiro dedicato al primo Shin Megami Tensei, dell’anno scorso. Tuttavia, se in certi periodi sarete particolarmente dubbiosi riguardo il dedicare tempo a questo hobby, forse è perché nella vostra mente starà risuonando un eco della considerazione di poco fa.

Poteva forse mancare un omaggio a Ingmar Bergman in un gioco svedese?

IF (USER.INLOVE)
{REDISCOVER(CYBERPUNK)};

Nel titolo dell’articolo si era fatta la premessa di come Else Heart.Break() riesca a restituire una visione del cyberpunk estremamente originale ma al tempo stesso pura e fedele negli intenti. Dal punto di vista estetico, il titolo offre sicuramente un tocco diverso dal solito, grazie alle sue tinte vivaci e a piccoli dettagli insoliti usati, per esempio, per i volti delle persone che si riscontrano spesso anche nei dipinti dello stesso Niklas Åkerblad. Non è un caso che l’aureola multicolore, mostrata mentre un personaggio sta manipolando un oggetto tramite il modifier, sia anche presente nella copertina del suo disco Vandereer (e anche in un quadretto nel menu principale).

A proposito di musica, è assolutamente doveroso sottolineare come la colonna sonora spesso accompagni perfettamente l’azione di gioco, con i suoi motivi lo-fi frammisti a tracce più giocose elettroniche, arricchite da dettagli inaspettati. Insomma, una commistione che ben si combina con il tono dell’opera.

Banalmente, forse, ciò che Else Heart.Break() riesce a capire molto bene è che nel termine “cyberpunk” è compresa la parola “punk”. Ciò sottintende un moto sovversivo o comunque una indole contraria rispetto a quella della maggioranza. Questo è molto interessante, in quanto è sicuramente accomunabile all’intenzione di Erik e Niklas di creare un videogioco costruito intorno a un tipo di esperienza ben preciso, rifiutandosi, giustamente, di compromettere la loro visione per renderlo fruibile anche a chi, probabilmente, non è poi così interessato a calarsi nei panni di Sebastian.

Ve l’avevamo detto no? Tenete d’occhio i quadri elettrici!

Noi fruitori possiamo solo immaginare i sacrifici e il tempo investiti per creare un videogioco simile, che probabilmente non ha neppure un vero precedente nel medium. Dover quindi fare un piccolo sacrificio di attenzione e dedizione per accedere a tutto questo in cambio ci sembra un affare piuttosto ragionevole (nonché un segno di rispetto). In linea generale, prima di accusare qualsiasi videogioco di non essere abbastanza “accessibile”, bisognerebbe chiedersi sinceramente se quel gioco ci interessa davvero. Subito dopo, provare a capire se ciò che si pretende – ammettiamolo, anche in maniera un po’ arrogante – andrebbe a inficiare in maniera importante sulle intenzioni dell’opera. Che poi, pensandoci bene, in un’offerta infinita come quella di oggi, i videogiochi che non fanno per noi sono una cosa meravigliosa per il nostro orientamento.

Ma torniamo al termine “punk”. Sebastian, trascorrendo le prime serate in compagnia dei suoi coetanei, scoprirà abbastanza presto che sull’isola è effettivamente presente un gruppetto di “ribelli” che diventerà un punto di riferimento nella trama: ciò aggiunge quindi un moto sovversivo anche a livello narrativo. Un altro aspetto sovversivo, come anticipato, è dettato dal fatto che in Else Heart.Break() è possibile manipolare il codice non solo dei dispositivi elettronici, ma di fatto di tutti gli elementi interattivi a prescindere dalla loro natura.

Un elemento ulteriore, questa volta a livello se vogliamo estetico e accennato poco fa, è la rinuncia completa a gran parte di quegli elementi spesso riconducibili all’estetica cyberpunk, mentre molto è stato investito per creare delle dinamiche di gioco che costringono il giocatore a hackerare ciò che lo circonda in maniera spontanea e, di fatto, con un linguaggio di programmazione4 del tutto simile ad alcuni correntemente impiegati. Questo è ciò che rende Else Heart.Break() qualcosa di straordinario, autentico e potente.

Pop-Eye declina ogni responsabilità di gestione truffaldina della vostra carta di credito.

Il frutto degli sforzi di questo piccolo gruppo di sviluppatori non solo rinuncia agli stereotipi del genere ma riesce, al tempo stesso, a ricordarci che cos’è l’essenza del genere stesso. In quanto moto sovversivo, il cyberpunk vive nelle azioni, e muore nella moda e nel manierismo dei neon e degli aggeggi cromati svizzeri multi-uso.

Else Heart.Break() è, inoltre, nato con l’intento di riunire gli utenti appassionati al fine di scambiarsi “hackeraggi” particolarmente virtuosi, nonché avventure testuali o giochi elementari da lanciare incollando il codice altrui direttamente nei cabinati o nei terminali presenti a Dorisburg. Torna quindi alla mente il testo Masters of Doom di David Kushner, in cui John Carmack alla ID Software sosteneva puntualmente la“etica dell’hacker”, creando motori di gioco accessibili da terzi al fine di creare una iterazione collettiva, minacciando puntualmente ed energicamente di lasciare la società ogni volta che saltava fuori la parola “brevetto”.

Un piccolo omaggio al primissimo Silent Hill. Niklas Åkerblad (in arte El Huervo) ha usato campioni di dialoghi e di suoni della saga in alcuni suoi brani (come in “Closure”). Akira Yamaoka è anche menzionato nei ringraziamenti speciali.

ELSE IF (GAME.ISMASTERPIECE)
{USER.TRIGGERBIAS()};

La cosa peggiore che si possa scrivere, o dire, di un’opera, non sta nel vessarla, sminuirla o nel redarre un elenco del perché sia la cosa peggiore mai esistita. Il sostantivo più distruttivo di tutti è probabilmente, e paradossalmente, la parola “capolavoro”. Questo perché non si può definire come tale qualcosa senza alzare le aspettative all’inverosimile, viziando la fruizione futura degli altri.

Quest’ultimo paragrafo servirà infatti a sottolineare anche qualche difetto del gioco che abbiamo riscontrato, in modo da ridimensionarne la percezione prima di concludere.

  1. Nella nostra esperienza, il titolo non sempre ha gestito nel modo migliore questa comunicazione indiretta degli obiettivi da perseguire da Sebastian, causando qualche grattacapo. In particolare, il titolo dà per scontato che il giocatore capisca che Sebastian si sia preso una cotta incredibile per un personaggio in particolare.
  2. Una missione in corso viene completamente dimenticata da chi ce l’aveva assegnata in seguito a un evento preciso. La missione in sé non è fondamentale, ma il problema è che il giocatore si sentirà facilmente abbandonato a se stesso a questo punto. Quando accadrà, concentratevi quindi semplicemente sulla missione principale, cercando di capire come raggiungere il vostro scopo.
  3. Il terzo test dell’iniziazione per entrare a far parte del gruppo ribelle ha messo un po’ alla prova la nostra pazienza.
  4. I file di salvataggio, dal momento che devono necessariamente contenere tutte le modifiche del giocatore agli oggetti interattivi (oltre ai progressi), pesano circa 21 megabyte l’uno e l’auto-salvataggio, che scatta in un paio di momenti della giornata, non è disattivabile.
    Tuttavia, è possibile accedere facilmente alla cartella dei salvataggi, presente in quella del gioco stesso, per rimuoverli manualmente in caso di bisogno (oltre a copiarli e rinominarli per organizzarli meglio).

L’immagine parla da sé. Non siate timidi e interagite con tutti i terminali che trovate, le sorprese sono dietro l’angolo.

ELSE
{HEART.BREAK()};

Ci auguriamo che questo articolo vi abbia incuriosito riguardo questo titolo molto particolare e meritevole di essere provato. Purtroppo l’ostacolo maggiore, forse, non è il modo in cui Sebastian interagisce con l’ambiente ma il fatto che non sia disponibile su console e, a meno che non venga completamente rivisto, non ci sono proprio le basi per renderlo compatibile in tal senso, visto che tutti i controlli di navigazione dipendono dal mouse. Inoltre, il gioco è disponibile solo in svedese e in inglese.

Ci piace molto l’idea di concludere questo pezzo lungo e, a tratti, forse un po’ troppo sentito, con quello che probabilmente è il messaggio di fondo del gioco:
per quanto le possibilità siano plurimi e per quanto l’ingegno sia acuto e la volontà ferrea, si può davvero manipolare tutto a nostro vantaggio?

<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

If(GetUser().WasReadingComplete)
{
Say(“Grazie di cuore e buon hackeraggio!”);
}

else
{
Heart.Break();
}

<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

LR


NOTE:

1 Se dovessimo tradurlo in italiano, con un poco di fantasia, sarebbe qualcosa come: “Infine, se proprio non c’è un’altra possibilità, accedi al cuore e lancia la funzione spezza”. Ma la funzione è transitiva o intransitiva? Chi già si destreggia nella programmazione, probabilmente, ha già inteso.

2 Noto anche come El Huervo e per aver partecipato ai lavori di Hotline Miami, qui si è occupato della creazione del mondo, della modellazione 3D, delle animazioni e della musica.

3 In realtà al giocatore è precluso hackerare alcuni oggetti particolarmente sensibili in principio (proprio come le porte), ma sbloccare questa possibilità è questione di un pizzico di ingegno.

4 Il linguaggio Sprak è tecnicamente inquadrabile come un “linguaggio alto”. Per linguaggi alti si intende un insieme di linguaggi di programmazione posti in alto (inteso come “lontano”) rispetto al linguaggio macchina (CPU), in quanto alcuni processi come la gestione della memoria vengono automatizzati con lo scotto di prestazioni generali inferiori. I linguaggi bassi invece sono quelli più vicini al linguaggio macchina nella “classifica” e per questo, banalmente, più tecnici e complessi.


COMMENTA SU TELEGRAM

SUPPORTACI SU KO-FI

Continua a leggere