Oh My Git! Is An Open Source Game For Learning Git
Oh My Git! turns the Git version control system into a fun, interactive game for both beginners and advanced users interested in learning more or to teach others. The game is free and open source, it's built using the Godot game engine, and is available for Linux, macOS and Windows.
Git is ubiquitous these days - but it has a pretty steep learning curve! To help people learn how to use it efficiently and intuitively, we're developing an interactive, open-source learning game!
- the game developers at FOSSDEM
According to the developers, "there's a real Git integrated into the game, so players can try and learn all of Git's features". Also, the game puts a focus on interactions with remotes, so it's also useful if you want to learn how to use Git for collaboration in teams.
As for the game's story, "you're a time agent in training, and learn all about how to use your time machine to help people solve their problems".
Oh My Git! is in development since September 2020, with the last major version being released back in February 2021.
This is the game trailer (taken from ohmygit.org and uploaded to PeerTube in order to avoid hotlinking to the video):
The UI & gameplay
Oh My Git! Level "Working together" (6) from intro |
When you first run the game, you'll notice multiple elements on the screen, including a terminal where you can type commands and a file manager-like pane where you can open files to edit them.
There's also a short story with instructions on what to do next. In Oh My Git!, players are guided through each Git feature, step by step, with each level telling a story in which the player can use their newly acquired Git skills to solve problems.
Oh My Git! Level "Moving branches around" (6) from branches |
Starting with level 3, you'll also get custom playing cards that include your newly introduced Git commands. These cards also include a short description of the command they represent. You can choose to either drag and drop the cards to execute commands, or you can type them in the terminal. While fun, in order to learn something I recommend you don't just drag the cards to execute commands, and type them instead.
There's also a visual interpretation of the internal structure of Git repositories shown in real time, in which users can immediately see the results of their actions.
It's worth noting that the arrows between commits in Oh My Git!'s visual interpretation of the internal structure of Git repositories do not represent the pointers used by Git internally. Instead, the arrows indicate the time direction. This was chosen "because we found that it confuses Git beginners less".
Oh My Git! levels |
You don't have to play from the beginning. When you start the game, you get a Levels button from where you can choose the level you want to play. The levels are divided into categories, like intro, branches, stash, etc. From here you can also choose to re-play a level.
It's also important to note that Oh My Git! has 44 levels right now, and you can also build your own level! You can find instructions on how to do this and the level format, by visiting the game's GitHub repository page.
Download Oh My Git!
Make sure to read the notes from the Oh My Git! game downloads page. E.g. the game is currently pretty slow to execute commands on Windows, while on macOS you might be warned that the application was made by an "unidentified developer". The source is available on GitHub.
If you want to help fund its development, head to the Oh My Git! homepage and scroll to the Support development section.