It would make more sense if it were not player-facing, but the “alters the world” element of the ingredient has sent my mind spiraling off into a dizzying fever state! Insane conjectures loom wherever I turn! The lack of solid and liquid sustenance may also be to blame…
Are you sure that the Horseman of Famine must be famished himself? You could also eat and drink a lot so that there’s less left for others.
And have I just hallucinated something else, or has the Iron ChIF released another game? In the middle of the competition! The mind truly does reel, and the fever spikes!
I’m fairly sure that must be a hallucination. Nobody would walk out of Keyboard Stadium to prepare another meal somewhere else, would they?!
A very brief excerpt from our Challenger’s code:
Horatio can be remembered. Horatio is not remembered.
In this small piece of text, there is a poignancy. The power of Inform 7 as plain language is manifest. Even mathematics, pure numbers, can stir the soul of a fluent reader, and any code, likewise, might do the same. But there is something to be said about code that strikes directly into the heart of a person’s everyday mode of thinking.
The Challenger’s code is not striving effortfully toward poetry. It is totally functional. Its functionality, in fact, is almost bare-bones. No flourishes. No extraneous words. A very neat and tidy arrangement of Inform 7, written to achieve a specific technical effect.
But it is something more, too, isn’t it?
What a rollercoaster to wake up to! My feelings are all over the place. The Iron ChIF and the challenger are both certainly bringing the heat, and in Lucian’s case the onions! (That’s definitely why I’m tearing up a bit, not poor Horatio. Definitely.)
Ooh my head How much absinthe did I have last night? I thought my task was to bring Pestilence on others, not myself. What did I..
*scrolls upward, checks late night posts*
Oh my. Not absinthe at all, just our Competitors driving me to COMPLETE DISTRACTION.
I’m not sure where our Competitors’ head spaces are at, but at some point the development cycle will tip from “There’s plenty of time if I just use it well…” to “OMG why won’t my fingers go any faster???” My sense is we are only a few hours from this, if not already there.
Right?? The Iron ChIF has engaged a meta-playfulness I was not expecting. Not only has he raised the prospect of programmer players and dynamic Inform capabilities resonating off the Secret Ingredient, he has turned the ENTIRE CONDUCT OF THIS COMPETITION into a kind of Inform-based performance art, with the Competition’s conceits being played back on the competition itself! At some point are WE all just NPC’s in his grand game??
Buut, now that I have put that out there, it seems to me our Iron ChIF’s antics have created a minefield around him. Suppose it is not that, or not COMPLETELY that. Suppose the more prosaic interpretation proves correct: he is being puckish with his development, but the final product will not bear those fingerprints. His playfulness was all process. Has he set expectations he has no intention of fulfilling (especially in this whirlwind of an event)?
Inevitably, we will be judging his final dish, NOT his performance in the kitchen! It is tantalizing to consider though, that like Stephen Colbert’s legendary roasting of George W Bush at the 2006 Correspondent’s Dinner, our Iron ChIF is not playing to the room at all. He is playing to the remote audience.
Indeed, I have increasingly wondered the same thing! This competition truly is a clash of dueling Philosophies.
On one hand, the Challenger opens more and more of his code and his mind and his heart, revealing everything to inspection. Literally every word that he has written, and even the stray thoughts in his Youtube diary! From his quarter, we have an overflowing abundance of earnestness and goodwill, not to mention the tasty morsels (from which I must hold myself back, though I can’t help catching the aromas that emanate from the kitchen) of character and setting and gameplay that we have already been served as appetizers. We stand, with the Challenger’s dish, upon a solid foundation, constructed by the Challenger himself!
On the other hand, the Iron ChIF has withdrawn further and further into a mind-melting maze of meta absurdity. “What is real? What is false?” These questions echo around this judge’s head, with no firm answer at all! In the absence of any grounding matter, I begin to construct my own airy castles – to imagine impossible possibilities – and to elevate the Iron ChIF’s potential dish into a sort of fairy realm, built upon a bubble; a bubble which the real dish might abruptly pop. But if the bubble doesn’t pop, and if the final dish actually floats into the sky…
So!
Ideally, by the end of today, it will be possible to play straight through from the beginning to the end, so I can send it off for one final round of testing, and then spend tomorrow desperately fixing bugs.
I have so much of the game left, guys. I am going to discover in real time where the intersection of passion and pragmatism meet, and I am dreading it.
So, of course, I spent all of this morning fixing bugs from @Ally. Because regardless of how far I get, I don’t want my tonight-testers to spend all their energy finding the same things she already found, like the fact that you couldn’t get the enemies-to-lovers line at all, because the raven guard object was not actually in the room with you when you’re being chased.
And now I’m writing this post, because, again, stalling.
Silliness.
You all deserve something awesome, and by God I’m going to try. Here we go.
Somehow, no matter how much time you have, this is always how the last few days go! (At least for me.)
I’ve taken another look at the challenger’s Github today, and I had somehow missed the running list of open tabs, which are a delight. In addition to the Inform 7 advice one might expect we have research on different kinds of birds (including falcons, woodpeckers, and vultures), Frederick II’s wife, lots of information about falconry, and more! Some of these provide tantalizing hints about puzzles or plot points (“berry with a lot of caffeine”) and some of them are (despite Lucian’s transparency) absolutely mystifying (notalwaysright.com, a repository of stories about the frustrations of customer-facing jobs). Where could this be leading us? I suppose I could look at the work-in-progress itself, but (as the Horseman of Famine would agree with) I think speculation is going to be more tantalizing.
What I can draw from this, however, is that Lucian’s research is extensive and thorough. And I have to say, I LOVE research. I love doing it, I love reading it, and I love games made by other people who love research. And hey, I might be biased here, but I think that it’s an invaluable tool when creating a game in a richly detailed setting, whether historical or constructed. You want to give the readers the sense that there is a whole world out there, and that this game is but a slice of it! And from what I’m seeing in our challenger’s open tabs I am certainly getting hungry for a slice. (For anyone else who really likes this kind of thing, I would recommend Amanda Walker’s The Spectators if you haven’t played it already.)
The trick is, of course, drawing the line on when to stop researching and start writing. And to kill your darlings and leave out that one really cool fact you learned that doesn’t quite fit. And to work in everything naturally and not having it feel info-dumpy or artificial! And… well, you get the idea.
What a rousing statement by our challenger! He’s truly drilled down straight to the heart of the Iron ChIF competition – I couldn’t describe the spirit of this event better if I tried. Go, Lucian, go!
From the earliest version I saw, Lucian’s story file has included:
Include Version 7.1.1 of Hybrid Choices by AW Freyr.
Include Basic Screen Effects by Emily Short.
As I’ve alluded to above, extensions are a means of bundling code and the include assertion has an effect similar to inserting that extension’s contents in its place. While they are a useful way to organize one’s own source, a lot of the motivation behind their design was to facilitate sharing, so you can use someone else’s code.
Extensions have been an Inform 7 feature from the start. One of the inclusions above, Basic Screen Effects adds several important UI features; its use is demonstrated by several examples in the docs. For years, it and a bunch of Emily Short’s extensions (e.g., Locksmith, Basic Help Menu, and Punctuation Removal) have been bundled with Inform, along with Rideable Vehicles and others by Graham Nelson, and Eric Eve’s Epistemology.
A huge number of other extensions have been published over the years, many of which are amazing. It’s also the case that many have depended on officially unsupported low-level details in the compiler and/or the Inform 6 layer. The documentation explicitly warns against relying on these because they were subject to change without warning.
Turns out it really meant it. Many extensions that had been popular in one release didn’t work in the next. Some were updated, but there was no reliable way to look up whether a given version really worked in the current Inform release. Your best shot of finding out had been to search here hoping for recent reports. A couple of times, I’ve heard people dismiss even trying a third-party extension because of the likelihood it wouldn’t work.
And that’s a shame because for some years now, we have had extension collections organized by corresponding Inform release. Here are lists with capsule descriptions for easy browsing:
AW Freyr’s Hybrid Choices is a popular choice for implementing choice-based navigation in Inform. Thus far, our challenger doesn’t seem to be using it but it remains an intriguing sign of intent or aspiration.
For much more, see Where to find Inform 7 Extensions.
HOW TIMELY
When Horatio's story ends:
say "[bstars]";
wait for any key;
clear the screen;
switch to cyoa at H1.
I began to write a technical analysis of this, but then I started an analysis of my analysis, and so on. I’ll get back to you all as soon as I’m done looping.
Chekhov’s gun fired at the start of Act III. Exciting!
As the sun sets on the penultimate day in Keyboard Stadium, our Challenger has cast a light on the new, interesting element in this season’s competition: the use of beta testers (sous chefs?). I have kept a tight leash on myself (after some initial gluttony), resisting the urge to peek at the Challenger’s very Open Book development. That broke tonight, as I found myself fascinated with the obvious-in-retrospect genius of his approach: a playable iteration, tested every night BY DIFFERENT TESTERS. Skimming their feedback in turn got me thinking about the value of beta testers in general.
We can all agree how miraculous they are outside Keyboard Stadium - unpaid laborers subjected to massive gameplay blindspots and swaths of ill-conceived text, nevermind laughably fragile code, whose entire motivation seems to be HELPING THE AUTHOR SUCCEED. With all that is terrible about modern humanity, the fact that these unicorns exist is a needed reminder that no, we can actually be pretty awesome sometimes.
I just deleted five paragraphs contrasting engineering product testing to volunteer IF testing because it was both way too dry, and also led to the pretty obvious conclusion that those are not really the same thing in any meaningful way except the verb they use. Let’s just assume I walked us all the way there, and now here we are!
In addition to benefiting from selfless volunteers in my own work, I have tried to act as beta tester to a few projects. When I contrast what I received to what I provided, I’m not sure I’m doing it right? No that’s not accurate. What I mean is, I don’t think there IS a RIGHT way to Beta test. Maybe it’s more productive to talk about what I try to provide, when asked to test. Let’s try a list!
- First and foremost act as simulated player. Not sure why I said ‘simulated.’ You’re playing it, you’re a player. What I mean is approach the game as a player as opposed to a corporate tester. At least initially, you’re not trying to BREAK it, you’re trying to show how the author’s intent lands to a real human. (The ‘trying to break it’ approach is actually REALLY VALUABLE to an author, but probably not until a later phase. After their vision has been engaged on its own terms.)
- Not every tester is comfortable with transcripts, but for me, it is the most concise, contextual way to communicate my experience. As an author it is also the best way to quickly recreate bugs. Transcripts of course being available to parsers but perhaps not as readily for other authoring tools.
- As a work of art, how the plot/characters/prose/conceits landed is as much under scrutiny as the mechanical functioning of the program. It seems worth commenting on those inline, or as a separate report to the author.
- Along the way, spelling/grammar/phrasing glitches are very much part of the feedback.
That’s really the breadth of what I have attempted. Which leads me to questions for my fellow Horsemen and Technical Expert:
Are there other dimensions of beta testing you have provided/been provided that I should consider adding to my repertoir?
Given the constraints of Keyboard Stadium, are there some feedback that seem more or less important?
Has anyone sussed out how the Iron ChIF is employing his sous chefs? If at all?
People were talking a lot about different writing processes earlier. I couldn’t really weigh in at the time, because I was busy making a game. Well, I have some time now.
Step 0
Last week, I realized I didn’t have a strong idea of what size of game I could make in five days. So I wanted to do an experiment.
I have learned something about myself that I find very important even though it sounds obvious and stupid: It is easy to write when I know what I’m going to write; when I don’t know what I’m going to write, I’m not very productive at all. Maybe it’s a matter of having high degrees of inertia for both “design mode” and “implementation mode.” I can work up a lot of momentum in either gear, but switching between them is rough.
Therefore it would be smart of me to separate my five days of development time into design and implementation phases. I figured, if I spend one day deciding exactly what my game is and choosing all the little details I can stand to choose, then I can spend four days in a state of flow, typing out all those details I chose without pausing to come up with any new ideas.
For purposes of my experiment, I thought I could save myself the trouble of spending one day designing a game if I resolved to implement an existing game instead. I asked my Patreon members what graphical game I should adapt to the text adventure medium. @tvil said “Link’s Awakening,” which is a perfect choice because I have that game more or less memorized. It would be like a Pierre Menard thing!
I guess the initial idea was to find out how much of Link’s Awakening I could write in four days, but pretty soon the goal changed to writing “the first part of the game and the first dungeon” in “a few days.” But I still got useful data: Over this many days, with this many distractions, I wrote this many words, amounting to this many rooms containing this many things—and a puzzly little combat system that I think was pretty neat.
My unfinished Inform 7 port of The Legend of Zelda: Link’s Awakening is a Patreon exclusive for the time being. But anyway that was the prep work.
Step 1
It was Sunday morning in my time zone when the ingredient was finalized. I hope it’s okay if I don’t reveal the whole string of ideas that came out of the prompt; maybe after you’ve had a chance to play the game I can say “well that made me think of THIS which made me think of THIS which made me think of…” I wrote down a bunch of notes.
A while back I made this video for the EnigMarch people, in which I talk about certain elements of the creative process that might be relevant to this step.
Step 2
The writing period started early Sunday night for me, but I was still in pre-prewriting mode at that point. On Monday, I cleared off the dining table, cut myself a huge piece of butcher paper, and started drawing up my Big Board. It looked like this:
With a Big Board, you can see your whole game in a glance. You can write notes as big or as small as you need. You can use markers and colored pencils to indicate regions or phases or whatever. You can stick little tabbies on there to represent short-term tasks. Critically, when you’re done drawing it out on the dining table, you can tape it up on the wall over your desk, and now everything the game needs to be is right there in front of you as you work. Neither a paper notebook, nor a word processor file, nor any fancy computer application can hold a candle to the Big Board for game design work (primarily because no notebook or computer screen is big enough to show me the level of detail I crave).
And yet the Big Board can’t be the first step in the design process. You can’t start drawing the Big Board until you know what your project is, the shape of the information you need to keep track of. For me, this usually involves deciding what all the locations and their relative positions are; that part of the process usually goes in the notebook. In this case, I knew that I had unaltered and altered version of locations to worry about. So I drew out rooms that were four by eight inches, and divided each of them into unaltered and altered squares.
Then I started drilling down and deciding what objects should be in each location, where the puzzles need to be for the gating to work, what the puzzles should be, blah blah blah. I had to change some room names and connections.
When I’m deciding what’s in a location, I think about its functions. A location can have puzzle functions and pacing functions and tonal functions and so on. “This room is supposed to feel like your home base. It’s functional, but it’s also a safe haven.” “This room represents something perpendicular to the player’s experience and the main story.” “This room is just there to facilitate a transition between the tones of those other two rooms.” I guess I never write out that sort of sentence. But I have (or I need to reach) an intuitive understanding of a location’s purpose, and then I can choose details that serve that purpose. Maybe the “home base” location needs a map to help plan your adventure, a trophy case to track your progress, and a sleeping bag that convey how comfortable the character feels. So I write those three things on that square on the Big Board.
By the end of the day Monday, each box on the Big Board had a satisfactory number of details written in it. I think the only code I wrote that day had to do with room connections, and I told you about that at the time.
Step 3
On Tuesday, I taped the Big Board up over my desk. For each room, I now understood its function (if only as a brain-notion) and its contents (as written notes). I wrote some code to generate the code-outline of each room for me:
When play begins:
let alpha be "ABCDEFGHIJKLMNOPQRSTUVWYZ";
let current-room be 1;
repeat with lat running from 1 to 5:
repeat with long running from 1 to 5:
say "Part [current-room] - [character number current-room in alpha][paragraph break]Room-[character number current-room in alpha] is a room. Latitude of Room-[character number current-room in alpha] is [lat]. Longitude of Room-[character number current-room in alpha] is [long].[paragraph break]Printed name of Room-[character number current-room in alpha] is 'ROOM[character number current-room in alpha][quotation mark].[paragraph break]Description of Room-[character number current-room in alpha] is 'DESCRIPTION.'[paragraph break]Real description of Room-[character number current-room in alpha] is 'REAL DESCRIPTION.'[paragraph break][paragraph break]";
increment current-room;
Next I needed to “decorate” the rooms. A room description needs to mention the items the room contains (except the items that are supposed to be harder to find) in a way that executes the purposes of the location. Good sentence.
Once the room description is written, I can write descriptions of scenery items that flow from the broader description in a sensible way. On a broader scale, I try to decorate rooms in roughly the order that the player will/should/might visit them, in the hopes that the player and I will be kind of on the same page.
If an object description invites the player to smell or rotate or switch on the object for incidental purposes, I’ll write that response as part of the same “conversational flow,” but if there’s a puzzle or a complex system or a higher-order thing going on, I’ll leave a comment for myself: [TO BE DONE: COMPLEX SYSTEM.] That way I don’t lose a bunch of momentum by changing gears (unless the complex system is exciting enough that I want to work on it right away).
A room with these basic features, where you can walk around and do a few interactions without accomplishing anything, is “decorated.” I think all my rooms were decorated around the middle of the day yesterday.
Step 4
Then I started implementing all those puzzles and complex systems and higher-order things. I leave this stuff for later on because it seems more difficult than writing descriptions of things, but often it turns out to be pretty easy—because all the simple parts are already in place! I just had to add more complexity to them! Of course.
Allow me to seize on the Iron ChIF’s photograph, and spiral down a perhaps-related and perhaps-not-related rabbit hole: The Eleventh Hour! It is pictured right there, above the Big Board, open to a page near the beginning, where the characters gather to apprehend – but not yet eat! – a feast.
For anyone unfamiliar with The Eleventh Hour, let me give you a little summary. It is a children’s picture book published in 1989 by Graeme Base, an Australian author and illustrator. It rhymes. It is a mystery. It features a masquerade. It is about an elephant who, upon turning eleven, invites his animal friends to a birthday feast accompanied by eleven celebratory games. The whole book revolves monomaniacally around the number “eleven.” And finally, at the eleventh hour before the birthday elephant gets to eat his birthday feast, he discovers that it has already been eaten. Not just one morsel, but the entire spread! Countless epicurean courses. Hundreds and hundreds of plates. An entire banquet hall, picked clean when nobody was looking. Who could have possibly done this? There are only eleven party guests at the house! One must be guilty – at least one – but which?
Faced with this dilemma, it is the reader’s goal to then comb back through the book and search for clues that would incriminate the guilty party. Clues exist within both the images and the text. Some of these clues are devious, and require real code-breaking skills to uncover. The more you find, the more you realize how many clues might exist. There are layers and layers to peel away. Yawning depths! (For a child, anyway. Although the abyss might not yawn as profoundly for an adult, the array of clues remains impressive at any age.)
Finally, armed with enough knowledge, the reader must crack a code at the back of the book to decipher a hidden message, which reveals the identity of the guilty party. Once solved, you can break a seal even further at the back of the book, revealing the answers to all the mysteries and exposing all the hidden puzzles and clues.
Although this is a traditionally published book, “static fiction,” I would argue that it does, in fact, belong to the IF lineage. And it was certainly no small influence on me! Looking backward from this later point in my life to my encounter with The Eleventh Hour in childhood, I can trace many of my own interests directly to it: feasts, masquerades, mysteries, and interactive text.
And now the Iron ChIF has this book spread open, center-stage, above his Big Board as he develops his dish. What could its presence mean?
Is it just a paper-weight to hold the Big Board in place? Or will the Iron ChIF’s dish somehow reference The Eleventh Hour, either plot-wise or structurally?
It features no scrolls, that I can recall, that alter the world. It is very grounded, in fact. No magic in the story (unless you count talking animals as magic). But there is an Egyptian theme: one of the characters dresses as Cleopatra for the masquerade. This character is a cat. And one of the book’s most pivotal pages, when it comes to solving the mystery, features an Egyptian temple, where the cat is playing hide-and-seek (one of the eleven party games) with a few other guests. This temple is filled with visual clues, including a hieroglyphic code. Perhaps that element will influence the Iron ChIF’s “Van der Nagel papyrus.” Perhaps not.
Perhaps the Iron ChIF’s dish will rhyme, or feature talking animals, or party games, or an opulent mansion as the setting. Perhaps it will revolve around a number like “eleven,” or hinge around some other mathematical conceit.
Or perhaps it is simply the feast that fits here – an image from the book to compliment Keyboard Stadium’s culinary theme.
I am one of those people not familiar with this book – I don’t think it’s widely known in America, or at least it wasn’t when I was a kid, so thank you very much for the description! It sounds delightful and I would have absolutely eaten it up and asked for seconds had I discovered it as a child. Wait… Eaten it up… Oh god, am I the culprit?!?!
Putting that aside, I’m delighted that our Iron ChIF has given us a look into his cooking process! I think Step 0 is in particular a stroke of genius – the obvious problem with scoping a game for this competition is that apart from our previous contestants nobody has ever done this before, so how do you plan for something so unknown? Afterward has solved this by simply saying: what if it wasn’t unknown? A true masterstroke, although it’s certainly a commitment! (And I confess myself curious about this adaptation of Link’s Awakening, but that dish will have to wait until later.)
I haven’t yet been able to watch the video linked for Step 1, so let’s move on to Step 2.
I have never been able to use a Big Board for game design (the Cats of War simply will not allow it!) but seeing it in action I immediately get the appeal. This is a great way to set up the skeleton of your game without getting too bogged down in currently-unnecessary details!
At every point in this process it’s clear our ChIF has an order of operations: big picture first, then large details, then small details. One flows nearly into another and creates a logical path forward. Should he run out of time, the game will still feel even as once the fundamentals are in place everything will be at the same level of polish. Nothing will feel out of place even if it’s not completed to the extent he would like.
(I do note that Afterward doesn’t mention where the complex system development he’s been doing fits in among all these steps so I am curious to see if he’ll elaborate on that part!)
Based on @CMG’s description of The Eleventh Hour I find myself hoping that this dish will be an adaptation or at least heavily inspired by it and isn’t merely set dressing – the best time to have read that book would have been at ten years old, but since I missed out on that I’d love to get the experience however and whenever I can!


