Postmortem for Fantasy Opera: The Theater of Memory

Thanks to all who engaged with Fantasy Opera: The Theater of Memory as part of Spring Thing 2026! Special thanks to @mathbrush for organizing the event; to the game’s playtesters @John_Ayliff, @Ally, @rh, @dsherwood, @mavnn, and @jeresig; and to all the other authors who participated.

In this post I’ll discuss some of the development and design choices that went into The Theater of Memory, and how the project built on its predecessor Fantasy Opera: Mischief at the Masquerade. I recommend playing the game before reading this, but it’s not completely essential; there will be some light spoilers for the story and gameplay, but I’ll avoid giving away solutions to the puzzles or mystery.

A reminder that voting is open for the Text Adventure Literacy Jam through this Sunday, May 31, 2026, and includes my newest game The Gnomish Treasury!

Contents:

  1. Background
  2. Story
  3. Game Design
    a. Puzzles
    b. RPG Mechanics
    c. Interface
  4. What’s Next?

Background

The Theater of Memory is a continuation of a larger collection of projects that began with three games I entered into IFComp 2025, including the first Fantasy Opera game (Mischief at the Masquerade). This group of games have been the product of my interest in creating choice-based RPGs that blend high fantasy-inspired settings with small-scale stories and relatable characters. (I went a bit more into my goals for these games in my postmortem from last IFComp.)

The Fantasy Opera series, in particular, is set in a fantasy world inspired by 17th century Baroque Italy, in which you play as a private investigator who solves magical crimes impacting the performing arts (a niche specialization for which you find yourself surprisingly in-demand). The premise felt like it had potential for an episodic format; and so, from the inception of Mischief at the Masquerade, I’d envisioned it as a possible start to a series.

A rough idea for Theater’s story came to me at the same time I was developing Mischief. When deciding which premise to pursue first, I opted for the storyline that was more deeply involved with music-making and opera performance itself. But Theater was there, waiting on the back-burner.

Shortly after IFComp, I completed the first draft of Theater last fall; then created the watercolor illustrations and visual design, polished the story and code, and tested/revised the beta over the winter and spring.

Story

(Above: An artistic rendering of Giulio Camillo’s theater of memory.)

Theater’s story, and the central puzzle threaded through it, was rooted in the idea of an enchanted opera house modeled after an elaborate mnemonic system, called “the theater of memory,” created by the Venetian Renaissance philosopher and mystic Giulio Camillo. My Behind the Game essay, which was released with Theater, goes into some more detail about how this historical reference inspired the game.

A story oriented around the physical space of a theater also presented me with an opportunity to reference the exuberant theatrical stagecraft of Baroque (and early Classical) opera.

So, I knew from the start that I wanted the story to revolve around memories that were magically stored within the physical space of a theater. The mystery and characters evolved from there by asking the questions: What would motivate a person/persons to enchant a theater with memories? In what way would these memories make themselves known to the theater’s occupants? What problems would those manifestations of memory cause? And what steps must the player character take to address those problems?

I’ve heard various opinions on how sympathetic, or not, the antagonist(s) and their motives turned out to be. Should Vitale be punished for his actions? Should the enchantment itself — a form of sleep-depriving mind control that threatens to sabotage the opera’s season (and, in many cases, conveys traumatic memories) — be considered a criminal offense? A degree of moral ambiguity and subjectivity is inherent to this story; and it’s this tension that drives the important decision the PC makes towards the end of the game.

Game Design

Puzzles

Theater revolves around one overarching puzzle that is explored in several stages. There is an initial investigation, during which the player gathers essential clues; followed by deduction based on an analysis of the clues; interrogating suspects; and a final sequence in which all the pieces must come together.

Following last year’s IFComp, I was eager to try my hand at writing games that were more puzzle-driven than my first few projects. I explored this in two shorter games last fall: It Was Fate (originally written for inkJam, then entered into the Short Games Showcase) and Beneath the Weeping Willow (for ECTOCOMP’s La Petite Mort category).

With Theater, I wanted to design puzzle-solving sequences that would be substantial set-pieces unto themselves and would meaningfully drive the story forward — but which wouldn’t act as a barrier to progressing the story, either. I’ve observed that, as players, we’re highly diverse in our preferences, play styles, and ideas about what makes a puzzle too hard or easy, fun or frustrating.

My goal for Theater was to provide as seamless an experience as possible for a variety of players: attempting to strike a balance between creating opportunities for the satisfaction of finding solutions, while minimizing the potential for frustration.

In this game, there are ample opportunities to make incorrect guesses (trial-and-error is encouraged in the dream analysis segment). In some cases, the player may choose to bypass a puzzle entirely; or receive a solution directly via in-game hints. The only cost comes in the form of deductions to the final score, and potentially missing out on a little content; namely, advancing to the final stage of the dream analysis.

RPG Mechanics

Theater continues in a similar vein to Mischief’s light TTRPG-inspired gameplay, while making a number of refinements to the system.

The first game offered three skills (Charm, Observe, and Maneuver) and areas of knowledge (Music, Society, and Theater) for the player’s stats. After the game’s release, I got the impression that players were almost never choosing “Maneuver” as their top stat; so I eliminated it from Theater, narrowing the available skills to “Charm” and “Observe.” I also constrained the player’s options for expert knowledge to just two out of three domains (Magic, Music, and Architecture), forcing an early-game decision that focuses roleplaying and narrows the choices that will become available based on the player’s build.

I also widened the differential between the player’s stats to foster a stronger impression of specialization than in the first game. Now the player adds a modifier of either 0 or 2 to each of their dice rolls (instead of 1, 2, or 3), so that skill checks are more likely to pass or fail depending on the player’s stats than they were in the first game.

In addition to these adjustments in how stats were balanced, there was a subtle but significant recalibration of the role of chance in this game. In my previous game, a handful of the skill/knowledge checks were effectively rigged to succeed (although which checks these were depended on the player’s stats) by setting a low enough difficulty that even a nat one would pass when added to the highest modifier. I had chosen to do this so that none of the essential clues to the mystery could be missed due to bad luck, while maintaining the illusion of tension created by chance-based mechanics.

In this game, I decided to make things a bit more transparent. Every die roll can truly succeed or fail based on random chance. But puzzle-essential clues are offered for “free” behind options that don’t require a die roll, but may be stat-locked. For example, the player will be railroaded into identifying symbolic meanings for the magical creatures painted in the theater — a piece of information they can’t afford to miss — but that knowledge will become available in a different way depending on whether they chose Music, Magic, or Architecture as their primary domain of expertise.


This screenshot shows three choices: a chance-based check for “Music,” a disabled choice for “Magic,” and a free, stat-locked choice for “Architecture.” This reflects that the player’s best stat is architecture and their secondary stat is music, but they don’t have knowledge of magic.

In some other cases, the player may fail a check for an essential clue but will have a chance to make up for it by pursuing a later line of questioning with an NPC.

Finally, while opportunities for roleplaying are limited in scope within a fairly short game such as this, I wanted to present the player with plenty of ways to define their PC. Character creation is more detailed than in Mischief, giving the player a choice of fantasy species and pronouns. The player also chooses dialogue choices tagged with four personality traits, which affects personality stats that are reflected in some subtle adjustments to the story’s text and acknowledged through achievements. Four preset characters are offered to accommodate anyone who prefers to skip character creation and sail right into the story. And all of the above is reflected in custom choices and narrative details that add storytelling flavor.

Interface

Theater is powered by Lamp Post Ink Player, developed by @jeresig based on my prototype (and which I have also used in the remastered version of Mischief). This platform enabled a number of improvements over the first game (as it appeared in IFComp), including always-available supplemental screens with the PC’s in-game notes and guidance about gameplay.

LPIP also allowed me to format certain choices as “disabled” (non-selectable and grayed-out): a ChoiceScript-esque touch that conveys to the player which options are dependent on their stats or previous choices, and draws attention to locked alternatives that could be explored on replay.

Apart from the change in platform, I incorporated unicode symbols (hearts, stars, arrows, and dice) into the interface to clarify which game mechanics are relevant to a given choice or passage of text. My goal was to empower the player to make informed choices, without cluttering the screen with explanatory text.

Displaying a die icon next to chance-based choices, and adding personality trait tags to choices, were partly inspired by Roadwarden’s interface. And the use of arrows to indicate a menu of choices as iterative, rather than exclusive, was actually inspired by a user mod for Baldur’s Gate 3. While playing with that mod, I discovered that I really appreciate knowing when a choice will divert me into a new branch of a dialogue tree (or not)!

What’s Next?

It has been lovely see that the majority of those who reviewed Theater had previously played Mischief, and returned for game #2. It’s a special thing, I think, to have some degree of continuity in the folks who are engaging with one’s work!

I do have a premise in mind for a third entry in the Fantasy Opera series, which would bring together some of the cast and plot elements from the first two games into a conclusion to the trilogy. (And a premise for a second trilogy of games in an entirely new opera-themed setting…) But it remains to be seen whether or not I’ll prioritize that over developing other, new concepts!

In the meantime: as I mentioned above, my newest project The Gnomish Treasury is participating in this year’s Text Adventure Literacy Jam (voting open through this Sunday, May 31, 2026). This is the first parser game I’ve released, and the first public product of my burgeoning “love-hate” relationship (or “delighted-frustrated” relationship, more accurately) with Inform 7. Treasury is a beginner-friendly, crafting-driven puzzle game with a Medieval fantasy theme, and I hope it might appeal to folks who enjoy museums, fine craftsmanship, or beautiful objects.

If you’re interested in following the development of my future projects, I post updates to my Patreon (which is entirely free) and Tumblr blog.

Many thanks for taking the time to read this post, and for playing The Theater of Memory!

19 Likes