Il genere degli sparatutto è uno dei più popolari da ormai diversi anni. Come saranno gli sparatutto nei prossimi anni e come si innoveranno ?
Dal primo Doom di John Carmack all’ultima reiterazione di Call of Duty gli sparatutto sono diventati negli anni uno dei generi più diffusi su console e PC.
Nonostante il gran numero sono però ben pochi gli sparatutto negli ultimi tempi capaci di distinguersi dalla massa. L’abuso del genere ha infatti portato a un inesorabile declino dell’innovazione e una standardizzazione dettata da specifiche necessità commerciali.
Difficile trovare un FPS o TPS che cerchi di rinnovare meccaniche ormai consolidate e inamovibili. Il genere è ormai stagnante e seppur la potenza delle console non manchi, le idee e la volontà di cambiare latitano.
Da fruitore del genere mi sono chiesto come dovrebbe essere uno sparatutto nel futuro. Quali aspetti dovrebbero essere rivoluzionati e quali meccaniche ricostruite? Quali sono i difetti maggiori da andare assolutamente a migliorare?
Intelligenza artificiale
Partiamo da una delle critiche più frequenti: l’intelligenza artificiale. Sembra infatti che gli sviluppatori nemmeno ci provino a dare un minimo di intelligenza agli avversari che affrontiamo su schermo. Si predilige la strada più semplice e più appagante per il giocatore casual: tanti nemici abbattibili in pochi colpi e dalle scarse capacità offensive. Più che soldati addestrati sembra di sparare a bersagli semoventi che si spostano seguendo un pattern preciso e programmati per farsi colpire.
Come mai? Ci sono due motivi principali: i costi e la potenza di calcolo. Sviluppare un programma di intelligenza artificiale richiede tempo e personale con specifiche competenze. Il publisher è conscio del basso interesse di tale funzionalità per il giocatore medio. Preferisce concentrare la forza lavoro su caratteristiche più facilmente vendibili quali la grafica e il multiplayer.
Il programma di un A.I viene elaborato dalla CPU della console o PC. Tale potenza è limitata e spesso deve essere utilizzata per altre funzioni ritenute prioritarie per lo sviluppatore. Le risorse dedicate all’intelligenza artificiale sono minime con conseguenti scarsi risultati.
Un nemico formidabile
L'unico titolo che abbia giocato che ritengo abbia tuttora un'ottima intelligenza artificiale è Killzone 2. Gli helghast del secondo capitolo della serie shooter di Guerrilla Games sono tenaci, resistenti, addestrati e si adattano a ogni situazione.
Come risolvere il problema?
Esiste una soluzione ed è anche già stata utilizzata in un noto titolo di simulazione di guida: Forza Motosport 5. Il gioco di corse di Turn 10 studios sfrutta la tecnologia del Cloud per spostare il carico di lavoro della CPU ai server Microsoft. In questo modo le risorse della Xbox possono essere usate per altri processi mentre in un computer online viene elaborato il programma di intelligenza artificiale e poi spedito in tempo reale al gioco.
In questo modo si ottiene un A.I fino al 600% migliore di quanto farebbe la sola Xbox e senza compromettere in alcun modo le performance del gioco.
Forza Motosport 5 si può vantare di un’altra tecnologia innovativa: un I.A. che si plasma in base allo stile di guida del giocatore. In questo modo ogni utente ha una sua versione personalizzata del gioco cosicché da tenere sempre alta la sfida.
La tecnologia implementa dai Turn 10 è un primo passo verso un futuro in cui il gioco studierà il giocatore a creerà automaticamente una sfida adatta.
Autoapprendimento
Negli ultimi anni l’intelligenza artificiale è diventata un tema corrente e sono diverse le imprese hi-tech che stanno studiando come crearne una. L’umanità è ancora lontana dalla sua creazione e al momento abbiamo solamente programmi estremamente avanzati che mimano certi aspetti dell’intelletto umano.
Tuttavia una speranza per noi videogiocatori esiste e si chiama DeepMind. Comprata da Google nel 2014, DeepMind è un’azienda britannica specializzata in intelligenza artificiale. Il loro programma è dotato della capacità di “autoapprendimento”. Il programma fa sostanzialmente quello che nel gergo videoludico viene chiamato “trial and error”. Una volta attivato il processo l’applicazione analizza l’ambiente (virtuale) e compie un’azione. Ogni volta che sbaglia il programma si ricorda dove e quando è avvenuto e alla volta successiva userà una strategia diversa.
DeepMind è stato in grado di imparare a giocare al classico Atari Breakout in due ore e in altre quattro ha scoperto la strategia migliore per battere il gioco. Il programma è stato testato con successo con altri giochi simili ed una sua variante, AlphaGo, è riuscito a battere il campione del mondo di Go Lee Se-dol.
DeepMind si sta ora spostando all’E-sport, a partire dallo strategico Blizzard Starcraft II. L’obiettivo è quello di perfezionare il programma attraverso l’autoapprendimento fino a quando sarà capace di vincere contro un giocatore professionista.
Il software di Google non differisce molto da quello che farebbe una qualsiasi persona davanti a una nuova situazione, con la differenza che DeepMind è un programma incapace di commettere errori, che non accusa i segni della stanchezza e in grado di fare milioni di calcoli in pochi secondi. Nessun giocatore ci terrebbe a giocare contro un avversario di tale infallibilità, pertanto prima di poter utilizzare questa tecnologia è anche necessario bilanciare il tutto, in modo tale da proporre una sfida soddisfacente ma non impossibile.
Il software deve creare un livello di sfida plasmato sul giocatore. Tuttavia affinché questo processo venga compiuto appieno, il programma ha bisogno di essere provato diverse volte prima di creare una sfida ottimale per il giocatore. Questo significa che all’inizio del gioco l’A.I. nemica non sarà pienamente matura e si adatterà alle capacità del giocatore dopo diverso tempo e, vista la durata media degli sparatutto odierni, potrebbe essere troppo poco.
Per aggirare il problema si potrebbe far “riscaldare” l’A.I. degli sviluppatori stessi in lunghe sessioni di testing. Il nemico non sarà personalizzato sul singolo utente ma su un gruppo di giocatori, garantendo comunque una sfida ugualmente appagante. Questo processo potrebbe anche essere esteso a qualunque possessore del gioco: il programma registra i dati raccolti dall’A.I. di ogni utente e li invia in un server per elaborarli e sviluppare un A.I. basata sulle capacità di molteplici utenti.
Ipotizziamo che questa tecnologia o una simile sarà implementata negli sparatutto in un futuro prossimo: avremo finalmente nemici in grado veramente di tenerci testa. Tuttavia ci sono vari fattori che uno scenario del genere escluderebbe, come ad esempio…
Personalità
Uno delle cose a cui i videogiochi riesce bene è spersonalizzare il nemico che abbiamo davanti. Le centinaia di soldati che uccidiamo nella guerra virtuale di turno sono solamente gusci vuoti, un ammasso di texture e poligoni, creati appositamente per essere eliminati dal giocatore. In un conflitto reale non è così: le persone sono reali e come tali sono dotate di una personalità. Perché non implementarla anche in un videogioco? Non sto parlando di dare emozioni e sentimenti ma di un certo tipo di caratterizzazione sufficiente a rendere imprevedibile ogni singolo individuo.
Proviamo a immedesimarci sviluppatore e creare tre tipi di personalità diverse: rabbia, paura e determinazione. Innanzitutto, cose sono esattamente? Ogni personalità determina il tipo di comportamento in base a una determinata azione.
Adesso assegniamo casualmente le tre personalità ai nemici nel nostro ipotetico gioco. Creiamo uno scenario immaginario in cui il giocatore uccide tutti i nemici tranne uno, come reagisce? Se il soggetto ha come personalità “rabbia” reagirà d’impulso e inizierà a sparare al giocatore in un atto di ira. Il soggetto dotato di “paura” si arrenderà e poi scapperà via. Con la terza personalità, il soggetto continuerà imperterrito a combattere fino alla fine.
Per aumentare la varietà è possibile modificare casualmente dal programma alcuni parametri delle singole personalità, in modo che ogni nemico non ne abbia una perfettamente uguale. Tali parametri potrebbero essere il tempo che ci mette a reagire il soggetto, il tipo di aggressione o il modo di scappare, o le probabilità che il soggetto reagisca in quel modo. Più numerosi sono i parametri più alta la diversità.
Ritorniamo nel nostro ruolo di giocatore. Se uniamo l’I.A. citata nel paragrafo prima e la uniamo a quella delle personalità avremo dei nemici formidabili e allo stesso tempo più “vivi”.
Gioco di squadra
Seppur l’autoapprendimento sia assolutamente sofisticato, il programma simula solamente un solo giocatore. A parte eventuali boss fight, negli sparatutto ci sono sempre più di due nemici da affrontare insieme ed è quindi necessario che la nostra I.A. del futuro possa gestire più avversari insieme.
Rimettiamoci i panni dello sviluppatore e chiediamoci cosa può rendere formidabile una squadra di soldati virtuali. La prima idea è: cooperazione. I soldati di un team devono collaborare tra di loro se vogliono ottenere la vittoria. Ok, ma come? Una delle cose che ho sempre trovato poco realistico nell’affrontare un gruppo di soldati in un videogioco di guerra è la totale mancanza di una gerarchia. Se io videogiocatore impersono un soldato di un team con altri commilitoni e un caposquadra, come mai i miei nemici non hanno lo stesso tipo di formazione?
In un videogioco di guerra mi aspetto che quando devo affrontare una squadra di soldati non siano un branco di scapestrati ma una forza armata guidata da un comandante capace. Il suo ruolo è quello di coordinare la squadra, ciò si traduce in pratica a un team più capace e difficile da battere fin quando non eliminiamo il comandante. Un concetto che ho visto solamente una volta su Star Wars Jedi Knight II Jedi Outcast, seppur l’arretratezza dell’intelligenza artificiale degli stormtrooper non faceva notare la differenza.
Inoltre, per aggiungere ulteriore varietà sarebbe opportuno suddividere i soldati in classi diverse e non per forza di tipo offensivo. Ad esempio la classe medico potrebbe avere il ruolo di curare i compagni, quella di geniere offrire riparazioni a eventuali mezzi o supporto aereo tramite drone, magari individuando la posizione del giocatore.
Abbiamo una gerarchia e soldati con abilità diverse. Come li facciamo cooperare? Una prima idea potrebbe essere utilizzare il programma di autoapprendimento è utilizzarlo su più giocatori in un titolo in cui la cooperazione è fondamentale. Potrebbe funzionare, se non fosse che per esperienza quasi mai la gente collabora nei giochi di squadra. Per applicare il programma di self-learning bisognerebbe prima insegnargli chi gioca bene di squadra ma in questo modo torniamo al problema originale.
L’unico modo fattibile è fare tutto a mano, scrivere degli algoritmi che definiscono il tipo di azioni che andranno a eseguire i nostri burattini virtuali su schermo.
Giochiamo?
Ora che abbiamo chiarito le tre caratteristiche di un’intelligenza artificiale nel futuro dei videogiochi, o in questo caso specifico degli sparatutto, proviamo a portare questi concetti dalla teoria alla pratica simulando un ipotetico videogioco.
Indossiamo nuovamente le vesti dello sviluppatore e iniziamo a creare gli avversari del nostro gioco: Criminali, Soldati e Robot.
Assegniamo i parametri di Personalità e Gioco di squadra per ogni fazione, più una breve descrizione per una facile comprensione.
Criminali: violenti, aggressivi, poco coordinati e senza un leader. La maggior parte di loro se ne infischia dell’altro, e farebbero di tutto pur di salvarsi la pellaccia. Non hanno nessun tipo di addestramento a parte quello della strada.
Soldati: fieri, coraggiosi, leali, forgiati da anni di duro addestramento in accademia, questi soldati sono il meglio del meglio signore! La loro forza è la collaborazione e il loro capitano è un vero esperto nel raggiungere l’obiettivo.
Robot: macchine fredde e letali costruite con il solo scopo di eliminare l’obiettivo designato. Non hanno sentimenti e la loro programmazione è frutto dei migliori esperti militari. La loro strategia è praticamente infallibile e sono capaci di adattarsi a ogni situazione in poco tempo.
Ora che abbiamo le nostre squadre è giunto il momento di metterle sul campo e vedere come si comportano. Creiamo quindi una situazione.
Prima situazione: il giocatore spara a un nemico, questo non muore ma rimane ferito/danneggiato e cade a terra, incapace di alzarsi.
REAZIONI
Non essendo tali parametri fissi ma soggetti a cambiamenti casuali, indicherò con delle percentuali le probabilità che una delle fazioni possa avere quella reazione.
Legenda: Criminali (C), Soldati (S) e Robot (R).
1) Un individuo nemico in un attacco d’ira esce fuori dalla copertura e svuota un intero caricatura inutilmente [C=65%, S=10%, R=0%]
C è emotivo e reagisce d’impulso
S è addestrato e mantiene la calma.
R non ha emozioni.
2) Un individuo nemico cerca di trasportare il compagno ferito, mentre gli altri lo coprono con raffiche continue [C=10%, S=75%, R=10%]
C non ha senso di squadra e pensa solo a sé stesso
S ha un legame profondo col team ed è suo dovere aiutare
R non ha legami ma dal rottame possono essere recuperate risorse utili come munizioni, se durante il combattimento scarseggiano.
3) Il nemico prosegue con l’attacco senza reagire in alcun modo all’accaduto [C=25%, S=15%, R=90%]
C non ha legami né senso di squadra, se ne infischia.
S ha un legame e senso di squadra ma è troppo pericoloso soccorrerlo o il numero di uomini insufficiente per una copertura adeguata
R se non ha un motivo tatticamente valido per salvarlo non interviene.
Questa è solo una delle situazioni a cui le nostre tre fazioni possono essere sottoposte, un piccolo gioco di ruolo per farvi capire il funzionamento di questa A.I del futuro.
Io non sono uno sviluppatore di videogiochi tanto meno un creatore di intelligenti artificiali, pertanto i dettagli tecnici di come effettivamente implementare una cosa del genere li lascio a persone più esperte di me.
La mia intenzione era di esprimere l’idea, il modo in cui le A.I del futuro mi piacerebbe fossero sviluppate e, non si sa mai, magari un giorno qualche ambizioso programmatore leggerà questo articolo e deciderà di portare il mio pensiero alla realtà.
Fisica
Siamo abituati a vedere giochi con una grafica visivamente sempre più simile alla realtà con texture ad altissima risoluzione, effetti particellari e di luce avanzati e una mole poligonale davvero impressionante. Tuttavia non è puramente l’aspetto visivo o uditivo a rendere realistico un videogioco, in quanto il mondo in cui viviamo è soggetto a leggi della fisica.
Per rendere un videogioco veramente realistico è quindi necessario simulare queste leggi nella maniera più simile al mondo reale.
Esistono già avanzati motori fisici in grado di calcolare in tempo reale gli effetti di alcune delle forze fisiche, tuttavia implementare queste funzionalità all’interno di un videogioco può essere spesso complicato e soprattutto estremamente pesante dal punto di vista dello sfruttamento della risorse hardware. Calcolare la fisica in tempo reale è un grosso carico di lavoro per la macchina e spesso gli sviluppatori decidono di attivare solo le funzionalità necessarie al gioco.
Per esempio in Call of Duty non esiste nessuna fisica del proiettile, anzi il proiettile non viene sparato affatto: viene posto una riga virtuale sull’arma la quale rivela l’oggetto o soggetto a cui sta puntando, quando il giocatore spara viene analizzato il tipo di arma che si sta usando e dove sta mirando e attiva un’azione specifica per ogni caso. Per esempio se spara a un muro verranno mostrati i fori di proiettili e se si spara a un nemico il programma di gioco verrà informato in tempo reale che quel personaggio è stato colpito.
Questa tecnica si chiama hitscan ed è un modo facile e poco esoso di risorse per simulare gli effetti di uno sparo. Perché calcolare la fisica in tempo reale quando per i fini del gioco non serve?
Non tutti i giochi possono permettersi di usare questa tecnica; in Battlefield i proiettili sono soggetti alle leggi della fisica e pertanto, oltre a essere effettivamente sparati, il motore di gioco deve calcolare gravità e velocità per ogni singolo colpo. La serie di DICE è anche nota per l’ambiente distruttibile, tuttavia qui c’è il trucco in quanto quello che si vede su schermo non è fisica calcolata in tempo reale ma semplicemente uno script che si attiva quando facciamo esplodere il muro di turno; infatti esplodono sempre nello stesso modo indipendentemente dalla tipo di arma utilizzata e dalla forza usata. Se ad esempio usate un carro e andate addosso a un muretto, noterete che questo si distrugge semplicemente toccandolo seppur la forza esercitata dal carro non sia sufficiente per farlo.
Uno dei pochi giochi con distruttibilità ambientale realistica è la serie Red Faction: sia Guerrilla che Armagedon basano infatti il loro gameplay sulla possibilità di distruggere ogni struttura presente nel gioco con un set di armi altamente esplosive. A differenza di Battlefield, esplosioni e onde d’urto vengono calcolate in tempo reale con un risultato molto più soddisfacente.
Rimanendo in tema, un altro titolo che si basa sulla possibilità di distruggere l’ambiente è Crackdown 3, il nuovo TPS di Microsoft in uscita il prossimo anno. Lo cito perché è il primo titolo a utilizzare la tecnologia cloud per calcolare in tempo reale e in maniera più accurata la distruzione del mondo di gioco. Come avveniva con Forza Motorsport 5, le informazioni necessarie a calcolare la fisica vengono inviate al server, processate e poi rispedite alla console.
Difficilmente possiamo trovare videogiochi che implementino una simulazione della fisica completa. Uno dei pochi esempi è l’ambizioso Star Citizen, il quale, in quanto simulatore spaziale deve rappresentare le leggi dell’universo nella maniera più veritiera possibile con navi distruttibili, assenza di gravità, fisica dei proiettili etc.
Ma la fisica è sempre fondamentale per uno sparatutto? No. Ci sono diversi esempi di eccellenti sparattutto, quali Doom o Bioshock, che non eccellono dal punto di vista della simulazione fisica ma si concentrano sul gameplay e il level design. La simulazione fisica è anzi una funzione sempre meno richiesta negli sparatutto, in quanto spreca risorse che possono essere utilizzate per la grafica, e soprattutto non sempre c’è né il bisogno.
Infatti, gli shooter moderni sono basati spesso sulla spettacolarità e frenesia. Gli enigmi basati sulla fisica, come quelli in Half Life per esempio, sono ormai spariti da diversi anni. La fisica è presente ma spesso limitata e utilizzata solamente per scopo estetico.
Level Design
Una delle cose che valuto con particolare dovizia è il level design. Ritengo infatti che una mappa ben costruita possa avvalorare di molto la qualità del gioco.
In uno sparatutto questo fattore è ancora più determinante in quanto la mappa è l’arena delle nostre sparatorie, e pertanto deve essere disegnata in maniera tale da permetterci il maggior numero di strategie possibili. Negli anni il level design si è evoluto dal labirinto su un piano unico ad ambienti tridimensionali complessi ricchi di scorciatoie e sviluppate verticalmente.
Uno dei vantaggi di questa generazione è la possibilità di costruire mondi sempre più grandi e articolati, con centinaia di diversi elementi e dotati di interattività. La distruttibilità ambientale citata prima è una di queste interazioni: un level design che varia secondo le nostre azioni. Una mappa con elementi che è possibile distruggere può essere un plus non da poco, soprattutto se si tratta di titoli open world o sandbox in cui viene lasciata al giocatore la scelta su come procedere la missione. Ovviamente questa caratteristica va limitata per non rischiare che la mappa di gioco venga completamente distrutta, spazzando letteralmente via il lavoro del level designer. In Battlefield Bad Company e tutti i titoli delle serie usciti in seguito, hanno solamente certi elementi che possono esplodere.
La mappa va progettata in base a quello che il gameplay permette di fare al giocatore. Per esempio in Titanfall 2 è possibile correre sulle pareti e fare salti potenziati con il jetpack, pertanto quando gli sviluppatori hanno creato i livelli del gioco hanno dovuto disegnare mappe che sfruttassero al meglio queste abilità. Il gioco include infatti sezioni platform in cui bisogna saltare da una parete all’altra, alcune volte mobili e mappe che si sviluppano profondamente in verticale.
Il design delle mappe va sempre disegnato pensando a quello che è in grado di fare il giocatore e alla funzionalità del gioco stesso. Essere un bravo designer di livelli significa progettare ambienti che permettano di utilizzare al meglio le possibilità che il gioco offre.
Ma come dovrebbe essere il level design nel nostro sparatutto del futuro?
In realtà il level design degli shooter di adesso è di per sé già ottimo e l’unica critica che posso fargli è la mancanza di interattività. Seppur gli sviluppatori sappiano disegnare mappe divertenti da giocare, spesso sono esenti da elementi con cui interagire.
Distinguiamo in questo caso in quattro generi i tipi di elementi interattivi: reversibili e irreversibili e dall’effetto immediato e dall’effetto continuo. Ogni interazione va associata a un’azione (un qualsiasi input del giocatore tramite interfaccia di gioco), per un totale di quattro combinazioni possibili.
reversibile effetto immediato = tutte quelle azioni che provocano effetti, per l’appunto, reversibili e che dunque una volta attivate è possibile ritornare allo stato iniziale. Sono a effetto immediato quando si attivano all’istante e la loro durata è breve. ES: In Battlefield 1 è possibile aprire le porte e le finestre, le quali rimarranno nello stato in cui le abbiamo lasciate fino a quando non compiremo nuovamente l’azione di chiuderle/aprirle. L’effetto è immediato perché l’animazione parte subito e finisce in meno di un secondo.
reversibile effetto continuo = le azioni che sono reversibili e il cui effetto è continuo, come premere un pulsante che accende un’allarme il quale continuerà a suonare fino a quando non viene pigiato nuovamente.
irreversibile effetto immediato = azioni che una volta compiute provocheranno un effetto che non può essere invertito e con effetto immediato. Ad esempio sparare un barile esplosivo il quale appena colpito attiva immediatamente la sua funzione distruttiva.
irreversibile effetto continuo = azione irreversibili ma con effetto che si protrae nel tempo. Per esempio usare il lanciafiamme di Far Cry 2 per bruciare l’area circostante. L’azione è irreversibile perché una volta bruciata una zona non si può ripristinare ed è ad effetto continuo in quanto il fuoco brucia costantemente la zona, e si spegne solamente solo dopo un periodo di tempo abbastanza lungo.
Fingiamoci ora un level designer a cui è stato assegnato il compito di costruire una mappa con tutte le caratteristiche sopra elencate. Partiamo innanzitutto analizzando il tipo di gameplay del nostro videogioco e vedere cosa ci può essere utile per la costruzione del livello. Nel nostro gioco è possibile muoversi come un esperto di parkour, alla Mirror’s Edge per intenderci, e pertanto una delle prime cose da implementare nel design sono delle piattaforme su cui è possibile saltare, nonché dei lunghi corridoi per poter correre magari con degli ostacoli in mezzo e una forte verticalità.
Ora aggiungiamo un po’ di distruttibilità ambientale: in quanto nel nostro abbiamo a disposizione principalmente armi da fuoco leggere, come mitra e pistole, limitiamo gli elementi distruttibili per solo alcune pareti, di materiale fragile come il legno facilmente distruttibile con qualche colpo, e alcuni oggetti dello scenario come quelli costituiti di vetro, la superficie di un muro etc.
Come ultimo tocco inseriamo alcuni tipi di interazioni, come per esempio delle finestre che possono essere distrutte correndoci addosso o appigli che si sgretolano dopo pochi secondi, oppure ancora grondaie che si piegano e si spostano in un altro punto o tende su cui è possibile atterrare attenuando la caduta. Mettiamo interazioni come anche pulsanti per attivare ponti o generatori di correnti in certe aree, magari per usare postazioni fisse. Non escludiamo i classici barili esplosivi o altri oggetti utilizzabili come arma, per esempio batterie che provocano diversi tipi di danno una volta esplose.
Unendo tutti questi elementi dovremmo ottenere una mappa con un level design ottimizzato per il nostro tipo di gioco. Abbiamo infatti incluso percorsi per le nostre sezioni parkour e per renderle più divertenti, con alcuni elementi dagli effetti sconosciuti o che cambiano il nostro percorso. Per le sezioni di combattimento ci sono ordigni sparsi nell’ambiente da sfruttare e con un design che permette multiple strategie.
Testiamo e sistemiamo quanto va sistemato, e come risultato dovremo avere il nostro livello per uno sparatutto moderno.
Conclusione
Saranno così gli sparatutto nel futuro? Io ci spero, ma penso che ci vorranno ancora diversi anni per portare allo stadio successivo il genere. La tecnologia non è ancora pronta per creare un’esperienza così come l’ho descritta e anche se fosse fattibile i costi di produzione sarebbero troppi alti anche per il più ambizioso dei publisher. Forse un giorno qualche sviluppatore leggerà questo articolo e deciderà di creare un videogioco basandosi sulle mie idee.
Ma quali sono le vostre idee? Scrivetele nei commenti.
scritto da Filippo Giacometti e pubblicato il giorno