Avete presente il messaggio d’errore che compare in Chrome quando si prova a visitare un sito web e la connessione Internet non è disponibile? Si otterrà qualcosa di molto simile a quanto rappresentato in figura.
Ma avete mai provato a verificare cosa succede premendo la barra spaziatrice sulla tastiera alla comparsa di tale messaggio? Si accederà a “Dino Game“, una sorta di videogioco arcade “vecchia scuola” che permetterà di misurare le proprie abilità nell’evitare una serie di ostacoli che il dinosauro incontra lungo il suo cammino.
Gli sviluppatori di Google Chrome hanno aggiunto “Dino Game” al browser semplicemente per intrattenere l’utente nel momento in cui la connessione di rete non funzionasse.
Avete presente però quei videogiochi online in cui si trovano record incredibili ottenuti da parte degli utenti? Com’è possibile che qualcuno sia stato così abile?
Diciamo subito che la gran parte di tali inarrivabili record sono fasulli, creati ad arte.
Il comportamento di videogiochi come “Dino Game” basati su JavaScript è infatti facilmente alterabile. JavaScript ha infatti la prerogativa di essere un linguaggio interpretato e non compilato: il codice viene caricato ed eseguito in locale da parte del browser installato sul sistema dell’utente quindi è facilmente modificabile.
In un altro articolo abbiamo visto le principali differenze tra compilatore, interprete e compilatore just-in-time.
Provate innanzi tutto a digitare chrome://dino
nella barra degli indirizzi di Chrome: verrà mostrato il messaggio Premi la barra spaziatrice per giocare senza la necessità di andare offline accedere al gioco.
Premendo il tasto F12
si aprono gli Strumenti per gli sviluppatori di Chrome.
Da qui studiando il codice Javascript di Dino utilizzando appositi breakpoint, come spiegato nell’articolo sulla modifica delle pagine web con Ispeziona elemento), ci si accorge che il videogioco richiama sempre la funzione Runner.prototype.gameOver
nel momento in cui il dinosauro va a urtare un ostacolo.
Cliccando sulla scheda Console degli Strumenti per gli sviluppatori di Chrome e digitando quanto segue, si può creare memorizzare il codice della funzione citata all’interno della variabile backup
contestualmente creata:
Dopo aver premuto il tasto Invio, scrivendo quanto segue, si eliminerà tutto il codice contenuto nella funzione annullando le conseguenze derivanti dagli scontri con gli ostacoli:
Facendo partire il gioco, il dinosauro diverrà “immortale” e non succederà più nulla a seguito degli urti con i cactus e con le altre insidie disseminate sul tragitto.
Non appena Dino incontrerà la fiamma olimpica (novità aggiunta durante il periodo di svolgimento dei Giochi olimpici di Tokyo 2020 svoltisi nell’estate 2021) anche gli ostacoli delle varie discipline saranno superati senza toccare né mouse né tastiera.
Per interrompere il gioco, basterà digitare nella Console quanto segue in modo da ripristinare il codice originale della funzione precedentemente salvato nella variabile backup
:
Un gruppo di sviluppatori ha addirittura riutilizzato il codice JavaScript alla base del gioco per realizzare il fork battezzato Dino Swords.