Random idea I had a while ago and am considering making: An extension which can be added to any Inform 7 game and lets the player make up their own synonyms for things and actions. For example, lets pretend that you’re playing a game with Enchanter’s memorization system, and dislike having to type out “memorize” all the time. If the game used this extension, you could type the command “understand m as memorize” and then use “m” for memorizing spells. Or, if a game had a rideable horse and no other rideable things, you could type “understand ride as ride horse”, and then use “ride” to get on the horse. It will be prevented from overwriting existing vocabulary (eg. you can’t use “s” for something).
So, should I make this? Would it be at all useful?
I think alias systems like this are useful for text games in basically two situations, when the number of game verbs and interactions are huge, and when you are playing a game daily for a long time. For example, a mud qualifies in both these regards, and so alias systems are quite common (either implemented in the client, the game, or both). Furthermore muds are frequently real-time, where typing speed is critical, and aliases obviously help there.
However there are relatively few IF works like that, and I’d say that if your players are finding themselves abbreviating common commands in your IF, you probably should catch that at the testing phase and just implement the alias yourself.
Now if your IF was huge and meant to be played a lot (like a big RPG perhaps) I can see the utility, and it’d be worth it to develop the extension for that kind of game.
My early Mac (and X-windows) interpreters had a “macro” function – you could set cmd-numberkey combos to specific commands or partial commands.
I wound up never using that functionality, however. I’m not sure anybody else did either. Command-history (up and down arrows) and copy-paste, combined with reasonable abbreviations in the game, seem to satisfy people.
Beyond Zork had a system like this, where you could name your weapons and some NPCs. So if you didn’t want to type “ride pterodactyl” all the time, you could say “Name pterodactyl ‘bob’” and then refer to him as bob.
It seems like for naming objects, this could be done. Something along the lines of (I’m not 100% on this but…)
Horses-name is some text that varies.
After reading a players command, search for text that matches the variable of horses-name and replace it with “horse”.
Naming is an action applying to one visible thing.
Understand “name [something] [text]”.
Carry out- now the horses-name is the text understood.
Or something to that degree. or maybe saying “every thing has some text called a given-name”.
This could allow them to change some things names. The given-name of a thing is usually “blank”
For your verbs, you might try:
definition, a thing is named if the given-name of the thing is not “blank”.
does the player mean doing something to a named thing: it is very likely
does the player mean doing something to a thing which is not named: it is unlikely.
You ride the horse.
you could also put in rules for printing the name of a named thing:
say “[given-name of the thing]” instead.
For actions, it might be on the programmer to make actions easier.
Understand “r [something]” as riding.
understand “k [something]” as killing.
It’s slightly more complex to name things than what you just posted, because you need the name to be indexed text. But it is possible; see the example called “Fido” under Recipe Book > Vehicles, Animals, and Furniture > Animals.
Seems like it’d be more useful if it didn’t require the player to define the unknown words, but rather, parser errors would define any unknown words by the next valid command.
Of course, that’s easy to say but a hard problem.
Even as suggested, it would be nice to have a few games that explicitly experimented with player naming, just to see what kinds of experiences an author could construct using them. Allowing the player to name his own possessions, or the characters he meets if he doesn’t speak their language, invests the player in his world.