A meta-JavaScript adventure game.
The game presents you with a roguelike-like playing environment and a console window with the JavaScript code generating each level. As loaded, each level is unbeatable, and most of the JavaScript is blocked from editing.
Il giocatore è un giovane tenente appena uscito dalla scuola ufficiali, assegnato come primo incarico ad una postazione di difesa antimissile contro il Nemico. Scopo primario del giocatore è gestire il sistema antimissilistico individuando i missili in arrivo e lanciando loro contro dei missili difensivi. L'interfaccia è un'estensione di Missile Command, il classico gioco degli anni 80. Questo sistema antimissilistico però è lento, impreciso, fa errori, sgradevole da usare, ecc. Questo è dovuto a notevoli errori di programmazione del sistema creato molti anni fa in Javascript da programmatori ormai morti. Quindi il compito secondario del tenente, (ma il vero obiettivo del gioco) è trovare questi errori e correggerli, via via riprogettando il sistema antimissilistico in modo da renderlo più preciso, più reattivo e, alla fine, anche automatico. In una chat room con il superiore (che è un personaggio sintetico) vengono forniti incarichi e suggerimenti d'azione. Ad intervalli irregolari si inserisce nella chat uno sconosciuto, un vecchio programmatore pazzo, che conosce da vicino il sistema e fornisce indicazioni e suggerimenti molto precisi e concreti su come risolvere un problema.
Il sistema è composto da sensori che percepiscono gli attacchi da parte del nemico e tracciano la traiettoria dei missili in arrivo, puntatori che muovono le torrette di difesa e sparano missili anti-missile, una console in HTML5 che visualizza le informazioni dei sensori e permette all'utente di muovere le torrette e sparare. Il gioco è gioco: fisico, interattivo, tradizionale. Il gioco progressivamente si complica, ed è necessario introdurre armi, tecniche o strumenti nuovi. Per ottenerli, è necessario risolvere problemi. Questi problemi sono l'argomento della didattica. Tuttavia l'arma, la tecnica o lo strumento non sono il premio per una corretta soluzione di un problema didattico, ma sono IL RISULTATO della corretta soluzione del problema didattico. Il gioco è narrativo e immersivo: c'è una storia, c'è una trama, ci sono personaggi che crescono risolvendo problemi, fanno progressi o carriera, affrontano sfide nuove che li portano a migliorare vivendo una storia. Il gioco quindi non è solo meccanica o solo punteggio. Il procedimento di insegnamento prevede una sequenza: Debugging: Il giocatore si trova davanti prima un sistema non funzionante, o impreciso, o con errori di logica, e dovrà migliorarlo identificando gli errori e fornendo una correzione al codice. Refactoring: Successivamente dovrà fare i conti con codice funzionante, ma complesso, lento, farraginoso, ingestibile, e dovrà proporre modifiche che ne migliorino efficienza, manutenibilità, generalità, estetica. Designing: Solo alla fine si troverà di fronte a documenti vuoti in cui programmare da zero la soluzione ad un problema non affrontato precedentemente.
Amerigo Mancino
Simone Scala