Koustrea postmortem retrospective wrap-up discussion

Since this is my first tangible involvement in the IF community as well as my first game, I’ll start with a little background about myself. Later, there will be spoilers about Koustrea.

First, Special Shout-outs

I’d like to thank a couple of judges who wrote me in the first few days of voting (and they were the only two to write me at all): Olly Kirk for pointing out that my game did not work in most universal parsers, and Nick Turner, for sending me my only transcript and pointing out a number of typos. That was a huge help. I’d also like to thank craiglocke/Mathbrush for finding a superbly terrible bug and for convincing me that he was actually enjoying my game, when no one else was saying so out loud. He also said my feedback on his game was the most valuable he received. That made me feel good too. Also also, big thanks to “dswxyz” for pointing out two other bugs yesterday.

One more Thanks: to all those who reviewed my game; the flaws in KC were made clear by general agreement.


I am a 39-year-old professional programmer with a history (and future) in games. I enjoyed Infocom games in their 1980s heyday and was dismayed when they ceased to be commercially viable. In the late 1990s, when the Internet sprung up, I was amazed to discover a small but thriving community that was making new text adventures. I wanted to make some too, but I never got further than reading the TADS manual. I kept playing the new games, though, and eventually began judging the IFComp, trying hard to play every game, on an annual basis.

It wasn’t until 2013 that I finally made a priority of finishing a game, and I began sketching ideas. However, right at the same time, my father was diagnosed with terminal cancer. I started work on KC that summer, but I was a wreck and I really struggled. My father’s funeral was the day of the IFComp deadline. I was actually trying to finish KC the night before, but I was insane. My game would have been a total disaster, had I submitted it. Last year, I wasn’t much better. I had planned to finish and submit the game, but I totally forgot that you had to declare an intention to enter the Comp at an earlier deadline, and I missed it. So that’s why 2015 was the year. I used the extra time to make necessary improvements, and every single word of text was rewritten when I found the approach I wanted.


My goal all along was simply to put another high-quality, puzzle-based text adventure on the IF shelf, as a way to give something back to the community that has given me and others so much joy, often with nothing in return. As you can tell, KC was really aimed at the oldschool crowd that enjoyed Infocom games and the games they inspired in later years. My game is an homage to those.

I have always been fascinated by what I see as an amazing parallel between these games and real life: you are born into a strange world with no goals, values, or motivations of any kind (once you are comfortably surviving), and it’s really up to you to decide what does have value and what your goals are. A great many parser games have this property because the story does not move forward unless you make an effort to move it forward by exploring your world and developing your own goals, and I think they work very well as experiences because you are always implicitly urged to go see what’s out there and do whatever can be done. KC was meant to highlight this parallel and another, related one: the player in a puzzle game is very much like a scientist in real life. When there’s a problem you can’t solve (e.g. the Golden Door), studying seemingly unrelated things becomes the only option and will always eventually shed light on the original problem. All that stuff was not meant to come through to the player; it was just the inspiration for this particular game. I think some people actually got it anyway, and those people had very nice things to say.

I’m in love with interesting places, above all else, in IF, and that’s another thing I tried to do here. I wanted to create an environment and backstory so deep that you couldn’t touch the bottom. I worked out a good deal of “canonical” history of Koustrea’s world that does not directly appear in the game. At the risk of boring everyone to tears, I will be discussing some of that below.

As an IFComp Entry

I chose the IF Comp both for sentimental reasons and because I knew my game would get attention that way. Due to a series of rookie mistakes on my part, KC turned out to be, well, not entirely appropriate for this contest. I didn’t know about Spring Thing at the time, but that alone would not have made a difference because I had my eyes on IFComp. KC was supposed to be a viable entry, originally. Of course, if I had known then what I know now, I would have saved KC for Spring Thing and worked on a different idea for IFComp. In retrospect, putting a game like KC into IFComp is absurd.

So what went wrong? All can be attributed to my inexperience:

First, I didn’t come close to realizing the scope of this game until I was totally finished and it was too late. I haven’t counted, but the game probably requires several hundred commands if you want everything clued properly.

Second, there’s way too much misleadingly robust implementation that is at best tangentially related to the plot or puzzles. Some of it is backstory, but a lot is just atmosphere.

Third, a major design decision was that you are not put on the Path right out of the gate. In fact, you’re nowhere near it. Ultimately, Koustrea should want to expand her horizons, by brute force if necessary (which it is), and that just gets you started. The motivation for that could come from doing general adventurey-type stuff: you always want to reach new areas and find uses for objects. Or, it could come from being dissatisfied with your existence and then being determined to want more, but that takes a while. Or, it could come from a desire to understand the nature of the strange place you find yourself in. These things really jive with the idea of KC, but they’re not good ideas at all in the IFComp.

Fourth and finally, in the IFComp, you might have time for one difficult puzzle. Not four or five, plus several easier ones. I’m a firm believer in the notion that walking through a game bears no resemblance to playing it. But, I underestimated people’s desire to actually finish a game they were judging. Originally, I actually wanted players to get stuck and wonder what else might be in store, and still enjoy their Two Hours. As a judge, I’ve had that experience with quite a few games that did well. Midway through the Comp, of course, I panicked and put up a crappy walkthrough, so that judges would at least have a choice. I’m not sure what its effect was, ultimately.

Other than being an IFComp entry, what went wrong?

-Well, in theory, I don’t mind having the player flail around so much in the beginning, because that’s kind of the point in KC. However, the large scope of the game made the writing and story feel pretty watered-down. The dialog was especially weak because much of it was thrown in at crunch time, just to make sure the NPCs could speak about any reasonable topic. All that garbage was, of course, very prominent in the game and probably prevented all reviewers from declaring that the game was well-written, which it was supposed to be. Another rookie mistake, but I hope to shore up the dialog and opening stages in a future release.

-I readily admit that messing around with differently colored crystals is about as cheesy as it gets. I didn’t like having to resort to that in order to connect the Golden Door to the beacon, but it actually made a reasonable amount of sense in this particular game, so I’ll have to live with it.

-I wanted the gravity of the game to come, in part, from its physical realism, but I didn’t have time to resolve all of the issues. For example, it’s stupid that you can’t take the chairs from the bar or from the library to stand on somewhere. And I wanted to have some plausible mechanism to provide the House with new materials (food, beer, paper, paint, etc.) and to keep it clean. Only the airfish, which keeps the air clean, survived from that notion.

-The game has two largely independent puzzle “tracks.” That is, just about anything you do will contribute to one of two things you must do to open the final location and win the game. It is interesting that the two culminate in opposite situations: in one, you are literally waiting; in the other, it’s life-or-death mayhem. However, I feel it’s a weakness that the exciting one, which makes for a better climax, is not necessarily saved for last. In fact, you’re probably more likely to solve that track first.

What is really going on in this game?

In at least two public reviews and one private correspondence, people took note of my casual reference to Koustrea’s “wingspan” and took it to mean that these people literally have a pair of wings sprouting from their backs. Actually, I was just referring to the distance from fingertip to fingertip of your outstretched arms (the point being to avoid references to measurement units we know from our world). This usage—I assure you—is perfectly standard where I come from; I never even thought about looking it up. When I did look it up, I was surprised to find no major dictionary supporting my usage. It must be either too new, too regional, or both. However I sort of expect all Americans to know it. Then again, I live in Raleigh, NC, which is arguably the college basketball capital of the entire world, and it could actually be mostly a basketball term. So, it’s my mistake, but that mistake really had some interesting effects. The interpretation that the situation in KC is somehow related to angels or any religious mythology of our real world is, however, entirely wrong.

Here again are some things that were not intended to come through to the player but are ideas on which KC is based. Real life—we’ll assume—is just one of an endless series of lives, some perhaps strongly related to each other, some less so. In a sense, all of them are the Afterlife; in another sense, none of them are. The life in KC is one of these. It is necessarily related to the one we know, very strongly, so that it can be a playable game. But there are differences. You don’t have to worry about growing up, learning how to talk, or struggling to survive. Instead, other things are brought immediately to the fore: the very meaning of life (once you have reached a certain plateau), and the nature of the world.

The idea the characters are immortal brings the need for an examination of the world into sharper focus, once you realize you may not be able to escape from it. If you only live, say, 85 years, then who cares? But when you’re immortal, the quest for deep understanding somehow becomes more urgent: what, exactly, am I in for? You might decide that the utterly unknown and unknowable would be better… and long for it. Whether the characters are really immortal is not finally determined in the game, but the presence of the volcano suggests that the World will eventually end anyway, as worlds tend to do, to make way for new ones. The game does very little to explore the implications of the volcano, but at least it presents you with the question of what the characters’ reactions should be.

The way the characters respond to their situation is important, if you need the game to have a message. Essentially, some of them are happy with what they know and feel confident that they have figured it all out. But this comes at great expense: they are in denial about the very existence of an outside world, or at least about its importance. The inkling that there might be more to life, something else to do, or some greater purpose to serve (perhaps helping others achieve the same happiness, for starters) is buried very deeply; but I believe it must exist in such people, gnawing at them. Syorcia, on the other hand, has these feelings much more toward the surface. She eventually sets out to see what else might exist in the world, knowing on some level that the paradise she is risking was ultimately worthless if the world is really different from how it appears on the surface. (We don’t know whether Syorcia died to investigate this, but we know beyond little doubt that she encountered the pashvod.) Koustrea, we hope, is even wiser and is not fooled for an instant. Koustrea, by virtue of being the protagonist in a text adventure, is immediately suspicious of any boundaries or placations and proceeds to explore, collect information, and do whatever can be done in an attempt to take the best shot he or she knows at what should be done.
The implication here is that what is quite natural to a text adventure PC is a very meaningful way to live your real life, at least in part. Because the game and life are really the same thing in some important ways.

So the answer to the nature of Koustrea’s world is that it really is a game, made up by us humans, which is something the characters might never guess. At the same time, that fact is not important at all to what they are doing.

Other layers exist between Koustrea and our world, too. Someone came along to build the House and others like it, and they provided things like raw materials for art and endless simulations of the football games that Quaichloy watches. Incidentally, the football seasons do not really correspond to Earth years. When Draydee arrived, the League was small and there may have been, say, five or six seasons per year. By the time Koustrea arrives, the League has grown a great deal and each season might take well over a year.

How’d you come up with these names?

I wrote a program to generate random words about ten years ago. I use it whenever I need unique names for people or places in my creative projects. I’m the kind of guy who has a lot of fun picking out the best names from thousands of randomly generated ones. I’m quite proud that all of the names used in KC were taken unadulterated from the program. I assigned names to my characters in a Dickens-esque fashion to emphasize personality traits. Koustrea was my favorite, so that became the name of the protagonist. I also liked it because the gender is ambiguous and it might be pronounced in different ways. (I pronounce it COW-stree-uh.) Although I didn’t feel that this detail was particularly important, I wanted a gender-ambiguous protagonist for the purpose of providing a more immersive world; in other words, it would be easier to pretend it was really you. During the development, I began to think of Koustrea as female because the name leans that way to me, and at times I struggled to avoid identifying a gender in the text. That’s also part of the reason my blurb is so awkward. The other names’ genders are explicitly stated (except for Ranes, who will be, canonically, the opposite gender of Koustrea to make it even—probably male), or they are football players (all male).

Here’s the complete list of names that appear in KC: Draydee, Quaichloy, Syorcia, Towsimoom, Lubandhu, Zeolt, Koustrea, Ranes, Rogemir, Haljemer Sculloon, Vistarkwa Vecury, Favolect Yylms, Rylo Lerallus, and the pashvod. Some of these were borrowed from an older game idea. If I return to that idea, you may be seeing Rogemir again someday.


Considering the terrible flaws in my game’s opening stanza, which might be the only part judges see in the IFComp, placing 15th was certainly a victory. By the end of judging, I knew that anything higher than about number 12 was simply impossible, and I feared dropping down to the basement. I didn’t fully realize until the end, when I tried to rank my game among the others, that I really had no idea what it was like to experience my game as a player. In what ways it was successful for the judges is still not clear to me; not many people played it, so I have received very little feedback, and much of that has been in general terms.

I’m very grateful for that feedback, though. I saw KC as a long-term proposition, aimed at a small audience. I envisioned getting one email, ten years from now, from someone telling me they’re really glad I made this game. Now, allow me to break into outright hubris for a moment in celebration of some hard work, because from that zoomed-out perspective, KC has been a screaming success. Despite the low turnout, two people have already said the game is destined to become a classic. It got a 10 and several 8s and 9s under Comp conditions. And none other than Etienne Vouga, the IF benefactor who donated $1000, told me that KC was his favorite of the Comp (I hope he doesn’t mind me saying so. I’m pretty thrilled about it.)

Add that up, throw in some positive reviews by high-profile reviewers, count the new internet friends I’ve made: that’s one heck of a nice maiden voyage into IF for me. I’m grateful to everyone who has been involved with this experience.

And now… TADS?

I was reading about both TADS and Inform as early as, say, 1995. Whatever I read then has been long forgotten, but I knew that I preferred the TADS syntax at the time and figured that it would be easier on me when it came to actually do some coding (in the year 2013, as it turned out). Since I still haven’t used Inform, I can’t say whether I made the right choice. I found TADS to be both a staggering work of genius and a nightmarish frustration. The latest, TADS 3, is very powerful and has a great deal of stuff built in to handle specific situations. But, if you can’t figure out the right variable or method to use, you’re in deep trouble, because the documentation is inadequate despite being extensive. KC contains some very demanding (if pointless) programming feats. I ran into at least a dozen problems that required 4-8 hours each to solve or work around. Some were legitimate bugs in the TADS libraries. In other cases I seemed to be attempting things that no one had thought of before. The TADS development environment is fantastic, but often, you will have to set a breakpoint and find out that you’re nested 50 functions deep.

[rant]Getting more esoteric here for just a moment: Emily Short’s review mentioned the TADS 3 sense-passing that I used. This is by means of an object called a DistanceConnector, whereby adjacent rooms can be joined insofar as what you can see (or hear or smell) in another location. Brilliant concept, but the kinks have not been worked out yet in TADS, and it was the source of many problems in my game. I ended up having to spoof it in many locations. Tellingly, in one place where it remains, the Bar/Table Area, it’s the reason that the game does not know you are talking to Quaichloy when you use the ask-about abbreviation “>A TELEVISION” or something. That was one thing I didn’t have time to redo.[/rant]

That said, I will probably continue to use TADS now that I know some tricks. Also in its favor, there were plenty of times when I was playing other Comp games written in Inform that I saw something irksome and thought: that never would have happened in TADS. There’s little doubt that TADS 3 is getting far less attention from authors than it deserves. At the same time, I’m not going to be telling anyone that TADS is superior or leading a parade in its honor.
Choosing the format of HTML TADS rather than regular TADS proved to be much more of an obstacle for judges than I thought. Actually, I had no idea what I was doing. I didn’t know that it would make any difference to the interpreters. I would go back and change that if I could; there was no essential reason that I needed the HTML TADS formatting. It doesn’t even let you make a web-based version or anything, it just allows for formatting tags imbedded in your text, which I hardly used.

What’s next for me in IF?

First, I’d love to get more feedback on KC. I want to continue improving it as long as it can be improved. Anything you send in, even years from now, may be helpful. For now, there are bugs to fix and I want to provide full in-game hints.

I have discovered that making IF games is one of my favorite things to do. If at all possible, I will make a game for Spring Thing. I already know what it would be, and I’m tempted to present the title and synopsis here, just to be different. But then it would look bad if I don’t finish it.

I also intend (easy to say right now) to return to IFComp next year with something suitably compact. Maybe I’ll aim squarely at winning. Or I might attempt something oblique and wholly original. But probably it will be something hopelessly in between.

At some point, I know I’ll want to check out things like Twine. But for now, you’ll understand that I may be sticking with TADS for a while. Now that I’ve suffered through the learning process, I need to cash in on that investment a little more.

Thanks for reading, and thanks for playing!

Thanks for this postmortem! I did not get very far in Koustrea’s Contentment during the comp but I am looking forward to getting back to it soon. I agree that it would have been a better fit as a SpringThing entry, and I look forward to both of your planned comp entries next year. No pressure or anything!

I applaud your commitment to TADS. I would like to make a more substantial game in TADS3 someday (after using it for my tiny ShuffleComp game) but at the moment I am eyeing Gamefic because I like Ruby & Opal. Did you use adv3 or adv3lite?

And I am going to continue to pronounce it “koo-STRAY-uh” in my head. Sorry about that. It just sounds better to me…

I’ve been saying it as “KOO-stree-uh.”

Thanks for a particularly full and interesting postmortem, which much deepened my appreciation of the game. I think you are probably right that its scale and difficulty make it a “fit audience, though few” sort of piece, but that shouldn’t be regarded as a criticism.

I’ve tinkered with TADS, mostly because I felt like playing with Adv3Lite, and have to say I’ve had a mixed experience. It seems to be quite common to need to spend quite a bit of time looking at the source code in the library in order to work out how to do something, or why something is not working as expected. The documentation doesn’t always seem to help – or at least it wasn’t always on my wavelength. FWIW (most of the time) my experience with KC was very good; it felt very solid indeed.

In my view it is a good thing to have more than one system/model for writing parser-IF (which is not intended as a dig at Inform7 at all, just an observation that different people’s minds work in different ways). There was actually quite a range in the competition this year: you used TADS, and at least two authors used Inform6 – which in terms of its programming model is quite different from Inform7 of course. And one person used Alan. So that’s all to the good. But there’s a vicious circle that can be seen here in the problem with your terp: unless it’s easy to play TADS games, who will write them? And unless it’s common to write them, who will bother fixing the terps. The same I suppose goes for finding and fixing bugs in libraries, and writing documentation. There’s a critical mass.

I thought it was possible to rig TADS games so that they were playable online – though they need to be on the IFDB TADS servers for that to work. I’ve found the explanations of how this is to be done, I have to say, completely baffling; but I think it’s supposed to be possible. And truly it is crucial. As I understand it the TADS VM is far too complex to allow it to be run in javascript in the browser, which may be another issue so far as long-term viability is concerned.


And I’m glad to hear people are actually pronouncing it in different ways. That’s cool.

I haven’t tried to research this, but if it’s possible, I would certainly do a web version.

I played this during the comp, near the end, unfortunately, and kind of brute-forced my way through it using the walkthrough. Which meant I got to see the ending, but it’s not the ideal way to experience the game. This is the sort of game (perhaps like some of the Infocom games) that will reward slow and careful play, perhaps over several days, with time to think about the characters and the implications. I hope that more people will be able to experience the game this way after the comp. I’m certainly looking forward to a post-comp release. More detailed comments are available in the review published on my blog. (I did mention there that I thought Spring Thing would have been a better place for this piece, and I see you already addressed that.) I’ll be keeping an eye out for future work from you!

I read Koustrea as KOH-stree-ah, for what that’s worth. Also, Twine is pretty awesome, far more versatile than just hypertext. I’ve done a complex gamebook conversion into Twine that was a lot of fun to make.

ETA: I meant also to mention that I perfectly understood your usage of “wingspan”: I never interpreted that to mean any sort of literal wings. Probably the term “arm span” is more common. I think it does have a connection to sports, though, in the sense that a longer wingspan means a longer reach, which is helpful in sports like basketball and swimming.

Thanks for the review and comments, ReikoYukawa!