// 2646 ·
Come ho sviluppato”2646.it”
Da qualche giorno ho messo online 2646: un piccolo browser game in cui costruisci un governo italiano pescando da politici realmente esistiti e provi a sopravvivere alla Repubblica più a lungo che puoi, restando il più pulito possibile.
Spoiler: pulito non resti. Mai.
È un progetto satirico, fatto per gioco e per provare qualche idea tecnica. In questo post racconto com’è nato, perché ha quella faccia da vecchio Televideo e quali scelte di design e architettura ci sono sotto.

Il nome è una data
«2646» non è un anno futuro: è una data al contrario. 2 giugno 1946, il referendum che fece nascere la Repubblica italiana, 2·6·46, ovvero 2646. Mi piaceva l’idea di un titolo che sembra fantascienza e invece è il punto zero di tutto quello che il gioco prende in giro.
Da lì è venuta anche l’estetica: Televideo. Caratteri a blocchi, colori saturi su fondo nero, la barra fastext colorata in alto, il bip di accensione. Volevo che sembrasse di guardare la politica italiana attraverso lo schermo di una TV anni ’80 lasciata accesa per sbaglio. È una scelta nostalgica (ho una certa età) ma anche pratica: un look così riconoscibile ti permette di fare interfacce semplicissime senza che sembrino povere.
Sagge scelte di UX/UI.
L’idea di gioco: non puoi vincere pulito
Il loop è essenziale. Prima fase, Draft: riempi otto caselle ministeriali (Presidente del Consiglio, Economia, Interno, Esteri, Giustizia, Difesa, Lavoro, Salute) pescando da governi storici realmente esistiti. Seconda fase, Mandato: affronti una coda di eventi ispirati a fatti veri: scandali, crisi, casi che hanno attraversato la storia repubblicana. (ho preso tutto da wikipedia)
Il cuore è quello che ho chiamato modello “corruzione-spina dorsale”. C’è una sola barra che conta davvero, la corruzione, e non scende mai. Ogni evento la fa salire, anche solo per usura: persino una squadra immacolata si sporca col tempo in questo sistema politico/economico. Attorno ci sono altri cinque assi (mafia, sesso, nepotismo, fascismo, malagestione) che funzionano come scandali “caldi”: prendono calore, ne riversano una quota nella corruzione (il contagio) e si raffreddano un po’ a ogni turno. Quando la corruzione tocca 100, il governo cade.
Il punto satirico è tutto qui: non esiste la partita perfetta. Non puoi vincere restando immacolato, puoi solo decidere quanto sporco attaccarti addosso e quanto a lungo reggere. Non è colpa tua, è questa “democrazia” che funziona così. Il punteggio finale, infatti, è un «indice di compromesso».

La scelta che non cambia niente (it’s capitalism baby!)
Su ogni evento puoi reagire. Cliccando «Affronta l’evento» si apre un popup con quattro possibili risposte: alcune realistiche, altre completamente assurde, mescolate a casaccio.
Il dettaglio che mi diverte di più è che la risposta che scegli non cambia l’impatto sul gioco. La corruzione sale uguale, il contagio è identico. Cambia solo il testo che finisce nella «cronaca» del tuo mandato. È una presa in giro deliberata della retorica politica tardo capitalista (e non solo tardo): puoi dire qualsiasi cosa, con qualsiasi tono, ma il sistema fa il suo corso lo stesso. Le risposte realistiche sono scritte con un tono volutamente sprezzante e cinico, perché parliamo di scandali spesso affrontati «senza colpo ferire». Le assurde pescano da un cestino comune e servono a tenere alta la dose di nonsense. Come piace a me ;-).

Cosa c’è sotto il cofano
Lato tecnico ho provato a stare leggero e moderno. Il progetto è un monorepo TypeScript con la logica di gioco isolata in pacchetti separati (motore di gioco, dati degli eventi, normalizzazione dei governi storici) e un’app web costruita con Astro (framework Javascript).
Tutto gira su Cloudflare: il database è un SQL serverless. Questo mi permette di avere costi praticamente nulli, latenza bassa ovunque e zero server da gestire. Le pagine «statiche» di contenuto (come funziona, disclaimer) in realtà leggono da D1 a ogni richiesta, con un fallback al contenuto scritto nel codice se il database è vuoto: una sola fonte di verità, niente duplicazioni.
Bilanciare un gioco “ingiusto”: il Monte Carlo
Qui c’è la parte di cui vado più orgoglioso. Un gioco del genere ha un problema delicato: deve essere difficile ma giusto. Se vinci troppo facilmente la satira non morde; se perdi sempre, smetti di giocare. E la difficoltà non è un numero che decido a tavolino: emerge dall’incastro di decine di profili di politici, decine di eventi e una manciata di formule. Cambi il “tasso di corruzione” di un ministro e l’equilibrio dell’intero gioco si sposta in modi difficili da prevedere a occhio.
La soluzione è un simulatore Monte Carlo. In pratica: invece di ragionare sulle formule, faccio giocare il computer migliaia di volte e guardo cosa succede. Lancio qualche migliaio di partite con tre tipi di squadra: una pulita (i politici meno compromessi), una casuale e una sporca (i peggiori) e ne misuro quante volte il governo cade e quanto si sporca chi sopravvive.
I numeri che ne escono sono il termometro del bilanciamento. Oggi, su 4000 partite: una squadra pulita non cade quasi mai ma finisce comunque intorno a 20/100 di corruzione (nessuno è davvero immune); una squadra casuale cade nel ~40% dei casi; una squadra sporca crolla 8 volte su 10. È esattamente la curva che volevo: puoi vincere, ma mai restando pulito, e quasi mai per caso.

La cosa che mi diverte di più è che il simulatore non gira sul mio computer: è un strumento dentro il gioco stesso. Gira sui Worker di Cloudflare, legge i dati reali e aggiornati dal database e usa lo stesso identico motore con cui giochi tu. Così, ogni volta che ritocco un dato, posso rilanciare la simulazione e vedere all’istante se ho rotto l’equilibrio, senza ricompilare niente, senza dover giocare io stesso diecimila partite. È un piccolo lusso da game designer (che non sono, grazie mille github copilot per il suggerimento!): avere uno stuolo di giocatori robot sempre pronti accanto al gioco.
E l’AI?
Una parte del lavoro più noioso, analizzare decine e decine di pagine wikipedia di ministi, eventi ecc.. con un taglio coerente, l’ho fatta a quattro mani con un assistente AI (il sempre presente github copilot utilizzando vari modelli diversi uno per ogni occasione). Sono partito dalle pagine di Wikipedia dei fatti reali per ancorare le risposte «realistiche» a qualcosa di vero, poi le ho riscritte tutte con lo stesso tono sarcastico. L’AI mi ha aiutato anche con la parte ripetitiva di infrastruttura: generare le migration SQL, propagare i dati nei file giusti, sistemare la documentazione.
La direzione creativa e le decisioni di design sono rimaste mie; l’AI è stata l’assistente instancabile per tutto il resto.
Provalo!
2646 è gratis e si gioca dal browser, anche da telefono. Dura pochi minuti a partita, ed è pensato proprio per quello: una risata amara e via. Lo trovi su 2646.it e su Instagram come @2646.it.
È, ovviamente, opera di satira: nessun intento diffamatorio, solo il tentativo di raccontare con un gioco una storia che a volte è più assurda di qualsiasi risposta che uno come me o un llm possa inventarsi!