I just had a great idea: why not make a game like Notpron, but use Git as the medium instead?
I haven’t given this that much thought and I don’t have any ideas for puzzles yet, but here’s what I’m thinking:
- The
master
branch would be the entry point for the whole puzzle. It will contain a README file with instructions on how to play and a pointer to the first level. - Each level will be represented by a branch whose name is of the form
xxxxxxx/master
, wherexxxxxxx
is a random string so that it is not obvious which level the branch is when looking at the output ofgit branch
. This random string is the “level code” for the level. - If a level requires multiple branches, the name of each branch should be of the form
xxxxxxx/yyyyyyy
, whereyyyyyyy
is the name assigned to the branch, which can be anything. - The goal of each level is to obtain the level code for the next level.
- Each level will make some use of Git’s functionality. File contents, file diffs, commits, commit messages, and even commit authors are all fair game. This is not an exhaustive list.
- Ideally, this game should be playable through the GitHub website, or through a local clone of the repository obtained using
git clone
, so that unfortunately precludes the use of multiple remotes (to keep the puzzle self-contained) or hiding things in the.git
directory. I wonder how GitHub deals with multiple roots…
- Ideally, this game should be playable through the GitHub website, or through a local clone of the repository obtained using
- Each level will have a README file that outlines the level’s puzzle. The first thing the player should do when reaching a new level is to look at the README.
- All levels should branch from the initial commit, which should be empty. This allows flexibility in adding, removing, or replacing levels as needed.
- Initially, I had the idea of having a game branch, where the commit of a level is the parent for the commit of the next level. I realized that this was not flexible enough if maintenance was required.
- Like Notpron is to HTML and other technologies, this game should be an opportunity to learn about Git and to get familiar with it.
I don’t know what to call this game, nor do I have any concrete ideas for puzzles, but there’s the idea, and I think it has potential. If you have any suggestions, please leave a comment!
EDIT: The Cthulhu has been released!