Wednesday, September 16, 2009

[Art of Fugue] Fourth puzzle, source

I have partly rewritten The Art of Fugue. In the previous version, the game remembered each action, and simply changed the actor part of the action and tried doing it again. But what I really wanted was to remember each command, and parse that command anew for each actor. (This is very different. In the first case, "x me" would lead to each of the actors looking at Een; in the second case, it leads to each of the actors looking at themselves. The latter is what I wanted.) This significantly cleared up the code for puzzle three, since I had to do a lot of dirty hacking with the apples in the previous system.

I have also added a host of rules that should stop (most) multiple actions, like "take all" or "sing and jump".

I have added a fourth puzzle, which is almost perfect in its simplicity. There is a room with a lamp (currently off) and a single button. Pressing the button will turn the lamp on or off, depending on its current state. Challenge: get the lamp to burn for three consecutive turns.

And I have put the source code online! Consider it released under the GPL 3 or any later version. (But of course I'd appreciate you not forking it at this point in its development. Let's make a working full version of the game first!)

Game. Source.


  1. I am unable to open the game in Gargoyle 2009-8-25. Pain! Tragedy!

  2. Nick, I couldn't get it to work in Zoom on OS X either, until I changed the extension to .ulx (from .gblorb).

  3. Huh! That worked great for me as well.

  4. That's strange, because I am using Gargoyle 2009-8-25 as well? It opens the gblorb file with Git.

    I'll be sure to choose the .ulx extension for the next release, though, if gblorb gives such problems.

    (BTW, you could always copy-paste the code into your own copy of Inform 7.)

  5. Victor, Gblorb in general doesn't give these problems--at least, not that I've ever seen. I think it must be an issue with how the Linux version of Inform (you're on Linux, I believe?) is packaging things for release... The previous version of Art of Fugue also behaved this way.

  6. So, we didn't like the fourth puzzle at all. The behavior of AGAIN is really quite bizarre; at first we thought we were exploiting a bug, but there is certainly no other way to solve the puzzle.

    If AGAIN is going to work like this, I think that the game needs to communicate this to the player somehow. What happens if the player doesn't ever try AGAIN (possibly isn't even aware of it), but instead uses the interpreter's command line history to recover her last command?

    And I don't understand the logic behind AGAIN working this way in any case...

    The first three puzzles, however, were very clever and enjoyable to solve.

    Oh, and the FIRST time we solved the fourth puzzle, we did it by exploiting something that definitely is a bug. Typing "Z,Z" results in this:

    >z, z
    Een remains absolutely silent.

    Een remains absolutely silent.

    Drie: The lamp is far too high above.

    Vier can't go that way.

    (Een waits twice in the same turn, and Twee does nothing.)

  7. Hi Jimmy,

    Thanks for the comments. The comma-stuff is definitely a bug--I thought I had stripped out all the ways of getting more than one command in a single line, but I wasn't aware that you could it with a comma as well. Will be fixed.

    About the fourth puzzle: alas, if it doesn't give a satisfying *click* once solved, it is a failure. It gave *me* that click when I thought it up, but if it seems arbitrary to you there are apparently different intuitions about how "again" should work.

    So unless a lot of people tell me that they loved it, I'll kick it out, and I'll probably kick out "again" completely. (Which does in fact make some things easier.)