Inspiration

Our entire team uses Linux, a form of Unix, as an operating system for development. We feel like Unix is very important for all tech communities, as it provides better flexibility, control, portability and security. Looking around the room, we realized that most of our hacker community uses Windows or Mac OS, and very few used forms of linux. This is because Linux has quite a learning curve and is not very well known. We decided to use our hack to do something about this.

What it does

Our hack is a text adventure game that helps people learn Unix in a fun, interactive environment. The idea is that the player learns bash commands as 'spells' that help them move around the map and defeat enemies. The user can then use their newly learned unix skills for anything they would like.

How we built it

We built our game primarily using bash. The benefit of building our game directly in bash is that it allows the user to execute their newly learned skills directly in the game, even if they don't directly have access to a unix terminal. We were also able to create a website for marketing, which was created with html and css.

Challenges we ran into

In the process of making our game, we faced many challenges. One big issue was that bash only runs on linux and mac, not windows. We decided to bypass this by emulating a linux terminal on our website, which the bash script would run on. That way, anyone could play it from anywhere. Unfortunately, we weren't able to complete the emulator in the course of the hackathon, but we resolved to include that in a later version. Another challenge was parsing input. While simple tasks like pressing enter to continue were fairly easy, it was more difficult to take the user's input and show it as output. Eventually, we were able to do it with the following bash commands:

read cmd
eval $cmd

The read cmd portion takes the user's input and assigns it to the variable cmd, and eval $cmd converts the string $cmd to a command that is run on the terminal. This allows the user to dynamically insert text into the program to test out any linux commands.

Accomplishments that we're proud of

We are proud of ourselves for making the backstory, which we feel will engage people into the game. In the game, the player has to save Tux (the Linux Penguin Logo) from the evil polar bears. We hope this will ensure people continue through the whole game, and learn as much as possible. Ultimately, we're glad our game gives people access to a new tool they might not have used before

What we learned

We learned a lot about bash scripting. While most of us are quite familiar with linux commands, we have hardly created scripts, which introduce a lot of functionality to the basic commands (control statements, loops, functions, etc). None of us had used scripting before, and we enjoyed learning a new language!

What's next for EasyUnix

In the future, we hope to make the website more appealing and integrate the game directly into the website for convenience. Additionally, we will add more levels to cover a lot more of linux, as currently our game just covers the tip of the iceberg - there are so many more levels to make!

Built With

Share this project:

Updates