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)
Hmm isn’t doctor How can I help you Eliza?
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.)
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.
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.