hg adventure

Inspired by some silliness on #developers:

<jgilbert>	well that was an hg adventure
<dholbert>	$ hg adventure
You are in a twisty maze of passageways, all alike...
<cpeterson>	$ hg look
It is pitch black. You are likely to be eaten by a grue.
<hub>		$ hg doctor
How can I help you?

I thought I’d stick to actual hg commands, and came up with:

You see a small hole leading to a dark passageway.
820:21d40b86ae37$ echo "enter passageway" > action
820:21d40b86ae37$ hg commit
It is pitch black. You are likely to be eaten by a grue.
821:0121fb347e18$ echo "look" > action
821:0121fb347e18$ hg commit
** You have been eaten by a grue **
822:b09217a7bbc1$ hg backout 822
It is pitch black. You are likely to be eaten by a grue.
821:0121fb347e18$ hg backout 821
You see a small hole leading to a dark passageway.
820:21d40b86ae37$ echo "turn on flashlight" > action
820:21d40b86ae37$ hg commit
Your flashlight is now on.
824:44a4e4bf5f0e$ hg merge 821
Your light reveals a forking passageway leading north and south.

Kinda makes you think, huh? Time reversal games became popular semi-recently (eg Braid). Maybe the fad is over now; I’m *way* out of date.

But did any of them allow you to branch and merge? Push and pull from your friends’ distributed repos? Bisect to find the point where you unknowingly did something that prevented ever winning the game and either continue from there, merge a backout of that action, or create a new branch by splicing that action out?

It’s a whole new genre! It’ll be… um… fun.

(I’ll go back to work now)

Tags: , ,

4 comments

  1. Hmm isn’t doctor How can I help you Eliza?

  2. I actually went so far as to implement a whole bunch of this in python. I can’t remember which computer it’s on though. (And since it is all python, even if I built a game around it there would be no way for anyone to actually play it.)

  3. Eh, my comment about ‘hg doctor’ was more to joke about Emacs that has a M-x doctor. 🙂

    It says:
    “I am the psychotherapist. Please, describe your problems. Each time you are finished talking, type RET twice.”

    And then it pretends to be a shrink.

  4. My blog seems to be eating my own comments. How helpful.

    Do tell! What did you implement? Were you versioning player actions, player state, world state, or a combination?

    And… wait, you implemented “a whole bunch of this”, but not including the game part? That sounds like you implemented the version control part, which… er… has been done before. There’s this program called “mercurial” that… never mind. I think I’m missing something here.