GameShell – Impara giocando a usare il terminale in 🇮🇹

Il terminale su Linux è uno di quegli strumenti che fanno apprezzare la potenza del sistema operativo.
Sia se si usi il computer ogni tanto o solo per un uso di ufficio che per un uso lavorativo o di programmazione/sistemistica.

Il terminale, chiamata shell/console è uno strumento da linea di comando che permette di eseguire applicativi chiamandoli tramite la tastiera invece di usare il mouse.
Può sembrare roba vecchia oggi con gli smartphone ma è molto ma molto potente, questo perché permette di fare cose che i programmi da interfaccia grafica non permettono di fare oltre che essere molto più rapidi (sia come esecuzione che uso).

Una delle peculiarità del terminale su Unix è la possibilità di eseguire un programma con dei parametri, passare il suo risultato ad un altro e così via e salvare solo alla fine il risultato.

Oppure si possono fare degli script Bash, ad esempio, che a loro volta sono dei programmi che ne eseguono altri come riavviare il media player se rileva dei nuovi file in una cartella.
Oppure collegarsi in remoto a un altro computer che si trova nella vostra rete di casa oppure su un server che si trova dall’altra parte del globo, sempre dando dei comandi da terminale.
Potrei continuare a lungo oppure potrei mettervi il link di uno degli incontri del
mio LUG (a Rieti) in cui faccio vedere in un ora come usarlo.

Ma andrei fuori tema perché voglio presentarvi GameShell! Richiede Linux per giocarci ovviamente…

Cos’è GameShell

Schermata del gioco (i colori cambiano in base alla configurazione del terminale)

Qualche mese fa questo progetto girava parecchio su Reddit e io notai il primo problema che da noi avrebbe creato problemi nella adozione… la mancanza della lingua italiana.

Si tratta di un gioco da terminale che con varie missioni (42) crea un ambiente fantasy in cui tramite una storia bisogna spostare file, crearli, chiudere processi e così via lanciando dei comandi.
Nato in ambiente universitario ma è stato testato su studenti (anche delle superiori) in Francia è un modo pratico per fare lezioni di uso del terminale in aula oppure per fatti propri. Ricorda molto le avventure testuali di una volta solo che bisogna dare dei comandi (in uno spazio sicuro).

Visto che in Italian Linux Society sono sempre alla ricerca di materiale e idee mi è sembrato qualcosa adatto per i LUG nel nostro paese e anche per le scuole per insegnare qualcosa che aiuta anche a capire come funziona un sistema operativo.

Quindi sono partito a tradurlo e facendo girare la voce (anche in tono lamentoso) siamo arrivati a 11 contributor totali per la lingua italiana, tra revisori e traduttori, io ho fatto un po tutti e tre i ruoli oltre che tester. Infatti in questo lavoro ho trovato dei bug e segnalati.

Come funziona

Il readme è disponibile anche in italiano ma vediamo al volo alcune cose.
Se si vuole giocare da soli basta scaricare il repo, per chi non ha idea di come si faccia basta premere il pulsante verde in alto a destra e Download zip e estrarre il contenuto.
In questo modo potete giocare nel vostro pc, il gioco ha un sistema di salvataggio che permette di riprendere alla ultima missione, ha uno storico dei comandi oltre che suggerimenti e così via.

Per un uso formativo invece c’è un altra opzione. Ovvero creare una versione “archivio” che non fa altro che creare uno script che include tutto o solo alcune missioni e coperte da password.
Si esatto, si può inserire una password amministrativa che permette ad esempio di saltare le missioni utile in ambito formativo dove basta andare al pc dello studente e dare quei comandi per fare questi magheggi se necessario.

Verifica in automatico se ci sono salvataggi ad ogni avvio

Per approfondire i comandi di gioco e la versione “archivio” vi lascio il manuale utente (in inglese) ma è molto semplice.

Per averlo in lingua italiana richiede che il terminale abbia impostata la lingua italiana!

Ho suggerito oltre al file docker di fare una macchina virtuale con il gioco già installato e pronto all’uso per semplificare la vita, se qualcuno vuole dare una mano

Un esempio di schermata di gioco missione

Quindi se trovate problemi nella traduzioni o qualche bug e non ve la sentite con l’inglese contattatemi (nella barra laterale a destra trovate tutti i riferimenti) perché ora grazie a:

  • Daniele Scasciafratte (@mte90)
  • Paolo Mauri (@maupao)
  • Marco Ciampa (@ciampix)
  • Antonio Vivace (@avivace)
  • Lorenzo Millucci (@lmillucci)
  • Sirio Negri (@ziriuz84)
  • Domenico Mammola (@domenicomammola)
  • Leonardo Canello (@anulo2)
  • @michirod
  • @serhack
  • WhiteShield (@wshield05)
  • @gioisco

… questo gioco è in italiano, un lavoro di squadra che spero possa fare la differenza!

Anche i migliori sbagliano!

Per chi è curioso e vuole vedere la storia della traduzione trova tutto online. Per scaricare vai qui.

Missione conclusa!

Per chi vuole vedere un webinar in azione con una introduzione ai comandi e il gioco alla fine, ecco qua.

Liked it? Take a second to support Mte90 on Patreon!
Become a patron at Patreon!

13 commenti su “GameShell – Impara giocando a usare il terminale in 🇮🇹

  1. Salve, complimenti, ho completato solo il primo episodio e sono in cima alla torre.
    Penso che forse il primo obiettivo sia che il giocatore faccia estrema attenzione alla “forma” del comando e credo sia pienamente raggiunto.
    Forse il secondo era scoraggiare chi non fosse sufficientemente motivato?
    Altrimenti non mi spiego l’impossibilità di tornare indietro nemmeno di una scelta costringendo sempre a un reset totale.
    O chissà magari i primi passaggi sono così importanti che il ripeterli una dozzina di volte è fondamentale?
    Comunque grazie proseguirò.

    1. Ciao, tutte le missioni richiedono un reset non si può tornare indietro.
      Serve per vari motivi dal contare il numero di operazioni che hai fatto (certe missioni richiedono ad esempio un comando solo) al ripartire a una soluzione pulita per verificare meglio quali passaggi sono stati fatti.
      Inoltre è per imparare quindi usare carta e penna per segnarsi le cose mentre si fanno mi sembra più che giusto.

  2. Buongiorno Daniele, gameshell è simpaticissimo. Sono arrivato all’episodio 16 (creare alias). Non riesco a superarlo. Tuttavia penso di avere dato la soluzione corretta. Infatti l’alias da me creato mi porta direttamente (tramite il percorso assoluto) al file storico.txt da editare. Posso tranquillamente modificare il file storico.txt partendo da qualunque posizione senza dover digitare ogni volta il percorso ma semplicemente digitando il solo alias che mi porta direttamente nel programma nano che mi legge il file storico.txt. Tuttavia facendo gsh check il sistema mi dice sempre che non ho superato l’episodio 16 e non posso andare avanti. Ho fatto così a partire da tilde: alias journal=’nano /home/domenico/gameshell/World/Castello/Cantina/storico.txt’ Dicevo l’alias mi funziona correttamente ma il programma mi blocca al livello 16.
    Mi puoi dare una dritta? Posso in qualche modo forzare il passaggio al livello 17? Sin d’ora ti ringrazio tantissimo. Domenico Di Paolo

  3. Ciao di nuovo Daniele. Grazie per la tua attenzione.
    Non c’è verso.
    Se metto il percorso assoluto mi dice:

    “Sembra che l’alias non faccia riferimento al file appropriato (nano /home/domenico/gameshell/World/Castello/Cantina/storico.txt).
    Assicurarsi di usare un percorso assoluto…

    Spiacente, ma la missione 16 non é stata completata.”

    Eppure il comando journal mi funziona e mi porta nel file storico.txt direttamente.
    Se abbrevio il percorso partendo da /Castello/Cantina/storico.txt altrettanto non mi fa superare il livello 16.
    Boh non ho capito dove sbaglio 🙂
    Ciao e grazie comunque

  4. Ciao Daniele, ho provato come mi suggerivi ma non c’è verso. Comincio a temere in un errore del programma. Infatti i primi 15 livelli li ho superati agevolmente e il livello 16 (creare alias) è anch’esso facile. Ne ho provate di cotte e di crude. Col percorso assoluto, col percorso relativo. Con il minor utilizzo di comandi (anche se l’episodio 16 non richiede questo requisito). In tutti i casi l’alias da me indicato funziona e mi porta al file storico.txt pronto per essere editato. Non fa nulla e ti ringrazio per l’attenzione. Mica conosci altri giochi simili on line? Ho provato OverTheWire (primo livello bandit) ma in effetti è molto complicato per le mie attuali competenze.
    Ciao 🙂 🙂

      1. Ciao Daniele, se faccio ‘gsh skip’ al livello 16 mi viene richiesta una password e non vado oltre.
        Per il mio salvataggio del gioco non so come fare a creare il salvataggio da mandarti 🙂

          1. Ciao Daniele, ho risolto dal manuale come mi dicevi. Sono riuscito a saltare il livello 16 che penso abbia un errore di funzionamento. Dal livello 17 in poi fila tutto liscio. Ora sono al livello 22 e sta diventando man mano sempre più piacevolmente impegnativo. Ti aggiornerò. Se mi dirai di scrivere come fare a saltare i livelli lo scriverò. Per ora mi astengo dal pubblicarlo (non che sia un segreto perchè è scritto nel manuale come mi suggerivi) per evitare che chi si cimenta con il gameshell alle prime difficoltà si arrenda e salti il livello senza prima avere “gettato il sangue” nel trovare la soluzione 🙂 Grazie

  5. Ciao Daniele, innanzi tutto bravi per la traduzione del gameshell in italiano. Diversamente non lo avrei potuto affrontare.
    Il gioco è bello e stimolante
    Ti faccio il mio resoconto finale.
    Ho superato tutti i livelli tranne il livello 34 ed i livelli finali 39-40-41 e 42 davvero ostici per il mio attuale livello di preparazione.
    Il livello 16 credo proprio abbia un malfunzionamento poichè fornisco la corretta soluzione di alias funzionante ma il sistema mi dice che il livello non è superato.
    Continuerò a studiare il terminale ed i comandi a parte e più in là tornerò sicuramente qui a risolvere gli ultimi livelli.
    Grazie e ciao

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *