Inform 7 is good, but...

With the right extensions though, Inform can do everything you are talking about!


Oh, I’m tempted, but there just aren’t enough hours in the day.

Since I7 can do these things (see various extensions), the question you should be asking is why authors don’t usually choose to include them.

Yeah. My own punt on this is that I think extensions are a bit daunting.

In the beginning (of your experience with i7) you have to become aware of the idea of extensions, and verify it by going out to the extensions website. At that stage it may still fairly abstract as to what they are and what they might be able to do. And there’s so many of them.

Once you’ve got to the stage where you might add one or more to your game, then you start to acquire some familiarity with where to look, how to use them, and the final challenge is simply knowing what’s already been done in extension form. That part remains a challenge even once you’re experienced, since you simply can’t know it all - you need to search the library carefully, or ask other programmers: ‘I wanna do such and such’ and they say ‘Oh yeah, try extension Yada Yada.’

The whole thing may be symptomatic of i7 being easy to start with, thanks to the natural language, but ultimately very powerful, and therefore being like other complex programming systems which have lots of add on pieces.

For Timewalker, the i7 extensions that do things you spoke of are:

  • Exit Lister by Eric Eve (Customisable exit listings in status line, exits command, etc.)

  • Automap by Mark Tilford (Gives you an ascii automap)

  • Glimmr Automap by Erik Temple (Gives you a graphic automap)

  • Wade

THe problem with i7 extensions is that when you use one, you normally bring in a lot of extraneous code you don’t need, but which is there to make sure the extension works universally. If you had written the function yourself, you never would have written half those exceptions and cases. If you decide to use a lot of extensions in order to replicate the behaviour of more sophisticated games, then your game becomes incredibly bloated and slow, and you’re wondering, ‘Gee, how did all those other devs include so many huge extensions.’ Well, they didn’t. They probably only included bit & pieces of the huge extensions, for performance’s sake. They hacked like crazy.

Note that the only reason that this isn’t a ‘problem’ in other systems is that I don’t have a choice. It’s the ur-developer who decides what libraries are loaded or not loaded into my game. I don’t have control, so I don’t think about it with this level of granularity anymore. Instead I judge the whole development system based on its performance and it will almost certainly lose to basic Inform on that level, because nothing beats basic Inform on performance – yet.

Also, as long as there is still a tool that lets me use my own text editor and just engage the IDE for compilation only, that’s the one I’m gonna use. I don’t know what Quest’s IDE is like – so this is just FYI as to why alternate creation systems are usually dismissed by me. They attempt to lock me in; they are so eager to prove that their development environment is awesome that they don’t wanna let me out because I should just love it that much. Bad move. If you are unwilling to let me code everything in a text editor and just let me use your development ‘environment’ as a (preferably commandline) compiler, then I am probably not interested regardless of its awesome features.

EDIT: Added a couple of paragraphs.

Do you have first-hand experience or are you just speculating?

I don’t know what performance problems you’re running in to, and to be honest, I’m sceptical of what you’re saying, but if you have identified performance problems please do start a new topic and explain more about them.

First-hand. My game got bloated to the point where it was taking several seconds for every prompt to appear. Removing most of the extensions and replacing them with custom code, solved the problem entirely. I did not optimise any of my own code to solve this: it was all the extensions. YMMV.

P.S. In that vein, I really recommend people avoid using ‘Written Inventory’ and find a way to hack whatever you need into the inventory with your own custom code. The same goes for several other popular extensions, but Written Inventory is one of the worst, especially since it seems so innocuous.

Well I solved these problems more than a year ago now. I don’t think I really can bring all of the relevant info to mind, anymore. I would say if somebody wishes to avoid the problems I had, at least avoid ‘Written Inventory’ and ‘Custom Library Messages’ – hack these changes yourself, instead – it’s what I had to do.

Doesn’t this topic belong in General Game Design, since it is contrasting systems?

I dunno. I think the original comment was prompted by not knowing that Inform could do a few particular things. I think the topic is mostly going to be tech talk about i7 performance now.

For instance! - I can say I’ve used Custom Library Messages in every project of mine, and I’ve not noticed it ever caused any problems. Apparently the kind of functionality it offers is also going to be in the next version of Inform by default.

I’ve only seen my performance slow down in little increments in the Mac IDE’s strict mode, just on a ‘the more I add, the microscopically slower the game runs’ basis - with a few bigger exceptions, particularly if I add graphics. But once I try the build out on Gargoyle or any fast interpreter, the differences are invisible. From hearsay, I understand performance differences are mostly apparent in playing-online circumstances, and on particularly big projects, depending on their content and nature.

  • Wade

I doubt it. I’m not complaining or filing a bug report so I don’t really see a need for an argument; it was just a conversational observation, based on my personal experience. If it’s actually generally wrong in most people’s experience, then it’s wrong, and I’m wrong. But I am not bullshitting. That’s a silly accusation that should be beneath everyone, if that’s the accusation being made above (tough to be sure). BTW I learned my lesson already on filing bug reports – don’t. Too many things I don’t know; last time I filled one out, I made a fool of myself, and said I wasn’t going to file them anymore, and it’s not like anybody objected and said ‘no! we need your input’. I typically just solve things or work around them on my own, or if I can’t, I just ask here. I do not make sure everybody knows about my problems, and in this case I had no real reason to because I solved the issue already to my own satisfaction. Inform 7 is great. Rah rah rah! 8)

Written Inventory was really the worst offender; removing it made biggest difference. I suspected there was some negative interaction either with CLM or with Rideable Vehicles, but I couldn’t be sure and you know what? They were not that hard to replace. So I just did that.

With Custom Library Messages, I was stuck on the old version because the new version for some reason did not import all of the use cases from the old one, and my favourite use case wasn’t included. So I didn’t really test the performance of the new versioin, because it just didn’t do the actual job. I haven’t checked more recently, though. I think I did complain about this once, very briefly in passing. If people were paying attention, maybe the missing use case has already been added. But I did not file a bug report. 8)

Quest has an IDE which most people use, as it shows most things in plain English, but there is a programming language behind it - so you can code in a text editor too. See … teh-codez/

I’m also concerned about lock-in, which is why it’s open source under a very permissive MIT style licence - if I disappear along with my website, you’ll always be able to edit and play games, and if you don’t like the direction I’m going with Quest, you have the power to take it somewhere else.

I usually end up making custom extensions to do the job.

Also: if the current exits-listing extension slows down Inform due to “extraneous code you don’t need, but which is there to make sure the extension works universally” – then making Inform perform these functions by default would entail exactly the same slowdown.

Wait, when was this? I see three reports from you, all of them solid.

At any rate, I object. Bug reports are important so that these things get fixed. And false reports happen—almost a quarter of what comes through Mantis doesn’t survive the initial triage, even from highly knowledgable reporters.

It was the one about the Inform doing math wrong? I was doing units & measures, and it kept coming out wrong. I documented a whole bunch of it and come on here all full of beans as I’d found wrong math. There was a thread wherein I wanted to post a bug report – I think I actually did but anyway, it turns out that most of what I was talking was wrong; I had just misunderstood the principles behind the way Inform does that kind of math. I found it quite embarrassing, and I’m pretty sure I said that I didn’t really want to file anymore bug reports. I definitely felt that!

Possibly I am oversensitive.

Thanks for the reassurance on that. I could have used it last year! LOL

EDIT: Looks like I didn’t say anything about how embarrassed I felt at all. At least not in the thread about it. Also, it was more than two years ago now! Not one (man – time flies).

I find that the most effective way to avoid feeling foolish is to play the role of the fool to the hilt. Then when I truly am being foolish (which is all too often!), nobody notices. :smiling_imp:

But bug reports are very important! If I had a squamous tentacle for every time someone else has found a bug that I’d have never discovered on my own, for whatever reason, I could make calamari for everyone on the internet!

Heh. Thanks, Leaf! You’re right of course. But I just lost my confidence in my own ability to report quality bugs for Inform, for a while. I didn’t want to waste anyone’s time. Or at least, if anyone did that, I didn’t want it to be me. I think I am a bit more relaxed now about my place in the community – I mean, I know I don’t really fit in, and anyway I can’t really abide ‘hanging out’ regularly enough to really form relationships on web forums or newsgroups, and to boot, I have widely divergent opinions from almost everybody, but I am cool with it, as long as people aren’t too unfriendly.

To be fair, that bit of mathematics can be tough to get your head around sometimes. Also, Inform definitely has problems with arithmetical calculations, so you were close!

The way I see it, if you do report something and it turns out that Inform 7 is working correctly, the team will explain this and you’ll be wiser for it.

As we always say, it’s better to ask or report and be a fool for a day than not to and remain a fool forever!