GameShell

GameShell was designed to teach people how to use the *nix shell. It is an open-source game hosted on GitHub.

Video Walkthrough

Use this video to follow along with the steps in this lab.

Connect and Install

  • Start your Linux virtual machine and access the terminal.
  • Run the following commands to download then run the game.
ubuntu@ip-172-31-16-60:~$ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
ubuntu@ip-172-31-16-60:~$ bash gameshell.sh
  • You should see the following ASCII art. As instructed, press enter to continue.
  ____                      ____  _          _ _
 / ___| __ _ _ __ ___   ___/ ___|| |__   ___| | |
| |  _ / _` | '_ ` _ \ / _ \___ \| '_ \ / _ \ | |
| |_| | (_| | | | | | |  __/___) | | | |  __/ | |
 \____|\__,_|_| |_| |_|\___|____/|_| |_|\___|_|_|

                             _
                           _/ \
          _               /    \
         / \_   __       /\/\  /\
        /    \ /  \     /    \/  \
       /\/\  /\    `--./.'-    `-.\
      /    \/  ' ^ _    _  _
    /\ ____..      YY  Y     _   |~  _
   /._/  _ \_        Y  Y   [_]--'--[_]
  / / .'/#\_ `-.    Y  YY   |'|""`""|'|
    .-_/#@##\  `\"" ' Y     | | /^\ | |
   " "'"''"'"'''" '         |_|_|I|_|_|

Press Enter to continue.

Playing the Game

  • Read the instructions. For example, when asked to "build" something, that means that you should create a directory.
  • The game takes over your terminal. It also introduces the gsh (GameShell) command that manages the game. Use these commands to check your status and get help.
gsh goal
gsh check
gsh help
gsh exit
gsh index
gsh skip
  • Note that if you need to skip a mission, GameShell will prompt you for a password. The password is gsh.

Mission 1 Walkthrough

This section will walk you through mission 1.

  • Check your goal.
[mission 1] $ gsh goal
  • The goal tells you to go to the top of the main tower of the castle.
  • Check your current working directory.
[mission 1] $ pwd
/home/ubuntu/gameshell/World
  • List the files and directories.
[mission 1] $ ls
Castle  Forest  Garden  Mountain  Stall
  • You need to get to the castle's tower. Navigate to the Castle directory.
[mission 1] $ cd Castle
  • List the files and directories again to see what is inside the Castle.
[mission 1] $ ls
  • There is a Main_tower directory. That sounds right. Change directories to it.
[mission 1] $ cd Main_tower
  • List again.
[mission 1] $ ls
First_floor
  • Change directories again.
[mission 1] $ cd First_floor
  • Repeat.
[mission 1] $ ls
Second_floor
[mission 1] $ cd Second_floor
[mission 1] $ ls
Top_of_the_tower
[mission 1] $ cd Top_of_the_tower
[mission 1] $ ls
[mission 1] $ gsh check

Congratulations, mission 1 has been successfully completed!
  • The prompt will change to mission 2 automatically.
  • Continue by checking your new goal.
[mission 2] $ gsh goal

Exit and Resume

  • If you need to take a break, you can exit. Your progress will be saved in a new script file called gameshell-save.sh.
[mission 2] $ gsh exit
  • Exiting will save your current game in a new file called gameshell-save.sh.
  • You will need to start the gain again with the saved file to continue your progress.
ubuntu@ip-172-31-16-60:~$ bash gameshell-save.sh

Progressing

  • If you get stuck, read the friendly manual.
  • Check the Linux command cheat sheet.
  • If you need to skip a mission, run gsh skip and enter the password gsh.
  • View your status using the following command. It will show which missions have been completed.
[mission 2] $ gsh index

    1   basic/01_cd_tower (completed)
->  2   basic/02_cd.._cellar
    3   basic/03_cd_HOME_throne
    4   basic/04_mkdir_chest

Challenge

  • How far can you get in the game?

Reflection

  • What resources do you find helpful if you feel stuck? Google? ChatGPT? The manual?
  • Is gamification a good method for learning technical skills?