Il Mio Tetris Perfetto
Che Cos’è Questo
Tetris è un gioco leggendario e uno a cui tengo molto. Amo davvero il gioco e mi piace giocarci. È un ottimo antistress. Per un divertente progetto del weekend, ho deciso di costruire il gioco come applicazione/browser game pensato sia per Desktop che per Mobile, usando i principi del vibe coding. La parte mobile di questa versione è stata ispirata da Play-Tetris, che ha una configurazione mobile davvero buona con controlli basati sullo swipe. Prova e gioca la mia implementazione di Tetris qui, è quella che penso sia la versione più “perfetta” di Tetris.
Oltre il Codice
Non ho iniziato a costruire un clone di Tetris come progetto per il portfolio o per imparare qualcosa di nuovo. L’ho costruito perché ne avevo veramente bisogno. Quando sono stressato, sia che sia una settimana difficile al lavoro o semplicemente la vita che si accumula, Tetris è una delle poche cose sane che effettivamente mi aiutano a resettare. Quando sono stressato tendo a mangiare molto, il che si somma nel tempo, quindi avere qualcosa che funzioni senza effetti collaterali è importante per me. Soli 10-30 minuti a far cadere blocchi e il mio cervello sembra un po’ ripulito. Non è solo un modo casuale per rilassarmi, è un modo per avere qualcosa di semplice e concentrato in cui incanalare quello stress. Ci sono perfino alcune ricerche interessanti che mostrano che Tetris può influenzare come il cervello gestisce ricordi intrusivi e stress, ad esempio negli esperimenti con film traumatici, in persone trattate dopo incidenti reali, e come complemento alla terapia con cambiamenti cerebrali misurabili. Non sto cercando di trasformare questo gioco in un trattamento medico, ma è interessante vedere che potrebbe esserci della scienza reale che supporta ciò che già sento: che Tetris può davvero aiutare le persone a gestire lo stress.
Quindi ho cercato una buona versione di Tetris da giocare, e il problema era che nulla in giro si adattava davvero a come volevo giocare. Le app mobili sull’App Store iOS sono piene di pubblicità e microtransazioni. Le versioni web erano lente o davano una pessima esperienza su telefono. La versione classica per NES è ottima ma richiede un emulatore e hardware extra. Ho persino comprato una Miyoo Mini pensando che avrebbe risolto il problema, e tutto quello che ho finito per fare è stato portarmi in giro un secondo dispositivo solo per giocare a Tetris. A un certo punto ho realizzato che passavo più tempo a cercare la versione giusta di quanto ci sarebbe voluto per costruirne una.
Con i browser moderni, strumenti LLM come Claude Code, e flussi di lavoro come il vibe coding, finalmente è sembrato il momento giusto per costruire il Tetris che volevo io. Veloce, minimale, senza pubblicità, senza account, senza app store. Solo un gioco in browser che funziona sul mio telefono e sul mio laptop e che controllo completamente io. In circa un giorno ho avuto una versione funzionante, e dopo circa una settimana di lavoro intermittente per renderla robusta e ottenere la giusta sensazione sia su desktop che su mobile, ne sono stato soddisfatto.
Lo condivido perché se finisse per aiutare anche solo un’altra persona a de-stressare come aiuta me, mi renderebbe davvero felice. È una cosa piccola, ma a volte una cosa piccola è esattamente ciò di cui hai bisogno.
Funzionalità
- Classica griglia Tetris 10x20
- Controlli completi da tastiera su Desktop e controlli gestuali touch su Mobile
- Randomizzatore standard a borsa da sette pezzi
- Pezzo in riserva e anteprime dei prossimi pezzi
- Proiezione del pezzo fantasma che mostra dove atterreranno i pezzi
- Curva di velocità basata sui livelli con lock delay dinamico
- Punteggio, linee, livello e record salvati nella memoria locale
- Punteggio per soft drop e hard drop
- Menu di pausa con opzioni riprendi, riavvia e esci
- Animazione di lampo alla cancellazione delle linee
- Musica di sottofondo con interruttore muto (stato persistente)
- Supporto area sicura iOS (Dynamic Island, tacca, indicatore home)
- Supporto offline via Service Worker (funziona senza internet dopo la prima visita)
- Installabile come PWA (aggiungi alla schermata Home su iOS/Android per un’esperienza simile a un’app)
Controlli
Desktop (Tastiera)
| Azione | Tasti |
|---|---|
| Muovi | ← → o A D |
| Soft Drop | ↓ o S |
| Hard Drop | Space |
| Ruota CW | ↑ W X |
| Ruota CCW | Z |
| Hold | C o LShift |
| Muto | M |
| Pausa | Esc o P |
Mobile (Tocco)
| Azione | Gesto |
|---|---|
| Muovi | Swipe a sinistra / destra |
| Soft Drop | Tieni premuto e trascina verso il basso |
| Hard Drop | Scatto rapido verso il basso |
| Ruota CW | Tocca |
| Hold | Scatto rapido verso l’alto |
Curva di Difficoltà
La curva di velocità e il lock delay in questa versione sono stati tarati usando ricerche su come i giochi Tetris classici e moderni gestiscono la progressione della difficoltà. Nell’NES Tetris, la gravità raggiunge una riga per frame al livello 29, che è diventato il famoso “kill screen” dove il gioco diventa effettivamente ingiocabile per la maggior parte degli esseri umani. Quello non era veramente un finale progettato, era più un effetto collaterale dell’hardware e di come il DAS (Delayed Auto Shift) fosse troppo lento per tenere il passo con la velocità di caduta. Willis Gibson lo ha dimostrato nel 2024 quando lo ha superato e ha fatto crashare il gioco al livello 157.
Giochi moderni come TGM (Tetris: The Grand Master) hanno risolto questo in modo diverso. Invece di far semplicemente cadere i pezzi sempre più velocemente fino a quando il gioco si rompe, TGM limita la gravità a 20G (caduta istantanea) e poi stringe altre finestre temporali come il lock delay e il DAS per aumentare la difficoltà. Lo standard Tetris Guideline usa 500ms di lock delay con fino a 15 reset di movimento, cosa che questa versione segue. Le ricerche su TGM2 Death mode e TGM3 Shirase hanno mostrato che il limite pratico per il gioco competitivo si aggira intorno ai 250ms di lock delay con DAS veloce, mentre qualsiasi valore sotto i 133ms è territorio da specialisti.
Basandomi su tutto questo, la curva di velocità qui limita la gravità a 33ms per riga (simile ai livelli 19-28 del NES) invece di arrivare alla caduta istantanea, e il DAS scala da 170ms fino a 100ms ai livelli più alti così puoi attraversare la griglia durante il lock delay. L’obiettivo era far sì che i livelli alti sembrassero brutalmente veloci ma comunque equi, più vicini a come Tetris 99 e TGM gestiscono la difficoltà di endgame piuttosto che l’approccio originale del NES di lasciare che la velocità pura superi i tuoi input.
Sotto il Cofano
- Design responsive ottimizzato sia per Desktop che per Mobile (ritratto)
- Sprite dei blocchi e sfondo della griglia pre-renderizzati per le prestazioni
- Usa il Super Rotation System (SRS) per i wall kick durante la rotazione dei pezzi
- Rilevamento dei gesti touch basato sulla velocità per distinguere in modo affidabile scatto vs trascinamento
- Sistema di temporizzazione basato sui livelli per velocità di gravità e lock delay
- Record e stato muto salvati con
localStorage - Fonte della musica di sottofondo NmCCQxVBfyM
- Il progetto è completamente open-source sotto la MIT License
- Costruito con i seguenti strumenti AI:
- Claude Code CLI - codifica/sviluppo
- Gemini CLI - codifica/sviluppo
- Cha CLI - codifica e scrittura
- xAI Grok - loghi e icone
- Perplexity - ricerca di bug
Considerazioni Finali
Questo è stato uno di quei progetti dove la motivazione non era tecnica, era personale. Volevo semplicemente una versione di Tetris che funzionasse come volevo io, senza pubblicità, senza hardware extra e senza dipendere dall’app di qualcun altro che potrebbe sparire o cambiare in qualsiasi momento. Il fatto che sia riuscito a passare dall’idea a un gioco rifinito in circa una settimana di lavoro intermittente usando strumenti AI moderni e vibe coding dice molto su dove siamo ora con lo sviluppo software.
Uso questa versione quasi quotidianamente da quando l’ho realizzata, e continua a fare esattamente ciò di cui ho bisogno. Mi aiuta ad allontanarmi da qualunque cosa mi stia stressando, a concentrarmi su qualcosa di semplice per qualche minuto e a tornare con la mente più lucida. Se la provi e fa lo stesso per te, è il miglior risultato che potrei chiedere. E se vuoi crearne un fork, modificare la curva di velocità, cambiare i controlli o costruirci sopra, fallo pure. Se trovi un bug o hai un suggerimento, sentiti libero di aprire una segnalazione sul repository. Questo è tutto lo scopo di renderlo a codice sorgente aperto.