Will learning Inform 6 help with using Inform 7... or...

I keep coming back for more with Inform between my busy times on my professional projects, as a hobby, but I feel like I’m fighting to the death with this language. The “like English” idea with this language doesn’t seem to make it easier for me to use at all. Is it worth learning Inform 6 to try to understand it better? The words mean nothing without context, so I feel like I only learn each kind of thing piecemeal, but the underlying structure has yet to reveal itself to me.

[rant]I tried writing my own simple game in C#, and while I had success at doing what I was doing, I realized it would take me a lifetime at my pace to get anywhere because there are so many things to take for granted out of a pre-built system like Inform. Once I get the hang of a thing in Inform, it is really obvious how handy how much is already there under the hood in the pre-made system. When I was working on my own system, making the parser read commands for the player to move from one room to the next without any weird results was time-consuming enough, let alone getting to wearing and equipping items… I’m really impressed with you guys who wrote the inform parser and the standard rules and everything after just seeing the tip of the iceberg behind a project like that!

So, while I’d be theoretically capable to write a game in a language I already know, I’d never finish it in practice. I just want to get to the writing dangit! I code for a living, I was hoping it’d be easier to have a hobby writing the fiction, but with some variables and interactivity, but didn’t think it’d be such a chore to do the coding on my spare time!

I thought it might be intriguing to learn Inform 7, since it’s so different. I thought it would actually be easy to use, but I just don’t know why I feel it’s a constant struggle for some reason. It’s as if its not the “code” as in logic, like I’m used to, but “code” as in a dialect or slang, where you just have to learn all the specific rules, I dunno… not knocking Inform, clearly the problem is I’m dumber than I thought, but learning Inform appears to be nearly impossible even though I self-taught myself to do professional projects in C derivative languages…[/rant]

tl;dr
Anyway, my point is this… if I am not finding the “intuitive” language of Inform 7 helpful, is it worth learning Inform 6 to try to fix that, or should I cut rope and start trying to use TADS instead? Other recommendations (besides “quit you loser” :stuck_out_tongue:)?

Inform 7 is actually fairly flexible in letting you write things like rules in several ways, and words like “the” are often just for show.
…but Inform 6 is more clear cut: Once you get to know the inner workings, each command has its clear function that can’t be misinterpreted by the parser to mean something else. (Or at least it seems that way - I’m staying clear of I6.)

Yes, the ease of use in Inform 7 is partly deceptive. It may seem like english, but it’s actually just exactly the correct phrase to do the thing you meant. What I like about it, is that you can go back to old I7 code and see what it does fairly quickly.

What language you use, depends both on if you prefer to struggle with a programming language, or pseudo-english grammar - do you like algebra or english?

However, right now I’m battling Inform 7 for a different reason: I’ve finally decided to unlearn most of the grammar for the actions, and rewrite them all, because when you play (at least an Inform 7) game, you find things like “drop stone at wall” and “stand on box” to give you unexpected results, so you’re actually struggling with the parser as well. The plethora of unnecessary actions is doing its best to invite guess-the-verb puzzles like “smell shoe” or “look under table”. I like the engine, but the in-game parser and the rules, leave a lot to be desired. Maybe that’s different in I6 - I dunno.

Inform 6 will not be very illuminating about Inform 7. (Not until you get up to the level of expertise where you want ot start tearing I7’s parser apart. You are not there.)

However, learning Inform 6 is a great way to learn Inform 6, which is a powerful IF development tool with a traditional-programming-language syntax. Maybe that will be more comfortable for you.

If you’re used to C# you might prefer TADS, since it’s another C-like language. It may be worthwhile your taking a quick look at it. You might at least want to take a look at this comparison of TADS 3 and Inform 7 I wrote a while back (altough it is slightly out of date now, not least because since I wrote it each system has acquired some more of the features of the other). Again, at the risk of sounding like I’m expelling too much air through my own brass instrument, if you are thinking of looking at TADS 3 you might like to look at the alternative adv3Lite library I recently released for it.

On the other hand, you may find you’re perfectly happy with Inform 6!

Have you read the Inform 7 Programmers’ Manual? plover.net/~pscion/Inform%20 … ammers.pdf

Ok, well, I have read the Inform 7 Programmer’s manual, but not end to end, and it’s hard to retain. I guess I’m just a victim of the hyperlinked, metadata era, I need to learn with references and by doing… trying to retain a manual without practical application does little for me. I do just wish the Inform documentation was more cross-referenced and hyperlinked, exposing members and related functions etc. Oh well.

I guess I’ll try one more time to extend my Inform 7 knowledge, and if that doesn’t work, the fact that Inform 6 won’t really help with Inform 7 leaves me puzzled. The comparison of Inform 7 and TADS 3 is interesting, but what about comparing Inform 6 and TADS 3, since they are both languages that look like code? One reason I didn’t use TADS was that though I could sort of puzzle out the code itself if I looked at some source, since it is a lot like C languages, I had no idea what to do with the workbench… it was really unintuitive to figure out just how and where to install a simple piece of hello world code, so I decided to give Inform a try instead… the Inform interface is really nice… just open a sheet, write code, hit run… you don’t have a pane of files that make no sense without study!

When Workbench opens, the main pane should display a help screen; the first link is “Creating a New Game: Step by Step Instructions”. If you click on the link and follow the instructions (or just select File → New Project from the main menu) and work through the Wizard, Workbench should create the TADS 3 equivalent of a “Hello World” program for you (a game with one empty room and a player character located in it). Your source files are listed in the narrow pane towards the top left (under the heading “Source Files”). The library files are listed first - you can ignore those for now - and then, at the bottom of the list, should be the source file relating to specifically to your new game. If it isn’t open already, double-click on it in the list to open it in the Workbench editor and you should be ready to go.

TADS 3 has a considerably more powerful library. This is both a good thing and a bad thing. The T3 library does numerous complex things for you automatically – but when you start wanting to customize your game to do things that the library doesn’t handle, you may find it more frustrating than I6.

Once you get to know Workbench, though, you’ll find it very helpful. It keeps an automatic list of your recent run-throughs, for instance, so you can right-click to do an instant replay after making changes in the code.

Compiling for the WebUI in Workbench is, in my limited experience, more awkward. If I were writing a T3 game for the Web today (I’m not), I would write it in “vanilla” T3 first and then recompile it for the Web when it was nearly done.