Evaluation of Inform - Part 2 Taken from the "Which Authoring System is Better" FAQ By Bob Newell (bnewell@gobblernet.sputnix.com) @~Concluded from Issue 65 8. Literature Library, Weight 4. Rating: 4. The Inform literature library has developed significantly in the past years. While the library of source code does not equal that for TADS, it is still large enough to provide numerous examples of how things are done. The de rigeur port of Colossal Cave is available, and smaller examples such as Toyshop and Balances were written to illustrate specific Inform features. The Inform literature library lacks large source code examples equal to Legend and such examples are unlikely to be forthcoming (although Graham Nelson is contemplating future release of the source to Curses). Nonetheless, there is more than enough presently available to be of great utility. 9. Debugging Features, Weight 4. Rating: 3. Inform has a few built-in debugging features, but they are not especially convenient and often more oriented toward debugging the compiler rather than debugging the game. The archive site has some "wizard" routines which help in debugging, and some of the interpreters have useful debugging features, such as watching the movement of objects. A source level debugger called "Infix" has been on the horizon for quite some time, and indeed, support for Infix debugging is built in to the Inform compiler. I have no further information about Infix, however. 10. Future Prospects, Weight 3. Rating: 5. Inform releases are reasonably frequent (from my alternate viewpoint as a port maintainer, less is better!) and generally of significant content. Graham Nelson retains a strong interest in his product. Version 6 is on the horizon as of this writing. All of this and the availability of all source code means that future prospects for Inform are very good indeed. 11. Object Orientation, Weight 3. Rating: 4. Inform calls itself an object-oriented language, and indeed it meets a loose definition of object orientation. It is possible to define classes; multiple inheritance exists, as does overriding and a rather limited amount of data encapsulation (limited by the fixed property and attribute arrangement of the Z-machine). Methods can be arbitrarily complex and can be deployed in the expected places. Cross-calling methods from other objects can be done indirectly, although this is sometimes a nuisance. All of this lends Inform an object-oriented feel, as opposed to the more "strict" definition of object-orientation followed by TADS. I'd make a analogy here with the differences between C++ and Smalltalk. But for the author, the main features and advantages of object-orientation are fully available. 12. Game Size, Weight 3. Rating: 4. I'm rating this the same as TADS for different reasons. Recall that TADS can produce extremely large games at the expense of some run-time compatibility. Games produced by Inform probably cannot be as large as TADS games, yet they can be very, very large indeed in the Z8 format, and quite large enough in the Z5 format. The Z8 format also sacrifices some run-time compatibility (but considerably less so than TADS). What does this mean? Although I can't see a rating of "5" here for any system, until very large games are produced without impacting the runtime compatibility of a lot of platforms, still, the prospective author is not going to run into very many limitations here. A game such as Legend or Jigsaw can take years to produce. Most efforts won't push the limits of Inform's Z5 format, let alone require or be constrained by the Z8 format. 13. Distribution Policy, Weight 3. Rating: 5. Graham permits unrestricted freeware, shareware, or commercial distribution of games produced with Inform, asking only that a credit line appear in the game titles. Since free runtimes of high quality are available, distribution of Inform games is virtually without limitation. 14. Programming Skill Required, Weight 3. Rating: 3. As is the case with TADS, Inform is not the place to begin to learn how to program (although there are those few who have actually done just that). Familiarity with C would be extremely helpful; a background in Pascal would be the next best thing. The Inform manuals are not written at the beginning programmer level, either, instead implicitly contemplating a good familiarity with the basic concepts and constructs of a C-like language. Should the prospective new author without programming experience turn away from Inform (or TADS for that matter)? Not if the author is willing to take the time to become a reasonably good programmer. (If this is not the case, ALAN is an easier starting language.) Inform makes demands upon the author, as a powerful system will. Yet, once the learning curve is traversed, the rewards become well worth the effort. Inform is not easy; neither is TADS, C++, Smalltalk, playing the violin, or reading Aramaic. There is no free lunch or free ride; you have to put in your time up front. 15. Cost, Weight 2. Rating: 5. Inform is genuinely free. 16. Source Code, Weight 2. Rating: 4. All source code for Inform is readily available for every platform on which it runs (actually contained in a single version with multiple #ifdefs.) The code compiles on a wide variety of C compilers, from the humble Quick C to the powerful GNU gcc. However, I rate this category as 4 instead of 5 because possession of the source code does not mean you are likely to do a lot with it. I have spent a lot of time digging in this code, as the "generic" DOS port was at first pretty difficult; and I can say with complete assurance that the code is not to be trifled with. (This should not be surprising. Complex programs are often made up of complex code.) 17. Compiler Speed, Weight 2. Rating: 3. Inform compile times are noticeably slower than compile times for other authoring systems; previous informal benchmarks showed them to be consistently about twice that of TADS. I have not determined a reason for this. How serious an issue is this? On a slower platform, using the "generic" non-386 PC port of Inform, it could become an annoyance in developing a large game. Colossal Cave required five minutes or so to compile on my old (now gone) 186 portable. The same thing, of course, compiles in a couple of seconds on my Pentium 133 running Linux, so it's all relative. You will have to weigh the contemplated size of your game, your development platform, and your operating system and determine for yourself how important this may be. But on a "reasonable" modern machine, compilation in five seconds compared with compilation in ten seconds is not really an important matter. Again taking a reverse view, you might argue that slow compilation encourages you to code more carefully in the first place. You decide. 18. Compiler Platforms, Weight 2. Rating: 4. Inform has been ported to most all the popular platforms, and with availability of source code that is now rather clean, further ports should be no problem. Unix ports are trivial; the only platform with a doubtful future is the sub-386 PC platform. This port has been really difficult to keep up, and when Inform moved from release 5.4 to release 5.5, the libraries and code grew to a point at which the amount of free memory required crossed my "threshold" value of 580k. Much beyond this point, we're starting to talk about special boot configurations and a fair amount of hassle to compile even small games. I thought this was unimportant - who is still depending on a sub- 386 PC? - and found that there are more prospective authors than I had expected who are using older equipment. So, for this reason, I assign a rating below the top level. 19. Dynamic Object Creation, Weight 1. Rating: 3. Well, it's not that you can really do dynamic object creation in Inform but you can effectively fake it if you get deep enough into the advanced coding facilities of the language. But much more importantly, you can easily distinguish between many examples of a like object, such as snowflakes. So I'll go with a middle rating here. Summary Comment. Inform has come a very long way and is solidly in the top tier of today's interactive fiction authoring systems. It has its own individual programming feel which is different from many other systems. It has an excellent library and a good set of facilities. Support is easily found and of top quality. While it still reflects limitations imposed by the Z-machine structure, it goes well beyond anything Infocom ever had for their own use. I think those folks would be pretty surprised at just how much Graham has done with their original ideas. So, TADS or Inform? My answer is, of course, simply, "yes." - o -