Let us now hear from this episodeâs challenger, ONNO BROUWER, who tells us something of the journey that has led to the stadium floorâŚ
Q: You got your start in IF during the âmagazine eraâ and cite a pair of 1980 articles (in Creative Computing and Byte) as the things that started your interest in interactive fiction â even before you had access to a computer. What drew you to the concept itself? Do you recall anything specific about the articles which piqued your interest?
OB: Before IF there were other games/simulations, but most of those games used numbers for input. Far easier to handle, of course, but less interesting to me.
One notable exception was ELIZA, which used pattern matching and some rewriting to simulate a conversation with a therapist. But it had no world model or state behind it, and no memory of past actions by the user.
And then I read those articles about ZORK. It reminded me of an earlier article by Scott Adams which also featured a parser, but felt a bit primitive at the time. ZORK was much more sophisticated, as the numerous examples showed. Unfortunately I was referred to an article published in IEEE Computer a year earlier. âNope, magazine publishers generally donât do reprintsâ. I was out of luck.
Still, the idea of creating a virtual machine dedicated to running IF coupled with some kind of data structure for the game content stuck with me. Scott Adams and Greg Hassett both wrote several adventure games using a similar mechanic: A game engine written in BASIC and a lot of DATA statements containing the game itself.
When I published my first IFComp game One King to Loot them All in 2023, I was reminded of this idea and literally created a âgame engineâ within Inform7 and stored most of the dynamic âgame contentâ in tables, which allowed me to easily handle the UNDO / RESTART trickery I had in mind for the game.
I still have some of the magazines of those early days. Creative Computing was by far my favorite magazine at the time, followed by Dr. Dobbâs and BYTE. Communications of the ACM was the last magazine I read in print until I left the ACM.
Q: As someone with an interest in IF during the âmagazine era,â you are familiar with âtype-ins,â i.e. programs that were published in magazines for users to type in on their own computers. Are there any of these that stand out in your memory? Was the experience of a type-in game ruined in advance by seeing the source code?
OB: Oh my gosh, the type-ins. Yes, I do remember some of those. And no, typing them in didnât ruin the experience for me; I was too focused on trying to type exactly what was printed, for fear of running into hard-to-find bugs later on.
Some IF games from magazines:
Some simulation games from magazines:
- Three Mile Island, a nuclear reactor simulation game
- Imhotep, a pyramid builder simulation game
- The Oregon Trail, a pioneering simulation game
Some games from the (More) BASIC Computer Games books:
-
Animal, a âguess the animalâ game where the computer tries to guess which animal the player has in mind and asks a bunch of yes/no questions. I came across this game in the Science Museum in London before I learned how it was coded, and interrupted the program to see what made it tick. I was politely asked to leave the premises due to âdisruptive behavior.â Typing RUN to restart the game âfixed itâ and I was allowed to stay (I guess they didnât realize that stopping the program made it forget about the animals it had learned from the museum visitors.)
-
Ha(m)murabi, one of the early resource management games. Someday I want to publish an IF version of this game. Only much later did I learn this game was based
on âThe Sumerian Gameâ, which turned out to be a lot more interesting, but unfortunately not enough information has been preserved to fully reconstruct it.
-
Super Star Trek, my favorite space simulation game at the time. Also by far the biggest non-IF game to type in.
-
ELIZA, I just had to try this one out. Ah well, at least I learned quite a bit about string handling in BASIC.
-
Wumpus, my favorite monster hunting game at the time. Looking for an IF way to recreate this game led me to Andrew Plotkinâs Hunter, in Darkness, and eventually to this forum. I still havenât dropped the idea of recreating it as IF, though.
Q: At the time, you experimented with writing your âown simple adventure gameâ in your native language (Dutch) but ran into difficulties. Have you ever found a development system that made it easier to write a game in Dutch? What specific challenges need to be overcome for a Dutch parser?
OB: If such a system existed at the time, I was unaware of it. Most of my knowledge came from magazines or books from the local library. No Internet in sight, and certainly no Google. By the time I did learn about languages and tools that might have made the job easier, I had lost interest in trying.
As for the challenges, I recall a few:
- Gendered nouns, which affect adjectives and articles. This affected both parsing input and generating output. Some examples:
A large door Een grote deur
A large window Een groot raam
The large door De grote deur
The large window Het grote raam
The large doors De grote deuren
The large windows De grote ramen
- Separable verbs, which broke the simple verb-noun pattern common in IF at the time. Viable alternatives do sometimes exist, but not always. Some examples:
Take the coin Raap de munt op Pak de munt
Drop the coin Laat de munt vallen Laat de munt los
Wear the coat Doe de jas aan Draag de jas
Unwear the coat Doe de jas uit Trek de jas uit
In the end, English seemed much easier to parse for me.
Q: Youâre a fan of Steve Meretzky of Infocom fame. Which of his games are your favorite(s)? What aspects of his authoring style do you admire the most?
OB: Iâve played 8 out of his top 10 games on IFDB. I havenât played A Mind Forever Voyaging or Zork Zero: The Revenge of Megaboz yet; maybe I should try them sometime. My favorites are Planetfall and Stationfall (because of Floyd - creating a single, fleshed-out NPC sidekick was a stroke of genius in my opinion, and both games became quite emotional toward the end, which is rare for me) and The Hitchhikerâs Guide to the Galaxy (because of Douglas Adams; Iâve read all his books, so this was a no-brainer).
As for aspects of his authoring style that I admire, I can think of a few:
-
worldbuilding - most games had a âsensible map,â and recreating them was relatively painless, a huge relief compared to mapping out the maze in Zork I, for example.
-
character building - Floyd being the prime example; I do not recall any other games from around that time featuring character development like the one Steve achieved with Floyd. I suspect that my desire to include one or more sidekick NPCs to liven up things in a game can be traced back to this.
-
rule systems - there always appears to be some kind of internal logic behind the game mechanics; of course the challenge is in figuring out the rules. Even then, I would still occasionally fall into a trap. I distinctly recall getting quite upset with the maze in Sorcerer: I thought I had it all figured out, had prepared my spells, and made it through the maze and back, only to realize at that point that everything I had dropped at the maze entrance was now inaccessible, forcing me to attempt it all over again. I should have known.
Q: In addition to Steve Meretzky, you cite Andrew Plotkin and Emily Short as authors whose work you admire. Which games best demonstrate the features that you admire about them?
OB: I admire Andrew Plotkin for his ability to take a single idea or mechanic and build an entire game around it. As for which games best demonstrate this, I admit Iâm a bit biased: Hunter, in Darkness was the first game I encountered when looking for Wumpus-like games. Spider and Web also undoubtedly falls into this category; its mechanic was quite a surprise to me when I first came across it. I also like his more straightforward, puzzle-like IF, such as the Advent series.
I also liked his tutorial game The Dreamhold and am looking forward to have a go at his Hadean Lands.
I admire Emily Short for her numerous blog posts on topics such as modeling conversation flow. Until now, Iâve relied only on the âtalk to NPCâ mechanic to sidestep conversation handling, but Iâd like to move beyond such a simplified approach. Of the games Iâve played, Galatea stands out to me as a prime example of what one can achieve when going beyond simple conversation mechanics. I also quite liked Alabaster, but not sure I can include it here, since there are multiple authors involved.
I also liked her tutorial game Bronze. I wish my command of English were sufficient to tackle Counterfeit Monkey on my own, but I found myself getting stuck often and, in the end, had to rely on a walkthrough.
Q: Since the end of the commercial era, which innovations in interactive fiction most amazed you the first time that you encountered them?
OB: It is hard to isolate events related to interactive fiction from events happening more generally. When I first created software on a minicomputer, computers were rare outside corporate environments, and anyone using one was probably considered a nerd. Text-based interfaces were the only means for input, and parser-based interactive fiction was a natural match for this.
Then graphics came along, and we could have parser-based games with graphics. I was quite impressed by The Hobbit, which featured color graphics and a sophisticated parser to boot. IMHO, its only downside was that NPCs ran on their own schedules and sometimes killed off important characters elsewhere.
I remember the Spellcasting series as a hybrid, where one could either type commands or click them together from lists of verbs and nouns. (To be honest, I preferred the parser interface; it was much faster for me to type commands than to scroll through those lists and click them together.)
And then we had companies like LucasArts, where the parser interface was dropped altogether in favor of a point-and-click interface with a minimal verb set. IMHO the âguess the verbâ challenge now became a âfind the hotspotâ challenge.
All of this feels evolutionary rather than revolutionary. Even with the appearance of tools like Inform and TADS, one still needed some programming skill to create interactive fiction. I guess all of this changed with tools like Twine; suddenly, anyone could create interactive fiction, without even needing to install anything on their computer or tablet.
Twine allowed me to port my parser game One King to Loot them All into a choice-based game that could be readily played on a smartphone; without Twine, creating my Moon Logic game (which is my first attempt at creating a parser-like world model in JavaScript) would have been impossible within the limited time available to me.
P.S. That minicomputer was the DEC PDP-8, and I could program it in BASIC. I remember running out of the museum where it was exhibited, excitedly heading to the nearest phone booth to look up DEC and give them a call to tell them how great their machine was. Unfortunately, it was the weekend, and I reached an answering machine. I left my contact details and forgot all about it until a few days later, when a small package arrived in the mail containing the OS/8 handbook.
My first computer manual! Itâs now literally a museum piece; I once spotted a copy in the British Science Museum.
Q: Have you been interested in interactive fiction continuously since your first introduction, or has your interest wandered and returned over time? What other interests do you have that you would like to share?
OB: Although I never completely lost interest in IF, at times other genres attracted my attention; notably fantasy RPGs (e.g. The Elder Scrolls series by Bethesda) and science-fiction flight simulators (e.g. the Wing Commander series by Origin/EA).
As for other interest I have, I will try to be brief:
- My family
- Reading
- Role-playing sessions with my friends (we currently use D&D 5e but have also tried homegrown systems)
- Nearly all puzzle categories published by Nikoli, of which Slitherlink is my favorite
- Japanese chess (shogi) and Chinese chess (xiangqi)
- Chess engines (I have created a shogi tsume engine in Inform 7 for another WIP)
- Computer languages in general (I have used quite a few over the years)
- Cryptography and mathematics (especially number theory)
- Computer graphics algorithms (I have created a few graphics editors)
Q: In your IF career to date, you seem to be making a sport out of trying out different development platforms (Inform 7, Dendry, Twine). What has your experience in working with each one been like?
OB: I began experimenting with Inform 7 in the summer of 2022 and joined this forum shortly afterward. I was drawn to the expressiveness of the language, but I also found its fundamentals difficult to grasp. I often returned to the documentation, searching for sample code that would more or less demonstrate the mechanics I was looking for. I found the handling of so-called âedge casesâ frustrating, and eventually decided not to worry about them, since I was spending more time on them than I care to admit.
I now have a few Inform 7 repositories with WIPs in various states of completion. I hope to get them into good shape for public release in the near future; time will tell. As a programmer, I might have found it easier to start with Inform 6, but thatâs my eagle-eyed hindsight speaking.
While beta-testing my Inform 7 game One King to Loot Them All at ClubFloyd, Pinkunz said âYou know, with the limited verb set, this would translate to choice fairly well.â That idea stuck in my mind and wouldnât let go. So I started looking for ways to convert my parser game into a choice-based one. I settled on Twine, in particular the SugarCube story format. I converted all rooms and actions into widgets, which allowed me to wire appropriate phrases in my room descriptions to the corresponding actions.
Two things did not quite work out for me. First, I had limited experience customizing the Twine UI, and I chose to portray the UNDO command as a separate button on the side panel. It would have been better to replace the native UI element used for navigation instead. Second, some reviewers expressed confusion about the links embedded within the room descriptions. This is entirely my fault; I originally envisioned links in three different colours: yellow for moving to another room (think âyellow brick roadâ), blue for examining something (think âintelligenceâ), and red for everything else (think âactionâ). Unfortunately, I could not find a suitable colour scheme that would work across all browser emulations.
By the time I created Moon Logic, I felt more confident in handling the UI, and I essentially created a custom StoryInterface and handled nearly everything myself.
Iâm afraid I do not recall the exact trigger that caused me to have a look at Dendry. I do remember going through its tutorial and talking to Autumn Chen about some features that were not quite clear from the examples shown, as well as some phrases I had spotted in the implementation of Emily Shortâs Bee.
Although its handling of variables felt a bit limited, I quite liked the way it integrated with JavaScript; it allowed me to bundle JavaScript with the scenes, in contrast to Twine, where all JavaScript code lives in a separate passage.
I created Poetic Justice for SeedComp; I put all scenes in one large file because I found it easier to locate and track things that way. When I got around to creating Losing Track for Neo-Twiny Jam, I had learned my lesson and gave each scene its own file. And then there was the Mini-Cluedo challenge. I could not resist the temptation and created a Dendry version of it. I hope more authors consider Dendry as a potential tool of choice; it is relatively easy to pick up, in my opinion.
I should mention Borogove here. Without it, I would be unable to create and test interactive fiction written in Inform 7 or Dendry (Twine has its own web based editor). The only challenge I faced when using Borogove is its inability to produce final releases. In the end, I had to resort to running scripts in a containerized environment to build my releases.
Q: One of your games, One King to Loot Them All, was originally written in Inform 7 but later re-released in Twine. What strengths and weaknesses did each platform reveal during this exercise?
OB: Inform 7 is very good at simulating environments and tracking the state of things; I was able to create the game world and its contents with little difficulty. However, I wanted to do more than create a simple âmedium dry goodsâ game, so I had to go off the beaten track to implement my own game mechanics. Fortunately, Inform 7 allowed me to do so, with a bit of some Inform 6 code to get everything working.
In the end, I disabled nearly all standard commands and implemented my own set of verbs using a table-driven state machine, which was perfect for the scenario I had in mind. This approach allowed me to implement my own undo, restart, and story mode. Customizing the messages I used from the standard library was a lot of work, but well worth it.
Challenges did arise in ways I had not originally anticipated. For example, when undoing a TAKE action (known as the SEIZE action in my One King game), one cannot simply drop the item just taken, because the order in which things are printed in the room description mirrors the order in which they appear in internal data structures. As a result, I had to go back and enforce a fixed ordering on things so that the room would look the same after my simulated UNDO action was executed.
Playtesting my Inform 7 game on a mobile device turned out to be unexpectedly challenging. Perhaps I was using the wrong tools, but keyboard handling on a device with a relatively small screen is less than ideal, to put it mildly. In the end, I did all my playtesting on my PC.
Recreating my One King experience in a choice-based format was an interesting exercise. I was able to port nearly all objects and actions into Twine. I defined custom macros (called widgets in Twine) for all rooms and for all actions allowed within each room, including undoing them. I implemented the UNDO mechanic with a stack on which I pushed executed actions so they could be popped off the stack later when executing the UNDO action.
I did have to tweak things a bit, since Twine does not have a world model like Inform 7 does. I ended up using simple state variables for all things in the game. Since our Barbarian never dropped things, tracking state was easy. For example, the sword could be -1:gone, 0:on the throne, 1:wielded, 2:broken(hilt).
Twine does need some help to make the game look good. With Inform 7, I relied on the interpreter used by the player to handle any customizations. With Twine, I used a custom font and added options for light/dark mode and font size. I also experimented with using background images to make things look even better, but I realized that I would need to ask my artist for a lot more artwork. Since the game was not entering the main competition at Spring Thing, I decided to drop that idea.
At least now I had a One King version I could actually play on my mobile and show off to my friends! I definitely wanted to do more with Twine, but that had to wait for the right opportunityâŚ
Q: One King to Loot Them All includes a âstory mode,â an innovation (to my knowledge) first suggested (and developed for TADS) by John Ziegler and later developed into a working extension for Inform 7 by Wade Clarke. It also seems that both you and Drew Cook developed your own implementations of the idea. What value do you see in the idea of a story mode for parser games? What kind of feedback have you gotten from players about it?
OB: Mileage may vary depending on the complexity of the game, but I have seen several uses for having a story mode in a parser game.
Benefit for the author
The author can quickly navigate through parts of the game to reach an appropriate testing spot. I have used story mode to verify the flow of the story and to check whether any changes made had the desired effect. I should add that I also included a few debugging commands in my game to facilitate this:
>testing on
Testing mode has been enabled. Use TESTING OFF to disable it. You now have the following commands available:
ALL: Try all actions which do not progress the story.
TABLE: Show the contents of the current journey table.
The game now shows the list of all allowed actions at each turn.
The prompt now reflects the game state (where we are in the storyline).
Allowed actions: {looting your bed}.
Choices.1 >table
Table of Choices
Row | Action | Type | Flag | Object
1 | looting your bed | 1 | 0 | your loincloth
2 | regarding the mirror | -1 | 0 | --
3 | marching west | 1 | 0 | Royal Bedroom
4 | looting the table | 1 | 0 | bottle of wine
5 | marching west | 1 | 0 | Dining Room
6 | toggling the magical portal | 0 | 0 | --
7 | transferring the demon to Throne Room | 0 | 0 | Black Hole
Allowed actions: {looting your bed}.
Choices.1 >
[ loot my bed ]
You approach your bed and reach down with strong, calloused hands, fingers deftly sifting through the fabric. You pull your loincloth free from its concealed spot, and you deftly don it.
Allowed actions: {regarding the mirror, marching west}.
Choices.2
>
Benefit for the proofreader
The proofreader benefits because they can focus on the game text without having to play the game over and over again.
Benefit for the player who is stuck in the game
Players who get stuck also benefit. I have seen several IFComp transcripts in which players temporarily enabled story mode when they got stuck, allowing them to get through the rough spots of the game. I suspect they might have given up otherwise.
Benefit for the player new to parser games
I know of at least two players who normally only play choice-based games and probably would not have given my game a try otherwise. That is a definite plus in my book.
Most player feedback has been generally positive; the one thing I needed to fix was including the actual command being executed when stepping through the game using story mode.
I should add that my implementation of story mode is tailored to the mechanics of my game. There is no âleaving story modeâ when the player tries out commands, and no âreturning to story modeâ when they press ENTER; the game does not jerk the player back to the âgolden pathâ at the point where they started experimenting. Instead, it follows the player along and continues to provide the next logical command. In my next Inform 7 game, I will implement story mode as well; the game will be less linear, but Iâm confident I can manage its complexity.
Q: Youâve just released a new Inform 7 version of One King to Loot Them All which includes a âsecretâ commentary track featuring Roger and Wilco, the observer characters from Moon Logic. What motivated you to graft this layer onto your original game?
OB: To set things straight: I did not âgraft this layer onto my original game.â It was already present in the code but disabled, as I ran out of time to include the actual commentary before the competition deadline.
I sent out the draft version around the end of 2023 / beginning of 2024, but did not get around to processing the feedback and releasing the updated V2 version until now.
I got the idea of a commentary track from looking at ClubFloyd transcripts; I thought it would be the perfect way to include authorâs notes and the like.
Q: Moon Logic has one of the most technically impressive interfaces that Iâve ever seen in a Twine game. Which parts were the most difficult to implement?
OB: I did a post mortem of my Moon Logic game at Moon Logic - a post-mortem which provides some implementation details.
Now, when you ask me which parts were the most difficult, the UI comes first. Although, to be honest, I was reusing the UI design from another game I was working on, so Iâm not sure I should count that. Still, I remember having discussions on the Twine Games and Neo-Interactives Discord servers about UI design in Twine, since I had done very little for that on my One King game. Here, however, I was trying to go all out and deliver the best UI experience I could manage within the time I had.
I received a lot of help on most topics, so in the end I was able to manage, except for one challenge: support for screen readers. I asked for testing help on this forum and in other places, but only received assistance from Josh Grams as far as I remember, for which I am grateful. Iâm not sure I want to go through all that again the next time I decide to do something complex with the UI, I would rather focus on providing the best overall player experience.
Creating the âparser engineâ in JavaScript was easier for me. I had already settled on the Inform 7 model of having separate Check, Carry Out, and Report stages, so I could easily handle populating the command buttons (Check stage), creating a walkthrough (Check and Carry Out stages), and executing the playerâs choice (Carry Out and Report stages).
Maybe I spent too much time on this, but I wanted to make sure the walkthrough would always provide a solution and that the player would never get stuck. To achieve this, I built some scaffolding around my JavaScript parser engine to perform automated testing and verify that no path would ever lead to a dead end. I was especially worried about getting through the maze, of all things.
Q: In an article titled âZork and the Future of Computerized Fantasy Simulationsâ (Byte, Dec 1980), Dave Lebling says: âIn early versions of Zork, the trollâs axe disappeared when he was killed. We finally decided to let the player recover it, as advances in Zork weapons technology removed the reason for destroying it. Unfortunately, we didnât think it through. One of our best play testers, on hearing that âyou can finally get the axe,â immediately said, âGreat, Iâm going to go up to the forest and chop down some trees.ââ When I read that, I immediately thought of Moon Logic, in which the PC does chop down trees with the trollâs axe. Was that a deliberate reference, or just something that lingered in your subconscious?
OB: I remember that passage. And I read it over 45 years ago. Oh my gosh, how time flies⌠Yes, the tree-chopping axe was definitely a reference to this. Also, when I got my hands on Zork I a while later, I tried to use that same axe to chop down the boarded front door. That didnât work either, of course⌠See also my invisiclues page where I shed some light on my design decisions.
[editorâs note: If the link to the Invisiclues page does not work for you, you may be able to obtain the downloadable version from IF Archive.]
Q: Youâve had some time to study ZIL in advance of this match. What is your impression so far?
OB: Iâve read some ZIL code in the past, particularly while preparing my Moon Logic game for IFComp 2025, when I read through the code of Zork I to get ideas for spoofing its mechanics. I am familiar with Lisp, which also uses list structures to organize code. That said, I have to admit that ZILâs handling of atoms differs from Lisp and took some getting used to.
Some things stand out to me when comparing mechanics with Inform 7:
-
In ZIL, I can specify nouns (called synonyms) and adjectives to refer to objects; in Inform 7, there is no such explicit distinction. On the other hand, Inform 7 provides an extensive way of specifying grammar using Understand statements.
-
In ZIL, I get a parser error (I donât know the word â...â) when I use a word that is not in the vocabulary. In Inform 7, I get a message (You canât see any such thing.) that does not reveal this fact.
-
In ZIL, I can create action routines and tie them to objects; it took me some experimentation and reading through sample code and manuals to figure out how these routines are invoked and in which order. In Inform 7 we have rule-based action handling, which is a more indirect approach.
Q: What do you see as the highest skills in the craft of IF?
OB: I would includeâŚ
Communicating effectively: Using clear, concise language that guides the player and makes interactions feel intuitive. I tend to err on the side of verbosity, which is something I still need to get a better handle on.
Connecting with your audience: Creating a strong sense of engagement and immersion. In my One King game, I aimed for a âfull vibeâ experience, focusing on atmosphere and tone. However, this was hindered by the limited parser experience, which led to frustration for some players and broke their immersion.
And then thereâs the tightrope-walking feeling I get when reading reviews:
One King to Loot them All:
While Iâm picking nits, I also felt like the writing could have been a little zestier.
Moon Logic:
Just please, no need for zestiness next time.