Idea: Git Puzzle Game

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, where xxxxxxx is a random string so that it is not obvious which level the branch is when looking at the output of git 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, where yyyyyyy 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…
  • 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!

5 comments
  1. Ethereal said:

    Yeah that could be interesting but I think websites provide a better canvas for puzzles because git is much less of a mainstream thing and its more complicated than opening a web browser

    • Certainly, and I’m sure that’s why there are more puzzle sites than Git puzzles out there. That said, Git provides you an experience that a website can’t.

      I should really get around to announcing this, but the first 10 levels have been up for a year now, with five more to come soon. I called it Cthulhu. If you’re willing to give it a shot, please let me know what you think!

      • Ethereal said:

        Oh cool!

  2. Jason said:

    I just had the same general idea, but yours sounds much more fun….did you make it? Find something similar? I think it would be a great git learning tool.

    • I did, actually! I’ve been meaning to write up an announcement post, but I haven’t found the time to do so. I have 15 levels released so far, with more level ideas in the backburner. I call it Cthulhu. There is also another Git game that someone else made that was good in its own way from what I remember.

`$name' says...

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: