Workshop experience: Day 4

The last day of my workshop in Passo Fundo.

Day 4: Creating our own IF

For this workshop, I wanted to show the participants how to build their own IF. This was decidedly not a course in coding, but rather an overview of the larger process at work.

We started out by brainstorming a premise. It turned out that the most popular premise was a kind of Eco/Brown pastiche concept where someone has been murdered in a library for trying to find a forbidden book, and that person’s ghost is able to guide the player to finding vital evidence to punish the culprit.

The participants really got into this bit and had lots of suggestions. I wrote them all down in the first stage, then helped them winnow out which ones were workable in the amount of time we had. (I’m afraid I steered them rather firmly away from anything that would require us to make a complex NPC, and also the time-travel scenario in which the player’s aim is to go back and prevent the murder, as nifty as that might have been.)

Next I showed them what a puzzle diagram looks like from my Bronze notes, and then made up a puzzle diagram of our own game. As these things generally happen, it rapidly grew extra complications. It was both endearing and instructive to find that these students, who had mostly been exposed to fairly modern IF, nonetheless immediately reconstructed the Old Standby puzzles: lock and key, object hidden under something, object you have to get on a stool to reach, light sources, a bookshelf that opens onto a hidden passage… it was like the emergence of some kind of race memory.

Then I brought up Inform 7 on the demo computer and showed them how to create the first room and descriptions, and the basic interactions that would lead to the discovery of the corpse. I gave only general descriptions of what I was writing the code to do, rather than trying to teach them all the syntax, but I did demonstrate features like the world index and replaying to test after a bug occurred.

By the time we’d gotten this far, it was time for coffee break; so while everyone was out, I sketched in the rest of the rooms and mandatory objects for the game, just as undescribed items, and demonstrated when they returned. Then we added the object behavior and descriptions with everyone back in the room. (The descriptions were my synthesis of what the translators told me based on the Portuguese. So they tend towards the simplistic but functional.)

It was not easy, but we managed to implement the whole plot, with three or four very basic tiny puzzles, with a little bit of time to spare. The result was indeed very sketchy, but it was playable enough that we could start at the beginning and get to the end, and that seemed to please them a lot. That done, I gave them a little speech about how the next steps would be to flesh it out more thoroughly and then have it tested.

Then I did a little demonstration about how language translation files work in Inform, and mentioned that other IF systems also allow for translations. (I’d already given them a resource sheet handout with URLs for both Inform and TADS, as well as some other helpful sites.) We had a little time for questions, and then it was time to close.

In retrospect I was very satisfied with this session. The students really enjoyed the collaborative creation process, and even some who had been quiet on other days participated very vocally. Getting all the way from concept to winnable (if horrendously incomplete/unpolished) product was also an upper. I wasn’t sure I would be able to pull that off, and to be honest it wasn’t easy, because I often had to be listening to discussion about one issue while typing code about another. And I also think that this overview approach was much more rewarding than it would have been if I’d tried to teach them piece by piece how to code the thing on their own: we wouldn’t have gotten very far considering the challenges of translation. Besides, if they decide they want to try TADS instead of Inform, they’ll still have learned something about the construction process that’s generally applicable.

Several students mentioned a real interest in constructing a Portuguese translation file for Inform. I’m hoping the course generates enough critical mass of enthusiasm that that comes together; my guess is that it could be partly built on the basis of the Spanish one.

Robner House example
Screenshot from Erik Temple's Robner House example, with map that fills in during play.
A couple of students also asked for more detail about mapping on screen, so I showed them Erik Temple’s Robner House sprite example. They absolutely loved that and wanted to know how to do their own. I said that regrettably it was too complicated for me to demonstrate in the time available (we’d need to make up a set of images, for one thing, which itself would’ve taken quite a while) but pointed them toward some resources.

11 thoughts on “Workshop experience: Day 4”

  1. It sounds like a near-impossible task to achieve so much in a single day, even without the extra burden of the language barrier. Congratulations on pulling it off!

    1. Heh, thanks. Like I said, the game itself was really really simple, and I would only explain the code to the extent of saying things like, “Okay, now I’m making a rule that will let us see what’s under the desk. We’re going to print something, and then move the object into the room so the player can see it. What do you want the message to be when we do that?”

  2. the time-travel scenario in which the player’s aim is to go back and prevent the murder

    Aw, that was my friend’s idea for a game when we were 12 (specifically, you’re a detective hired by the ultra-wealthy who provide for the service in their wills in the event that they’re murdered).

    He never wrote the game, but he did make feelies that got printed out on a dot-matrix printer. I still have one.

      1. Be careful — those types might’ve hired a hit man to take you out in the event of their death.

        And have equipped him with a time machine, to prevent you hiding in the past.


      2. They could just will you a million dollars in the event they aren’t murdered. Then, if they are murdered, you have to go back and prevent it to collect your dough.

        Though I guess you have to travel forward to their death from natural causes in order to actually collect. Has anyone ever considered the effects of time travel on the economy given non-zero inflation?

      3. No, no, see, in that case the economic incentive is for you to go back in time when they’re murdered to cover up the murder and make it look like an accident.

    1. As you continue to investigate, you find out that your future self just kept walking around the same areas over and over, zipping back and forth in time, talking to the same people and trying to show them random trinkets. Eventually future-you just snapped and attacked the couple out of the blue.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s