Why do you say that?
I’m not even sure why the Inform 7 way would be more “elegant.” By what measure? By conciseness, perhaps. The ability to have a lot of code handled by a higher-level construct can be nice. (Although anyone who uses Ruby on Rails may eventually learn that having a system do things for behind the scenes under the guise of higher-level code constructs eventually comes back to bite you. I don’t know if that’s the case with Inform 7 yet.)
This does show what I’ve been suspecting and have found now that I’ve played around with both systems. Inform 7’s natural language does make the “easy” stuff look good. It’s easy to read when it’s just some basic elements. But when I want to string together a series of actions and a series of rules the code starts to get a little more baroque. Combined with the fact that the rules are the only organizing principle but the rest is left up to either source code order concerns or the whims of the author, Inform 7 can easily become quite unreadable or, at the very least, the natural language aspects are lost because you have to traverse the code looking for various elements anyway. The Index certainly helps that, much like an object browser for OO languages.
Inform 6, from what little I’ve played around with it, is structurally similar enough to TADS 3 that I don’t think it has that same problem. Then again this also answers my interest in this thread. I really don’t see any benefit to using Inform 6 at this point. For me – at least with the system-level type languages for interactive fiction – TADS 3 and Inform 7 seem to be the players. I actually like many elements of ADRIFT, where there’s more of a builder aspect that allows you to dip into the programming only when you want to deal with more specific situations. But I’ve only looked at ADRIFT from afar at this point.
The advantage of Inform over TADS lies mostly in the existence of browser-based interpreters, which (in theory, at least) vastly broaden the potential audience for your games by making it much easier for newcomers to try out IF at all, or to try out your game. To me, that’s a significant factor.
If we set that aside, I would see no reason to work with Inform. Not that I’m writing a game this spring, but if I were…
It’s true that Inform has a concise way of setting up relations between objects. But you can accomplish the same thing in T3 using a foreach loop. Also, I’ve never been entirely sure what one would use relations for in an actual game. The examples I’ve seen – stuff like “now every guard dog that can see Michael hates David” – tend to be rather artificial. I mean, how often do people write games with multiple guard dogs that wander around the map?
My experience echoes yours: Inform 7 makes it easy for the beginning author to do easy stuff, but once you start trying to do complicated stuff (and I’ve observed plenty of plaintive queries from novice authors who jump right in and try to do complicated stuff!), the syntax of I7 proves to be (a) fussy, (b) poorly documented, and © subject to change when the next version appears.
I’m a little surprised browser-based elements are so much of a concern but I’ve seen that concern voiced as I’ve browsed the forum. The reason I say that is because it’s not that hard to have a game that bundles the interpreter, either via batch file or via an installer or even via something like TADS 3’s bundler mechanism. (Granted though that the bundler only works for Windows-based systems. I bet if that could be extended for a Mac installer/executable as well, that would be a major point in TADS’ favor.)
In terms of newcomers, having to download a game to play it is not really all that alien. World of Warcraft and Lego Universe are used by people of all ages (newcomers and experienced) and rarely is there a call for browser-based experiences. People download games from services like Steam all the time these days. Even homebrew venus, like Wintermute or AGS or the “visual novel” engines or just about all of them really, require downloading a game to play it. If people want to liken interactive fiction to “static fiction” as I’ve seen done, most people don’t like reading whole books via a browser. They usually get them in a mobi, epub, or pdf format and read them via some client application.
I don’t know. I guess if it’s something that people who play interactive fiction really want, then it does make a difference. I suppose part of this my natural reluctance to have any gaming experience in a browser. Having been a web developer (with libraries like jQuery and ExtJs) for many years, I’m often a little wary of emulating things within a browser environment. It also probably depends how much of a rich experience is preferred and/or can be delivered. For example, will web-based formats allow you to make UI or control aspects that a client application would? Maybe that doesn’t matter to people as much. I should probably play around with Parchment a bit to get a better feel for it.
I’ve been working on simulating ropes, and relations turn out to be a great way to do that:
connection relates various things to one rope.
I’ve also started using conditional relations a lot:
attachment relates a thing (called the first item) to a thing (called the second item) when the first item is connected to the second item or the second item is connected to the first item.
I think of conditional relations as adjectives that apply to pairs of things - Sometimes they’re a little more flexible than “to decide” phrases.
It’s true that you can model one-to-various relations with properties, but sometimes the syntax for relations looks better. It takes some getting used to, which is why I stuck with properties for a long time, but I’m getting the hang of it now. And you can’t do various-to-various relations with properties, which you might need for a more complex rope scenario.
Because of the steep learning curve with relations, I think it’s often not worth it to define new ones within an individual game. But I think they’re often the best thing to use when writing extensions. After all, many frequently-used features of the Standard Library are expressed as relations (containment, mapping, etc).
Just an impression. It might just be one or two people who’ve appeared in the last couple weeks…
That may have been true five years ago, but with the rise of casual gaming and browser-based games, it’s becoming far less so. Every additional step someone has to take to play my game is an additional chance for them to say, “Screw this, I’mo play something from JayIsGames.” We’re at a point in time where the problem many people have is not too little entertainment but too much. Given that, I want any player’s effort to go from being interested in my game to playing the game to be as minimal as possible.
I can’t claim to know too much about casual gaming but if the casual gaming crowd is the only niche interactive fiction is carving for itself, then I guess maybe the browser-based need is valid. Maybe getting the casual gamers to respond to interactive fiction – as opposed to shooters, 2D level scrollers, or whatever – will be a way to get those gamers to experiment more with other options in interactive fiction. Given that, I can almost see two tiers of interactive fiction authoring because a casual crowd’s game may not have the same breadth and depth as the non-casual crowd. Interesting dynamic to think about.
Even one new TADS 3 user posting new games on the IFDB and entering competitions now and then would probably do much to revive that system’s “momentum.” Hugo hasn’t been developed in years, but it still has some degree of momentum due to the efforts of three or four dedicated users who keep supporting and documenting it. I haven’t looked into the TADS 3 community, but I bet there’s a lot of momentum there that just isn’t immediately visible on the surface of the IF community as a whole.