New project - questions about Inform7

I am looking to create a training program that will help people to consider they way they think and make decisions.

The setting will be a fictitious company with the person starting at the bottom and making their way up.

The basic set up I have in mind is simple enough, a series of scenarios where the person has to make a decision and the scenario carries on until the next choice has been made. At the end of the scenario the likely outcome is shown and the person either progresses to the next scenario or is fired.

At the end of the level depending on how the person has done they will be fired, kept on at the same level or promoted.

Most of the mechanics are easy to work out. but to work out if the person is kept at the same level or promoted I want to award points for each decision, the person needing to exceed a certain amount of points to be promoted, and allowed to continue, does Inform7 make this easy?

The other feature I want to include is for poor decisions earlier in the game/story to come back later on, so some of the later scenarios will be dependent on earlier decisions taken earlier. Consequences would be slight embarrasment, new problems to solve, discipline procedures being used or being instantly sacked. For this I need two variables, 1 to trigger an event, 1 to store how often the poor reasons behind the decision have been used to determine what consequence will apply, does Inform7 cover this?

Short answer: yes.

Slightly longer answer: Get started on your project. If you need help, ask questions here. I think Inform 7 would work fine, but if most of the player’s “moves” are multiple-choice questions, a CYOA-type system might be better.

You sound concerned about Inform 7 being powerful and flexible enough to do what you need. I7, like TADS3, is a fully capable programming language that can do basically anything you want. It might be more reasonable to ask whether I7 is too much for your project.

Inform has a “score” for the player that is built in. If you let the boss win at golf, you can…

increase the score by 17.

You can also decrease the score in the same way. You can also “increment” or “decrement” the score, which just means increasing or decreasing by one.

The score can be used in if statements or can be used to trigger a Scene, like this…

[code]The Mailroom is a room. “A grimy mailroom. Here is where careers come to die.”
The Boardroom is a room. “This place is appointed in rich leather and mahogany.”

Instead of singing:
say “Lalala…”;
increment score.

Getting Promoted to the Board is a scene. Getting Promoted to the Board begins when the score is three.
When Getting Promoted to the Board begins:
say “You’ve been promoted to the board!”;
move the player to the boardroom.

test me with “sing / sing / sing”.[/code]

To follow on from Trojo’s example, you can test the score whenever you want:

[code]Performance Appraisal is a scene. Performance Appraisal begins when the player is in Mr. Fernwells’s Office.

When Performance Appraisal begins:
if the score is less than 30:
say “‘I’m afraid you haven’t been pulling your weight, Knurlman. We’re going to have to let you go,’ Fernwell says.”:
end the story saying “You’ve been fired.”[/code]

Thank you for your replies.


Like any new program I appreciate that there is a learning curve to get the most out of a program. I just wanted to be sure that it lives up to its hype before downloading and starting to play with it then finding it is not as easy to do what I want.

I will certainly stop by if I need assistance and thank you for your assurance.

From your description, I think you may find that creating commands for the user to enter will require some creative thinking. Interactive fiction is structured around a world model in which the reader/player interacts with simulated objects using simple commands like “open the sack” and “eat the mushroom.” Inform can certainly do more than this – but the further you stray from this world model, the more customization you’ll need to do.

Speaking from experience…

It’s not a matter of I7 living up to the hype that you have to worry about. (I wasn’t even aware there was hype…?)

It’s you living up to the hype of I7. The basics are very, very easy. The more advanced stuff… Eh… Depends on how much you enjoy intertwining a sometimes convoluted attempt to twist and contort “natural language” into programming code and how much you love your grammar. There are some things that people are doing that you have to know the difference between different types of adjectives. Which makes I7 for nerdy bookworms and not programmers.


I take it you’ve given up on I7, then? It is a traditional thing to do.

Assuming you’re referring to me… I wouldn’t say that exactly.

Apparently the tongue-in-cheek tone of my post, introduced by the admission of my own personal struggles with Inform, was not obvious, to put it mildly. Allow me to clarify, since I’ve no desire to turn away newcomers to the language or offend those who have a deep love for it.

This has been discussed at length. Not only by those of us who are new to the language, but also to those who have lived and breathed Inform for years. While the basics are very easy to grasp, anything much more than that results in being forced to pepper in I6 code (or some rough approximations of it) or dramatically stretching one’s understanding of what constitutes “natural language”. While I suppose that this is sometimes necessary, no one is trying to pretend it doesn’t happen.

Well, there are. This isn’t a jab.

Maybe this is fly in the soup. Again, this was a shot at me not any of you. Yes, I can completely understand the knotted Fruit of the Looms here. So I apologize for this little misunderstanding.

So let’s try this again:

Inform 7 is a powerful, flexible and versatile development platform capable of translating a semi-natural language approach to programming into a (hopefully) playable interpretation of your story. While at its simplest level a perfectly acceptable game can be produced using phrases little more complex than “The description of…” and “The printed name is…”, a more advanced understanding of the English language and forgiveness of what can considered “natural language” becomes necessary as your project becomes more developed. Inform is capable of producing almost anything, but like anything else, you get out of it what you put into it.

Why do people feel the need to apologize if they are a little critical of Inform 7? I’ve noticed this a lot. It’s like people are afraid of offending the gods or something. (I never see this kind of sentiment when people talk about ADRIFT, TADS, or just about anything else.)

Anyway … I personally really like Inform 7. I think it’s a cool language, attempting some neat things. I also think it’s a fundamentally flawed approach that leads to more verbose and ambiguous code in the long run. I can maintain both positions without problem. It’s a fun language to play around in but it’s definitely not for everybody.

So responding to this part of the OP’s comments:

First: what hype? There’s the hype of it being a new language doing things in a unique way in the text adventure world. But I doubt that hype has anything to do with your question since the hype does not say “Inform 7 can do anything you may ever want to do. Ever.”

Beyond that, ANY language can make doing what you want to do not easy if you don’t know how to do it. That’s the nature of programming languages. Once you know how to do things, then, yes, some languages can make certain things harder or easier. But that doesn’t mean you can’t do it. It just means it might take more work.

If you want to judge the language on whether it can do something AT ALL, that’s one thing, and is more objective. If you want to judge whether a language makes doing a particular thing harder or easier, well, that’s more subjective and it’s sort of up to you to decide that for yourself. What you find cumbersome, I might find easy and vice versa. Basically try it out; experiment; see what you think. Maybe even try it in another language (or two) to get a feel for how those tools work. Then choose the one you feel most comfortable working in.

I wasn’t apologizing for being critical of Inform. I was apologizing that some people (understandably, to some points) were under the impression that I was taking shots at them. There are those I couldn’t really give two if I offend. There are others I’d prefer didn’t walk away with that impression.

Just clarifying the intent of my post, that’s all.

No problem. Thanks for clarifying.

The project is one I’ve had in mind for a year or two but did not have the software to make it easy to do without too much programming knowledge.

The hype is talking to various people Inform has come up a few times as a possibility. When I looked at the site it seemed to offer a range of tools that would help make the experience more interesting.

As I said it is aimed at challenging how people come to decisions, and the potential consequences of how we make decisions. It is aimed at a particular group of people who may not have had experience in the type of decisions they may be faced with, or those who have but want to improve how they make decisions. Recently a number potential parties interested in distributing it have come forward, and one has asked me to definately go ahead and they will help promote and distribute it.

At present my intention is for the final product to be free, or at cost for disk, post and packaging if necessary. My aim is to try and have it ready for a national conference next June. This may be a little ambitious, but once the first scenario is done most of the coding will be in place and it should be a matter of copying and pasting, with some minor alterations. Most of the work will be in creating the evidence needed to make the decisions.

The point system will be simple. Points for each piece of evidence looked at, set points for decisions. Counters used for certain type of decisions.

So for example if the player always opt for the cheapest option there may be a news article that the organisation is constantly doing things on the cheap which is causing the organisation some problems. If it continues later on it triggers a crises and the person’s services are disposed of. With a small amount of randomness set in for when these are triggered.

One of the main concerns is that the event of making a decision is what causes the game to move on to the next ‘room’ so the normal command of stating a direction to move to is not ideal.

I have downloaded Inform 7 now and started playing with it.

If the project is successful I may well look at doing others using some of the more advanced features.

Thanks for all the comments.

Movement is pretty simple to block. First, make sure your rooms are not connected to each other geographically. In the example I posted earlier in this thread, the Mailroom and the Boardroom are not linked-- the player cannot walk from one to the other. The only way to get to the Boardroom is to trigger the scene called Getting Promoted to the Board, and there is no way to backtrack to the Mailroom after that happens.

But what if the player tries to GO NORTH or whatever anyway? You can let them know that that isn’t going to work with an error message like this:

Instead of going nowhere, say "(You do not need to travel by compass direction in this game. To advance the story, make a decision as to what to do next)."

If you want the choices to be multiple-choice, where the game presents you with options and you have to choose one, you might also want to consider ChoiceScript. It’s specifically for multiple-choice games, and it lets you keep track of a lot of statistics. (ChoiceScript games primarily wind up on the Web, but I think there may be other ways to distribute them.)

Despite the trappings of natural language, Inform 7 is a programming language. Without prior knowledge of programming in at least one other language, you will find it difficult to move beyond the basics of it. However, your project description indicates a pretty straightforward design that is limited in scope, so I think those basics will suffice, especially with the help of this forum.

I think there are a number of people here who falsify this statement. I had no programming experience before starting with Inform and feel pretty capable of doing just about anything with it (at least with the support of the folks on this forum). I also have far more confidence approaching more traditional languages now, thanks to the ease of getting started with Inform.

But it’s perfectly accurate to say that just because you’re programming in something that looks like English doesn’t mean that you won’t have to think systematically. That is certainly true!


I agree. While I do have prior programming experience, I don’t think you need to have knowledge of programming in some other language to be effective at Inform. In fact, you could make an argument for the reverse since Inform’s nature would force you to unlearn a few habits from other languages. I could actually see some programmers becoming more frustrated with Inform because of their knowledge of other languages.

Beyond that, I think “the basics of Inform” is kind of a muddy area anyway. What are the “basics”? There’s the notion of basically declaring the world model state. That’s pretty simple. Then you get into actions and that gets you into rules. And then you’ll probably need some “to” phrases and that leads to some “understand” statements and so on. It all sort of gets wrapped up together. (Which, referring to another thread, is probably why Inform 7 is somewhat difficult to document to everyone’s satisfaction.)