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.
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.