So I’m old school–I write code on paper as I learn it and try to write small events or parser experiments and then input them. I’m trying to learn Inform 7, and so I’m trotting through the documentation–which is absolutely wonderful, but can anyone share any other techniques? I learned my last language in 2001, by doing, and so that’s the road I’m taking here; just curious if there are better ways. The last time this topic was discussed was in 2015–any new websites or attempts to teach Inform differently?
I can’t speak for others, but for myself I always learn by doing. Sometimes I ease into it by reading through the reference first before trying out the examples, depending on how dense it is. Both Inform 6 and 7 have really dense references and tutorials so I’d just take them step by step.
I also like to do more than what’s in the example code. Like I’ll take what they give you for code, but then I’ll be like “What happens if I do this?” and mess around a bit before continuing. I don’t think parroting is the same as learning, so it’s best to get an understanding of what’s happening instead of just repeating what they say.
Since you mentioned this being discussed in 2015, I’m guessing you’re already familiar with some resources that were around at that time, but just in case you aren’t, here’s a Quick-Start Guide to Inform 7. While there have been some new releases of Inform 7 since then, I would guess that most or all of the information in that tutorial is still accurate. I don’t know of any new websites for learning I7 that have been created since then.
It can also be helpful to look at the source code of published games, where available. It’s nice to be able to play a game and then see how it’s put together. https://ifdb.tads.org/search?sortby=new&newSortBy.x=0&newSortBy.y=0&searchfor=tag%3AI7+source+available
When I was learning I7, I came up with an idea for a small practice game with only one puzzle, and then used the manual to try to figure out how to make it.
I totally agree with learning by doing, experimenting and making small practice games. Absolutely the best ways.
The way I did it (and am doing it) is by first creating a scenario, with puzzles, possibly characters, maybe not so complex, without worrying yet about the code. Then, no matter what your vision is, write the code, using the manual and whatever tips you get from this board. Do not give up or compromise on any part of what you’re coding, simply because it seems difficult to do. Hone it and perfect it until it works exactly as you envisioned it to work.
Writing With Inform might seem daunting to read. I read it in the I7 IDE alongside the source text and used the buttons to copy over the examples and experiment and play with them. You needn’t expect to read it all at once - the first several chapters alone are enough to get an author comfortable with creating environments and detailing them.
I also skipped around as there are parts that may not apply to the types of games you want to make. I have never used tables extensively, for example. Once you know what you are doing, The Recipe Book has more practical and extensive examples which will laterally teach other concepts and common implementation solutions and how systems can interact with each other.
TL;DR: I highly suggest learning while doing with both manuals alongside the IDE.
I really like your idea of building small parser experiements. In my experience it is the best approach to learn Inform7. If you are using the Inform7 IDE, my favorite feature of it is the ability to turn the code examples in the documentation into executable games with a single click. Coming up with a short story concept to target your experiments at may help tie things together as you ramp up with the syntax.
Thank you all for the lovely input, and the links, bg. I’ll dig into some source code.
Since nobody’s mentioned it in this topic yet, I learned by using Aaron Read’s book Creating Interactive Fiction with Inform 7 which I certainly vouch for. It’s more holistic and involving than the digital docs, and has a trajectory. I was coming from a background of having made a lot of old school adventures already, but when I picked up this book, I didn’t feel the need to type anything for awhile. I just read the book. It is clear enough, and with good screenshots of the code that I didn’t open up I7 itself right away.
A few things have changed in Inform since the book was published, but nothing that fundamental regarding what it teaches.
IMO, having work source and documentation literally side-by-side is a major breaktrough in IDE, and is the major helping tool in learning I7.