Projects‎ > ‎

Queen's Heart

Project Home: The Queen's Heart (at GGJ13 site)

Dates: Jan 2013

Language(s): TADS


The Queen's Heart is a short text-based interactive fiction game that I made over a long weekend as part of the Global Game Jam 2013. It follows the trials of a lone goblin knight, guarding his slumbering queen through the long years, until a little girl falls down a well and into his world.

The development process was something like this:

  • Thursday night: Basic concept of a lonely goblin and sleeping queen (which came to me while out for an evening run); reviewed a few of the TADS manuals.
  • Friday night: Learned the GGJ13 theme (the sound of a beating heart) and worked that into the story concept; sketched out the basic puzzles/intended story structure. Wrote intro text and skeletons of 3 of the underground rooms.
  • Saturday: Implemented all underground locations, including mole and worm behaviors/puzzles.
  • Sunday: Implemented the little girl puzzle and two possible endings. Done just in time for the 3pm deadline.

There were two other teams participating at the Honolulu GGJ site, each with about a half-dozen members. I took two of the five local awards: "Most Creative" and "Ready to Ship".


  • Game Jam was fun. It was invigorating to have a deadline and other game-writers hard at work. It was great to get a finished product done and shipped--even if still a bit flawed. This year, I wanted to work solo in order to get a TADS game done as a step in my work on Skald. If I do this again next year, it'd be fun to join a team and pick up some new skills helping out.
  • This was my first serious foray into TADS. I've been looking forward to it since my Inform-based Marlinspike/Demeter project. I like it, but I've also learned that it's very big and fairly complex. That makes it hard. The documentation is spread over 8 volumes (including tutorials vs reference manuals), 5 of which I referred to regularly while developing The Queen's Heart. The TADS library is a blend of objects, functions, and macros, which means it can be hard to know which to use in different contexts. You may find a reference example that uses the macro form, but you might need the functional form given what you're trying to do (such as change a room connector at runtime). I know that I did many things the "wrong" way--for example, I made all my NPCs Fixtures rather than determining which sort of NPC class to use. But TADS has a long, fairly steep learning curve to learning the right way. I'm sure that, once you've mastered it, TADS is very powerful and expressive, though.
  • My love-hate relationship with interactive fiction continues. I love writing it, but it's very frustrating to watch users play it. On the one hand, they never see many of the descriptions, details, and story paths I spent time authoring. On the other hand, they hit unimplemented edges of the game--trying actions or verbs that the game doesn't support--so they get frustrated. Also, it's very difficult to hit the right degree of subtlety: to make the game a literary puzzle to explore as you desire, yet not make it too hard or not drop enough hints at what you need to do to advance the (or any) story line.
  • I'm growing increasingly convinced that object-oriented simulation of IF worlds is the wrong approach. I have ideas for a rule/event based system, though it need more fleshing out. I hope to start work on that as a backend once Skald is done.