How to write IF

I found it really hard to write a piece of IF compared to how I find it easy writing a piece of “regular” text, whatever the length.

When I write (old-style), I just get a blurry idea in my head, then sit at the comp and let the story – or whatever – drop down from my fingers to the keyboard.
This is really hard to do in Inform for a couple of reasons: a) planning (one can’t really expect to have a decent job done without hard planning ahead); b) the real story is broken in a thousand small bits, with code in the middle every other line.

This, adding to the fact I write in a foreign language.

I wonder: how do you people work? Anybody has my problem? How do you work around it?

It’s frustrating and I know it is slowing me a lot.

I know how you feel. Some nights I find myself staring at the screen, getting nothing done. And other nights I can’t code fast enough. I also write static fiction and I find I can only be in the zone for one or the other. I’ve also mentioned that this is why writing IF is truly different than writing static fiction. Anyone can write a novel, anyone, it just depends on if it’s good or not. But you have to know a bit about coding to make a workable game.

Some have given me the advice to write your IF “outside the box” first, then code it later. This allows you to have that free flow you mentioned when writing static fiction. I dunno, just a few thoughts on the subject.


In my own case, I’ve found all forms of writing to be pretty much equally challenging and/or equally easy and/or equally thrilling and/or equally tedious, etc. But I tend to think in small facets of a thing, and I naturally write “one bit at a time,” so that probably helps me out a lot with IF.

And, thinking about it, things like CYOA and gamebooks, which I did everything short of powder and snort as a kid, might have contributed a lot to the way I look at text, from both sides.

I agree that it’s hard. For me, what works is clear planning. If I know exactly what’s going on in terms of game design, then writing the output text is just writing. But when I have to interrupt the text-writing in order to ponder the design, that can break the concentration at the very least.

The fact that one has to write everything in little bite-size chunks, with very little control over the order in which the reader will encounter the chunks, is a separate issue – for me, anyway. It has something to do with the cumulative impact, and also something to do with the reader’s (presumed) attention span.

But then, I’m known to be too goddamn wordy. I like writing long paragraphs, because there are always plenty of things I want to say. That’s not to say I don’t pick and choose details with care, because I do, but I might feel that five or six details are clearly needed in a paragraph, where another IF author might be content with two or three of them, and feel that five or six is far too verbose.

With respect to the cumulative impact that one achieves through stringing several paragraphs together, I think that type of effect is just difficult to achieve in IF. The medium doesn’t favor it. Or at least, players don’t favor it.

Sadly I tend to be wordy too, coming into this from my hobby of writing comic books, so I foresee that either my games will be massively long or put the reader to sleep. Writing IF is like writing a normal novel in that it’s an art of choosing how much detail you want to put into it and how much you want to just hint at enough for the reader to get.

I think you’ve accurately described why creating IF is hard. I think it’s harder than writing straight prose, but perhaps not as hard as other creative media (like say, creating a movie or an interactive video game.) But I think one reason it is hard is because writing IF is pretty much a solitary act done by a single individual who has to do both the coding and the writing. (In contrast to a movie or video game where there is a large crew of specialists and one person might write the story, another person turns it into a script, another person directs the actors and so on.)

I have realize that for me to move my game beyond it’s “proof of concept” intro, I need to spend a lot more time on the story logic, characters, motives, and plot. And so I am balancing time working on that using Scrivener as a structured writing tool and actually writing code in Inform7. But I know if I don’t structure the plot and story pieces very carefully, no amount of coding will make it into an interesting game.

Thank you all for the insight.

The problem, for me, is that I’m a romantic writer, the Sturm un Drang guy. I can plan ahead (this is my main char, this is what’s going to happen, this is the average setting) but when I write I must go deep into roleplaying and pretend I’M that character, I’M living the thing. That’s how the best recounts come from, the best dialogues, the story itself. Because I believe a good story is nothing if not told properly.

Coding, I must stop the flow of conscience to: 1) fit into details I don’t really care for (“There is nothing unusual about the chair”), 2) actually code (The chair is an enterable supporter. Instead of taking the chair, say “C’mon, you should think about THE STORY!”), and 3) break the ongoing paragraphs into several tiny bits to make them interactive.

The big problem is that I don’t seem to have the faith and strength needed to write first, code later (as in “I write all the transcript then convert it into Inform7”). Also, I lack the time.

Anyway. Moving along as I did up to now did worked for at least 2 games. So I guess until I find a better way, I’ll stick to that.

This thread is not closed by the way. You can append whatever thought you have. :slight_smile:

Hi James. I can feel your problems. A lot of stuff can come out of a semi-conscious process as opposed to meticulous planning ahead or peroids of writing grinding to a halt by the need to program. What I’m doing for my latest project is writing scenes like they would present themselves to the player to allow for longer periods of free roaming imagination and then later on breaking it down an implementing what I wrote in the first place (oftentimes changing a lot, of course). But this has proven to be a pretty satisfying experience. I use Ulysses to write and love its “no distraction”-mode, but Scrivener, as mentioned above, seems also pretty good for such tasks.

I find I write at my best when I’m not consciously focusing on the task, but that approach tends to be frustratingly hard when it comes to my own projects. Regardless, I find switching between different paradigms helpful. Transcripts are useful at times, as long as you have a rough idea of where you want the story to go.

The biggest problem is the detail trap, always. Envisioning a space which is only half implemented doesn’t come easy to me.

I don’t know if this will be helpful or even really relevant … but … a few years ago I used to teach classes where I got writers of so-called “static fiction” – a term such writers tend to hate, by the way – and it was interesting to note what challenges they had. My classes tended to be made up of fiction writers and a few screenwriters. The biggest challenge they had, in pretty much all cases, was “How do I separate the player from the player character enough to keep the story interesting and the interactivity engaging?”

They had no trouble coming up with plot ideas, any more than they would for their regular work. They had no trouble coming up with dialogue or interesting characters. What they had trouble with was the idea of having the player get into the character a bit, such that the character drove them on to explore the story world more.

I’m simplifying a bit there but the idea was that the authors wanted to be able to explore the protagonist (player character) just as much as the world itself. They wanted to create the same kind of emotional experience that they could provide for readers of novels (or film) while still allowing the player the chance to explore the world on their own terms and not always be railroaded onto some purely linear path. So it was that ability to create a meaningful experience that was the biggest challenge, at least as it was stated to me.

I know one thing that helped – and Jim indicated this – was planning out the narrative arc that you wanted to follow. This really helped everyone. It wasn’t that every little detail had to be decided, but the broad strokes of the acts had to be situated in each author’s mind or they found themselves flailing a little bit. Being proficient in the language of choice (Inform, TADS, whatever) certainly helped to avoid slowing down the process too much but “proficient” really just meant that they felt comfortable with how to implement the basics of something they wanted, content to leave the finer details until later. Perhaps interestingly, you would think Inform 7 would be more up their alley given that it purports to be a system for writers or at least people who want to write more than program. In fact, TADS tended to “work better” for my classes, largely because the authors had “programmer mode” and “writer mode” and they liked keeping the two separate. (They likened it to the difference between “writer mode” and “editor mode” – although, again, I’m simplifying a bit.) Inform was felt to conflate the two a bit much – although, that said, most of the more established authors felt that if Inform truly was trying to appeal to writers, and better structured its DSL to how writers thought, it would be more successful. It was just their opinion; take it for what it’s worth.

As far as the story being broken into small bits, that’s where having the broad arcs of the story laid out ahead of time really helped. But the authors also wanted to make sure the system being used was flexible enough to accommodate change easily. Here, again, TADS helped for a reason many might not think of – but it was because multiple source files could be used and that helped to segment material better, at least for the groups I worked with. Further, those separate files could be broken down by “objects” rather than, say, “rules” and that tended to match how people thought a bit better. Many authors tended to run into situations where the “mass of rules” would be hard to keep in mind, forcing them to constantly shift gears to think what “cascade specificity” – to use a CSS development term – was causing their problems. This was not bad early on in development, but became progressively more of a problem, particularly when complex NPC interactions were attempted.

In terms of accommodating change, their largest concern was being able to carry out the thematic purpose of the arc while still allowing the player a certain amount of freedom. So again it went to planning: where are the points where the player can go off the main path for a bit but still come back to the main story?

Bit of a side topic but in the interim I had been playing “Star Wars: The Old Republic.” It’s an MMO but you can largely play it as a single player game. And the interesting component is that you do have a main story quest that you follow with your character. But along the way, you pick up lots of side quests. Those side quests are sometimes related to your main story but often they are entirely peripheral and often seem quite dubious in terms of how they are tacked on. When playing the game I realized it was very easy to get entirely side tracked exploring some large planet, picking up more quests – and entirely forgetting what the heck your main story was about! Plus the pacing seemed off, right? I mean, here I am trying to save (or destroy) the galaxy — but I take hours and hours roaming around doing other stuff so that I (as player) can “level up.” Mind, none of that would have mattered as much if the personal story missions were not in place. But since they were, you started to become conscious of how much else you were doing beyond the story.

I bring all that up because the pacing was a big thing for my class members that would frustrate them. They felt like they wanted to pace out how the story revealed certain things. But that sometimes came right up against the idea of not allowing the player enough freedom to not feel railroaded, as if they were solely reading a book. So the challenge there was how to keep the pacing going while still allowing that exploration. Here, again, a facility with the language of choice helped because they wanted to be able to add elements to the game that would goad the player along if they seemed to be pausing a bit much. (Again, side topic but I recently played “Batman: Arkham Asylum” and it does a fairly good job of letting you roam a bit, but still keeping you on track in an “in game” sort of way – rather than just putting boundaries around your actions.)

All of that, of course, leads to the coding and this is where my authors – to get around slow development and writing time – would like when they could put just enough implementation in place to keep them going through the mean beats of the act they were writing. For example, they wanted to be able to put a “token” NPC in place. That NPC would eventually become a central character, but what they needed at the outset was just for the NPC to be there and to be able to easily have a dialogue system put in place to cover the main things they needed that NPC to do or say. They rarely focused on pure mechanical puzzles, saving those for later. The main things they wanted to start writing immediately were the gating events that took the player through the narrative. Even if only very simple in terms of implementation, what everyone wanted was a way to see how the story as a whole was shaping up as quickly as possible. Only after that seemed to be working, would they go back and start implementing more roadblocks for the player along the way. They also felt this helped them avoid putting “puzzles” in place just for the sake of having something for the player to solve.

So, yeah. Not sure if any of that was useful. But there it is.

That was brilliant, actually. Thank you.

Jeff said a lot more than I could’ve but here’s how I work.

I tend to split big chunks of time (e.g. several days) between planning stuff and writing code. I’ve gotten to where I don’t worry about details until I test stuff at the end. I also tend to enjoy looking for what-ifs in any story, so I star places that want/need those branches.

I find it too exhausting to combine narrative and choices out of the gate, so I just work on one or the other. Once one gains critical mass…

…also, the testing extensions help you not worry about not describing something.

Jeff talks about how pacing was frustrating for the authors, and at the same time they were postponing the puzzles for later. In between he mentions “gating events” that helped them outline the plot. These all reminded me of something Michael Gentry said about writing Anchorhead: the puzzles are there to pace the story. The plot can’t advance until you solve them, and figuring out how to solve them involves understanding where you are at in the story currently.

Not sure if this is the same thing I read, but it mentions puzzles and pacing: … y_eng.html