Come si fa a "finire" Tetris?

8 months ago 135

Nelle ultime ore si è parlato molto online di Willis Gibson, aka Blue Scuti, ossia il ragazzo tredicenne che è il primo essere umano ad aver "finito" Tetris per NES. Il gioco, pubblicato ormai 34 anni fa, non ha una vera e propria fine e i pezzi potrebbero continuare a cadere teoricamente all'infinito, ma nell'ambiente degli appassionati era nota la possibilità di ottenere una cosiddetta kill screen, ossia raggiungere un punto in cui Tetris va in crash, ossia si blocca, ed è letteralmente impossibile proseguire.

Fino a poco tempo fa, questo risultato era stato ottenuto solo dalle intelligenze artificiali: Willis Gibson è la prima persona al mondo a essere riuscita ad arrivare a una final kill screen, con tanto di congratulazioni ufficiali da parte di Maya Rogers, CEO di The Tetris Company. Se siete curiosi, vale la pena dare un'occhiata al video qui sotto per vedere la reazione sinceramente emozionante del ragazzo, consapevole di aver raggiunto un'impresa ineguagliata.

La "fine" di Tetris

Ma come si fa a finire Tetris? Come già detto, Tetris per NES non è stato programmato con una fine e, come per altri giochi di quegli anni, gli appassionati hanno identificato delle cosiddette final kill screen, ossia dei punti in cui diventa letteralmente impossibile proseguire per via di un qualche tipo di bug. Un altro esempio celebre di kill screen è il livello 256 di Pac-Man, quando metà dello schermo viene riempita di simboli che rendono impossibile completare il livello.

Il livello 256 di Pac-Man, in cui metà del livello diventa ingiocabile, è un altro celebre esempio di kill screen

A prescindere dal titolo, in casi come questi si tratta sempre di errori che potremmo considerare intrinsechi del gioco, spesso dovuti a limiti tecnici delle macchine su cui giravano i giochi in questione.

Nel caso di Tetris, quello che succede è che il gioco va in crash: sia audio che video si bloccano completamente. Vale la pena specificare che, anche se in questo caso il gioco si è bloccato al livello 157, questo non è l'unico punto in cui si può ottenere una kill screen, che può verificarsi a partire dal livello 155.

Ci vogliono un po' di conoscenze tecniche per capire quel che avviene esattamente ma proviamo a spiegarlo, semplificando un bel po' e partendo da un concetto basilare, ossia la divisione tra ROM (Read Only Memory) e RAM (Random Access Memory). Banalizzando, la ROM è la memoria che contiene il codice che deve essere eseguito ed è di sola lettura (potete immaginarlo come un manuale delle istruzioni), mentre la RAM è una memoria volatile, che viene continuamente riscritta e che potete immaginare come una lavagna dove prendere appunti.

Il gioco va in crash quando il processore, impiegando troppo tempo a calcolare il punteggio raggiunto (nonostante quello visualizzato a schermo sia sempre 999.999) mette momentaneamente in pausa i calcoli per aggiornare la schermata video (un'operazione necessaria a ogni cambio frame), "appuntandosi" in RAM il punto da cui deve riprendere a eseguire il codice dalla ROM. Tuttavia, può succedere che le operazioni necessarie ad aggiornare la grafica vadano a sovrascrivere la porzione di RAM che segnava il punto da cui il processore avrebbe dovuto riprendere a eseguire il codice.

Quando il processore torna al punto della RAM in cui aveva segnato il punto da cui riprendere per calcolare il punteggio, non trova il dato giusto: ma poiché nella RAM del NES non c'è distinzione tra codice da eseguire e dati (tutto viene scritto direttamente in byte), il processore prova a eseguire come se fosse codice dei dati salvati in RAM, che causano il blocco del gioco.

Per una spiegazione più approfondita, vi suggerisco il video qui sotto.

Hypertapping, Rolling e Charcoal e tutto il resto

Ma oltre le specifiche cause del crash, è estremamente interessante capire come siamo arrivati a questo punto.

Per molti anni, infatti, la community di Tetris ha considerato il livello 29 come l'ultimo livello possibile da raggiungere. Questo perché al livello 29 i tetramini (ossia i pezzi del Tetris) raggiungono la loro velocità massima e scendono di un "blocco" ogni frame. Considerando che la versione NTSC del gioco (quella usata per le competizioni ufficiali) va a 60 frame al secondo, ogni pezzo del tetris scende di 60 blocchi in un secondo ma, poiché la schermata di Tetris è composta da 20 linee, ogni pezzo arriva in fondo in 1/3 di secondo.

Questa velocità non solo è estremamente difficile da elaborare per un essere umano (che deve sostanzialmente sapere esattamente dove piazzare il tetramino ancor prima che questo appaia a schermo), ma per molti anni è stata considerata un limite tecnico del gioco, perché in un terzo di secondo non era possibile tener premuto abbastanza a lungo il tasto del d-pad (destro o sinistro) del controller del NES per portare un pezzo agli estremi destro e sinistro dello schermo. Per questo motivo, per molti anni il livello 29 di Tetris era considerato la kill screen (e non per nulla, quando ci si riferisce al crash del gioco come quello ottenuto da Gibson, si parla di true kill screen o final kill screen).

Solo negli ultimi anni, tra i professionisti di Tetris si è iniziato a parlare di hypertapping, ossia una tecnica che consiste nel premere ripetutamente il tasto invece di tenerlo premuto (spesso posizionando il controller in modo particolare): in particolare, si parla di hypertapping quando il tasto viene premuto almeno 10 volte al secondo.

L'hypertapping ha consentito ad alcuni giocatori di superare il famigerato livello 29, ma è stato a sua volta soppiantato da una nuova tecnica chiamata rolling, che dal 2022 è diventata praticamente lo standard per i giocatori di Tetris professionisti. Il rolling consiste nel tenere il dito poggiato sopra il d-pad ma, invece di premere col dito stesso, si danno dei colpetti con le dita dell'altra mano sul retro del controller, in modo da far muovere il controller stesso e far cliccare più rapidamente i tasti destra e sinistra (lo short qui sotto vi darà un'idea).

Tuttavia, superare il livello 29 ha portato con sé nuove sfide che andavano oltre il gestire la velocità dei pezzi, ma che riguardano dei glitch nei colori dei pezzi

Per via di un errore nel codice che definisce i colori dei pezzi, infatti, a partire dal livello 138 i tetramini diventano di colori inusuali: questo non sarebbe un problema, se non per alcuni livelli in cui i colori generati per alcuni pezzi sono talmente tanto scuri da diventare quasi invisibili.

In particolare, il livello più famigerato in tal senso è il 148, che è stato soprannominato Charcoal e che potete vedere nell'immagine qui sotto.

Uno screenshot dal livello 148 di Tetris, noto come Charcoal

Willis Gibson, prima di essere il primo essere umano a "finire" Tetris, è stato anche il primo umano a superare il livello 148. Fino a poco tempo fa, infatti, solo un'intelligenza artificiale appositamente addestrata per giocare a Tetris e chiamata StackRabbit era stata in grado di andare oltre il livello 148, arrivando al livello 237 (su una versione modificata di Tetris per NES): se siete curiosi, potete vederla in azione nel video qui sotto.

Read Entire Article