[I6] Why not a Verb-Noun only Inform 6 library?

Wouldn’t a Verb-Noun only (two-word parser game) version of the Inform 6 libraries be possible? It would be interesting for beginners, gamer and game designers, and would be very efficient on old computers.
Most libraries, regardless of text-based game engines, tend to overdo it. This can be a bit scary for beginners, and we can spend a lot of time trying to tame the library that is supposed to make our job easier.

Adventuron to Inform 6 is in early stages.

Should work well on z3 targets.

1 Like

Great! Are you targeting an existing library or starting from scratch?

Starting from scratch.

Still using Inform 6 as the compiler but Adventuron"s model is not really mappable onto any existing library easily.

How much is about “taming the library” and how much is “the complexity of the language itself”? You can take the indirect objects out of I6, but you’re still… coding Inform. And you still have a target system that is full of attributes and properties that one might get tangled up in.

To make a direct comparison: although the Scott Adams format has a lot of limitations, you also benefit from the simplicity of just a few dozen instructions and about a dozen conditions. That’s it. That’s all you can do. Items are items and rooms are rooms and dark vs. light is implemented at the engine level and west is either associated with another room or it isn’t.

Are indirect objects really the problem?

2 Likes

Isn’t this a bit extreme? If you want to restrict your game to two-word input, just write it in such a way that it doesn’t require multi-word input. That means no containers or supporters, as these require commands like INSERT CARD INTO SLOT or PUT LAMP ON TABLE. You can modify the grammar definitions, as well.

The alternative is to write a brand new library and that is a lot more work than just using an existing library, even though the existing library has warts.

Let’s face it, the majority of your commands are going to be two words anyway, e.g. GET BOTTLE, EXAMINE BOTTLE, DROP BOTTLE. Why restrict it? If someone wants to type GET THE GLASS BOTTLE, then why shouldn’t they be able to do that?

1 Like

Forgive me extreme ignorance here, but, genuine question: what would the point of such a thing be?

Forgive me extreme ignorance here, but, genuine question: what would the point of such a thing be?

To be able to target pretty much any retro platform, plus modern platforms too.

But what is the advantage of running an Adventuron game in Inform rather than running an Adventuron game in Adventuron? Apologies for the silly question, but I’m just trying to understand the concept.

It’s just for portability. You gain that and you lose the other features of adventuron.

The z machine is more lightweight and does not have to carry a lot of the boilerplate code in adventuron.

Inform is much more powerful a language with which to express ideas than adventuron, but adventuron has its place as a simple way to write verb noun games. If you want to write verb noun games for z machine target computers there may be some benefit to coding in adventuron, or may be no benefit at all, depending on the experience level of the author.

1 Like

Thanks for the explanation!

For what it’s worth, there is a tool out there called Scott2Zip that converts Scott Adams format games from the TRS-80 ASCII format to Inform 5 source code. It’s pretty neat and seems to do a good job. It’s just a shame that it hasn’t been updated to produce Inform 6 source code.

The only reason for mentioning this is that the Scott Adams games are two-word input and the conversion process does not use the Inform 5 library, so this is somewhat similar to the Adventuron to Inform 6 approach.

So, maybe if you want two-word input in an Inform 6 game, you could write it in the Scott Adams format first, then port it to Inform 5 and compile to Z-code. With a lot of extra effort, you could convert the Inform 5 source code to Inform 6, but this whole process seems like a waste of time when you could just write the whole thing in Inform 6 in the first place and take advantage of multi-word input.

There were reportedly bugs in the old scott2zip conversion process. @heasm66’s Scott2ZIL seems to make un-borked Z-machine conversions from Scott Adams .dat files.

1 Like

It is quite possible to write a verb-noun game in Z-code without library. There is, for example, Michael Taylor’s Magic mirror game that I had converted to Z-code from a Python version (see my GitLab repository).
Many interactive fictions have been written in Basic in the past; the Inform 6 compiler allows you to create your own game from scratch much more easily than Basic.
But a minimalist library with a defined game loop could be a great help.

1 Like

I’m not saying that it’s not possible, I’m just saying that it’s extremely difficult and I can’t see the need for it. You will have to write your own input routines, parser, pattern matcher, grammar, action handlers and so on. You will also have to design the internal database for storing rooms, room descriptions, connections, objects, properties and game state; common routines for the game playing loop, background processing, displaying stuff on screen, saving and loading games and everything else needed for an adventure.

The string handling in Inform is abysmal and you will have to resort to Inform assembly language for some functions. You can write a good two-word parser in BASIC in about a dozen lines of code and the pattern matching is trivial. You certainly can’t write anything anywhere near that compact in Inform.

I’d personally stick to making verb-noun adventures with a system like DAAD, which targets platforms where that type of game would at least have a greater chance of being appreciated. The old systems, such as DAAD and the Quill, make verb-noun adventures unbelievably easy to create.

What would you envisage the extra benefits of a Verb-Noun Inform 6 library over something like PunyInform, in conjunction with interpreters such as Ozmoo, which already target and run on a huge number of retro 8-bit computers (including neglected machines like the Acorn Electron and… from the tweets I’ve been seeing on the subject… Gameboys and programmable calculators!)

If it’s possible on old computers, why wouldn’t it be possible to have “verb-noun adventures unbelievably easy to create” with the Inform 6 compiler ?
Do you find it so “unbelievably easy to create” adventure games with PunyInform?

I totally disagree with you. I will not discourage those who want to write a game, in Z-code with Inform 6 without the library. It’s much less difficult than you seem to say.

1 Like

I’ve not used Inform; it has always seemed like it probably would be too complicated for me. At the moment, learning a new system to just produce the types of games that I can very easily make with Quill-style authoring tools doesn’t really interest me.

You’ve not answered my questions, though. What advantages would a verb-noun Inform 6 library give an author? Would it make games easier to write or Inform programming easier to understand? How? Could you give some examples of how you’d see it working? These are genuine questions from someone who has been put off trying Inform because it’s always looked too complicated.

1 Like

If we spoke in French, it would be much easier for me to answer your questions; that’s why I sometimes dodge. (If you knew how difficult it is to deploy thinking, arguments in a language you don’t know much about. Don’t be too demanding !)

If you are a little familiar with programming, the Inform 6 language is not complex. The use of the standard library is.
There is no reason why a modern compiler like Inform 6, combined with a minimalist library, should not allow you to program games as easily as with InPAWS, for example.
The challenge is also to be able to create games in languages other than English.
I probably haven’t answered your questions, and I’m not forgetting Adventuron either.

1 Like

But, with my poor French, much harder for you to understand my questions. :smiley: