Hello. I’m trying to learn how to use inform 7 (because I’ve thought IF games were awesome since I played Zork a while ago). Where should I go to learn it? I could ask questions here left right and center, but then I might as well give somebody a map, some instructions and ask them to make my game for me. I’m currently using The Inform 7 Handbook by Jim Aikin, and while that is great it just isn’t exactly a course. Is there a YouTube channel I should consider looking at or perhaps a document or website?
The built-in documentation (Writing With Inform, aka WWI) is thorough, but it makes the most sense if read straight through from the beginning. (This takes a lot of patience, but it may be the shortest path overall.) The other built-in documentation (Recipe Book, aka RB) has tons of illustrative examples, which are cross-referenced from the relevant pages of WWI.
If that’s not working for you, see the sticky post at the top of the forum. There are a lot of other resources.
I think you started in the right place. Once you’ve read through that book from cover to cover you’ll have a fair idea. I downloaded everything else available about Inform 7 but didn’t find anything better. A familiarity with the official documentation, and browsing through old posts on this forum are probably the only other things you need. There is a post here of other materials, and a page on the IFWiki too.
I’m answering from the perspective of a fellow beginner so maybe am more on your wavelength than an expert!
I don’t know if I am adding anything that has already been said, but I do agree that reading and practicing with the built-in documentation will be very helpful, and doing it in the course of creating your IF piece is definitely the best way to go about it. Always start small and start from the beginning. Learn how to create a room, the first room in your story, where the player starts, put the player there (as in ‘The player is here.’ under where you define the room), and then define your player. Then create the objects in the room, one by one, even if they are only props.
Don’t be afraid to jump around in the manual, as you are creating the game. However, poring through the manual, from front to back is also helpful, especially if you try the examples and/or create your own examples of each concept. If you have an idea that you want to develop in your game, often you might recall a lesson in the manual that would be useful for that (‘Hey, wasn’t there a chapter about that in the manual…?’).
Above all, don’t be discouraged or feel forced to compromise your vision for your game. If there is something that you want to do or create in your game, work on it until you get it just right.
I went through a lot of headaches creating my first game, Bullhockey!, it was a long game, but it was worth it. I didn’t just ‘do’ the manual; I also sought help from the experts here on this site. I might not have done the game without their help, because the manual is not as comprehensive as you might want, and the experts here know a lot of the tricks and things that you don’t find in the manual, and they are also experts on testing, the actual writing, and how to create a ‘good game’.
So go through the manual, go through the headaches, create your game, and consult with the experts here. It’s well worth it! You can do it!
Yeah, just echoing all of the above – I just started learning Inform 7 about a year ago, and was able to enter what’s I think a pretty solid game in this year’s Comp despite not having any real coding chops, so it’s definitely not too onerous a process if you’ve got the time for it! Just a couple additional thoughts and points of emphasis:
I definitely wouldn’t be shy about asking for support here, but you’re right that this isn’t a primary way to learn because you’ll be getting scattershot advice about specific issues most of the time. My rule of thumb was that if I found a bug, I’d try to squash it on my own, looking at documentation and other examples, for at least half an hour first. I think that often helped push me to really figure stuff out and learn it, versus just pasting in some code offered up by a kind soul on the boards without fully understanding it!
Speaking of examples, it took me a while to get a sense of how an Inform 7 should look and how all the pieces fit together. I found it super helpful to look at the source code of a few games to get a grounding in this. Fortunately there’s a tag on IFDB to help you find some!
I personally found the documentation was too much to digest in a pre-coding read-through. I’d say you definitely want to try to read through at least chapters 1-10 of Writing With Inform, though, before diving in, and then probably having a plan to dig into the remaining major topics is helpful (my game was kind of structured around each “act” zooming in on a particular topic I wanted to learn, like scenes or other characters).
For my first game I just took an Emily Short game (Glass) and edited it to be what I wanted. It can be useful to look for games with published source code.
I find I make really good scenarios by free-associating with others’ ideas and work.
I think the hard part for many people is not Inform itself, but the fact that you’re still learning to write code, no matter how much Inform 7 syntax looks like English syntax. For many people, learning to write code, even in Inform 7, is a hard thing because it’s a specific skill that requires ways of thinking that don’t map neatly onto many other parts of your daily life. That doesn’t mean you can’t or shouldn’t learn it; it just means that some people have an easier time than others, because their minds are already oriented in ways that are helpful for one reason or another.
But, as with any learning-to-code experience, the best way to learn is by doing: find a good introduction and work through it, chapter by chapter or section by section, adapting what you learn to a project of your own. Writing with Inform, which comes with the Inform 7 development environment and can be read in either or the two side-panes as you work, is quite good, taking you step-by-step through big chunks of the language, with constant links to examples in the Inform Recipe Book, so that there’s code available that you can adapt if you start thinking “OK, but what if I want this vehicle to be a bicycle?”
So that’s what I’d do: install the software, and read the first two or three chapters of Writing with Inform, then start using it to sketch out a small virtual world of your own while you’re working through it. You’ll have experiences where you say “But I don’t yet know how to keep the musclebound adventurer from going through the door while it’s guarded by the giant!” That’s part of the learning process: you won’t have figured that out by the time you finish chapter 3 and are initially sketching out your world’s locations and items and their descriptions while you’re still reading Chapter 3. Have faith that you’ll be able to fix the problem later and put in a comment that says something like
[ #FIXME: block access to the northwest passage until the giant has been given a red balloon ]. Keep working on the tasks that you do know how to perform, then periodically search through your code for
#FIXME notes as you work through Writing with Inform further.
I myself think Writing with Inform is quite good, but if it’s not your cup of tea, Jim Aikin’s Inform 7 Handbook is a great alternative: it’s organized differently, less “here are some basic principles, here are some more basic principles, now we’re applying them” and more “let’s jump in and get our hands dirty.” Another good resource that takes a similar approach is Aaron Reed’s book Creating Interactive Fiction with Inform 7, in which he spends the whole book taking you through the work of creating a single game while explaining the language. (It’s out of print, and used copies are typically quite expensive on Amazon, but can often be found much cheaper if you poke around elsewhere, and in some parts of the world, including the US, it’s possible to get it inexpensively as an eBook.)
If what you’re saying is that you’re a coder with experience in other languages and you find that the syntax and practices of Inform seem like they’re from Mars compared to C++ or Python or Lisp or whatever, Ron Newcomb’s Inform 7 Programmer’s Manual might be helpful.
But whatever you choose to use, pick a resource and work through it, not just working through the examples provided in the text but also building a small piece of your own. Even if you never release that learning game, it will help you to learn the language.
Allison Parrish recently published an Inform 7 Concepts and Strategies tutorial which “takes the unusual (?) approach of showing how to implement your own actions/properties/relations before showing you how to use stuff from the built-in standard rules. I think this helps to demystify the language—you learn to see Inform syntax instead of English sentences.”
I thought that was kind of cool.
Thank you for the link to inform 7 Concepts.