Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

A "meta-game" interface to IF programming

41 views
Skip to first unread message

cyrus....@gmail.com

unread,
Dec 19, 2006, 4:30:03 PM12/19/06
to
Fiddling around with Inform 7 has caused me to do some thinking outside
the box. While writing in it feels less like writing code than writing
in a more traditional programming language, debugging it does feel very
much like debugging code, and I began to ask myself, is there some
idiom that would make debugging feel less like debugging? And an idea
that has occurred to me, was, most would-be authors of IF are
(hopefully) familiar with the idiom of playing IF.

So I began thinking, it would be useful if there were a platform for
writing and debugging that felt very much like the interactiver parser
of an IF engine; in fact, the game would be written in the same engine
in which it is played, with the opening 'moves' made by a godlike PC,
control handed over to a more typical PC, and the game then saved.

A novice author, just barely familiar with the system, and needing to
frequently check their work, might begin:

> who am I?
You are the Author.
> where am I?
You are nowhere.
> make a room
You make a room.
> x it
It (the room) has no description.
> call it the dusky seashore
The room is now named the dusky seashore.
> x it
It (the dusky seashore) has no description.
> describe it 'The pebbly shore lies shrouded in deepening shadow, while the last rays of sunset still illuminate the tops of the cliffs behind you. To the north, a modest jetty juts out into the sea, somewhat ineffectually trying to diminish the surf. To the south, the cliffs are less steep, and you could clamber back up the way you came.'
It (the dusky seashore) is described thusly.
> go there
You are now in the dusky seashore.
> make a thing; call it a stone
You make a thing. The thing is now named a stone.
> give it synonyms 'a rock' and 'a pebble'
It (the stone) can also be called a rock or a pebble.
> give it synonym 'a cobble'.
It (the stone) can also be called a rock, a pebble, or a cobble.
> describe it 'A rounded, flattish stone, slightly larger than the palm of your hand. Pale green lichens cover one side.'
It (the stone) is described thusly.
> give it synonym 'lichens'
It (the stone) can also be called a rock, a pebble, a cobble, or
lichens.
> l
The pebbly shore lies shrouded in deepening shadow, while the last rays
of sunset still illuminate the tops of the cliffs behind you. To the
north, a modest jetty juts out into the sea, somewhat ineffectually
trying to diminish the surf. To the south, the cliffs are less steep,
and you could clamber back up the way you came.

A stone is here.
> make a thing; call it the sea; give it synonyms 'the surf', 'the waves', 'the ocean'.
You make a thing. The thing is now named the sea. It (the sea) can
also be called the surf, the waves, or the ocean.
> describe it 'While the clouds broke early this afternoon, a strong wind still blows in from the sea. The pound of the surf fills the air down here with a cold mist that quickly saturates your clothing, your hair, your life.'
> l
The pebbly shore lies shrouded in deepening shadow, while the last rays
of sunset still illuminate the tops of the cliffs behind you. To the
north, a modest jetty juts out into the sea, somewhat ineffectually
trying to diminish the surf. To the south, the cliffs are less steep,
and you could clamber back up the way you came.

A stone and the sea are here.
> Make the sea scenery.
The sea is now scenery.
> l
The pebbly shore lies shrouded in deepening shadow, while the last rays
of sunset still illuminate the tops of the cliffs behind you. To the
north, a modest jetty juts out into the sea, somewhat ineffectually
trying to diminish the surf. To the south, the cliffs are less steep,
and you could clamber back up the way you came.

A stone is here.
.
.
.

While my Inform skills are still embryonic, (so don't take this as an
announcement of future vaporware) it would not surprise me to learn
that such an IF meta-game could be implemented on the z-machine itself.

Khelwood

unread,
Dec 19, 2006, 4:47:03 PM12/19/06
to
Simple things are easy to do in simple language. But if you were
creating an actual game like that you'd have commands like:

--
What now?

>Make a creature called the troll who prevents you going northeast with the message "The troll blocks your path" unless you've given him some treasure and haven't crossed the bridge since then or unless the bear has killed the troll or the bridge had been destroyed.

The troll has been thus made who will prevent you going northeast under
the given circumstances.
--

That's not so easy.

u...@mail.ru

unread,
Dec 19, 2006, 10:01:00 PM12/19/06
to

The example with the troll shows it pretty well. Plus, personally for
me (although I can't speak for everybody) the continuous prompts would
become more and more annoying with the time; it'd be really easier to,
say, just add a few synonyms to an object without any ceremonies.

I also wonder how one can make the correction procedure convenient
using the prompt-based development ("convenient" means without retyping
the whole previous description). What I mean is, if accidently typed
the following description for the dusky seashore

> describe it 'The pebbly shore lies shrouded in deepening shadow wile the last rays of sunset still illuminate the tops of the cliffs behind you. To the north, a modest jetty juts out into the sea, somewhat ineffectually trying to diminish the surf. To the south, the cliffs are less steep, and you could clamber back up the way you came.'

How would you insert the missing comma after "deepening shadow", and
correct the word "wile"? You'd have either to retype the whole
description, or enter something like

> insert ',' in the dusky seashore description after 'shadow'

Done. Description of the dusky seashore now looks like this:
The pebbly shore lies shrouded in deepening shadow, wile the last rays


of sunset still illuminate the tops of the cliffs behind you. To the
north, a modest jetty juts out into the sea, somewhat ineffectually
trying to diminish the surf. To the south, the cliffs are less steep,
and you could clamber back up the way you came.

> in the dusky seashore description, replace word 'wile' with 'while'

Done. Description of the dusky seashore now looks like this:


The pebbly shore lies shrouded in deepening shadow, while the last rays
of sunset still illuminate the tops of the cliffs behind you. To the
north, a modest jetty juts out into the sea, somewhat ineffectually
trying to diminish the surf. To the south, the cliffs are less steep,
and you could clamber back up the way you came.

Such a correction is too bothersome for me, and I don't see a way to
make it easier. Maybe someone else sees.

Valentine

Bongo Bill

unread,
Dec 20, 2006, 1:43:44 PM12/20/06
to
> The example with the troll shows it pretty well. Plus, personally for
> me (although I can't speak for everybody) the continuous prompts would
> become more and more annoying with the time; it'd be really easier to,
> say, just add a few synonyms to an object without any ceremonies.

Simply enough handled, if you add enough verbs (and, perhaps, let the
user define them on the fly). Say, for example,
> add the following synonyms to the gun: "pistol", "firearm", "six-shooter", "bullet throwing device"

That's easy. Have the program reload the last line when the user hits
the up key or ctrl-up or somesuch.

I think this is a very promising idea, though it would desperately need
a means to display and edit the source code in a more conventional
manner.

madd...@gmail.com

unread,
Dec 20, 2006, 6:22:18 PM12/20/06
to

cyrus....@gmail.com wrote:

>
> So I began thinking, it would be useful if there were a platform for
> writing and debugging that felt very much like the interactiver parser
> of an IF engine; in fact, the game would be written in the same engine
> in which it is played, with the opening 'moves' made by a godlike PC,
> control handed over to a more typical PC, and the game then saved.
>


Check this out. http://www.netjam.org/quoth/cloak/

I didn't find that link myself, I actually stole it from
http://nbhorvath.blogspot.com/

u...@mail.ru

unread,
Dec 20, 2006, 10:18:37 PM12/20/06
to

"""Bongo Bill wrote:
"""
> > The example with the troll shows it pretty well. Plus, personally for
> > me (although I can't speak for everybody) the continuous prompts would
> > become more and more annoying with the time; it'd be really easier to,
> > say, just add a few synonyms to an object without any ceremonies.
>
> Simply enough handled, if you add enough verbs (and, perhaps, let the
> user define them on the fly). >> Say, for example,
> > add the following synonyms to the gun: "pistol", "firearm", "six-shooter", "bullet throwing device"

Yeah, but it's still easier for me to just find the gun in my code and
key in the synonyms. This way, I spare typing the long "add the
following synonyms to the gun" sequence.

That's great if you noticed the mistakes immediately (or at least
shortly) after typing the description in. If you didn't, or if you
started a new working session for the game in development, that's not a
solution. (You know, the idea in general really reminds me of the old
line-based text editors - ed in UNIX, or edlin in DOS. I wonder how
many people use them now...)

Besides, as the number of objects in the game increased, the author
would start having problems keeping track of what exactly object he has
to handle (you know, things like "what seashore you mean: the seashore,
the dusky seashore, or the tropic seashore?" And you wouldn't be able
to work around this issue by using "all";)

> I think this is a very promising idea, though it would desperately need
> a means to display and edit the source code in a more conventional
> manner.

That's true, although I'd rather see the prompt-based interface as a
tool for authors completely new to IF-games development. More
experienced folks probably would prefer the more traditional way
(although, again, I can't speak for everybody).

Valentine

Brendan Guild

unread,
Dec 21, 2006, 4:11:37 AM12/21/06
to
u...@mail.ru wrote:
> The example with the troll shows it pretty well. Plus, personally
> for me (although I can't speak for everybody) the continuous
> prompts would become more and more annoying with the time; it'd be
> really easier to, say, just add a few synonyms to an object
> without any ceremonies.

I have recently been pondering something similar, so I think I will
share my thoughts. My idea strongly resembles this, but also has
features that could not be implemented as an IF meta-game.

For brevity, I would definitely want to start in an empty room, since
every game has at least one room. I wouldn't have to explicitly
create rooms 'make a room' and then add exits as the original example
suggested. Instead, I would have the direction commands automatically
create new rooms as appropriate as I move around.

Instead of 'make a thing', how about just dropping the thing as if I
already had it in inventory? That way it gets created and named in
the same intuitive motion. If I actually wanted to put something in
the player's initial inventory, I'd do it by 'get'. Effectively,
every potential thing is magically within reach and being carried by
the player, just waiting to be gotten or dropped into existence.

I would not have a 'describe' command, that is just too awkward for
entering large amounts of text. Instead, that facility could be more
intuitively handled by the 'look' command, as if actually playing.

This relates to the next point:

> I also wonder how one can make the correction procedure convenient
> using the prompt-based development ("convenient" means without
> retyping the whole previous description). What I mean is, if
> accidently typed the following description for the dusky seashore

> [snipped description]


> How would you insert the missing comma after "deepening shadow",
> and correct the word "wile"?

> [snipped promped based substitution commands]


> Such a correction is too bothersome for me, and I don't see a way
> to make it easier. Maybe someone else sees.

Instead of "describe the dusky seashore '...'" which forces you to do
the entire description on one line without letting you easily go back
and edit later, I would have it so you just type "look" to get a
description of the seashore to print out for you, and then edit it
freely.

You can look at whatever you want just as in the game you are
creating, and initially it would give you a generic empty
description, but it the text of the game would not be static as it is
in an actual game, it would be free-form as though it was all in one
big text editor. If you edit the text below a 'look at the table'
command, then you are directly editing the description of the table.
You could go back and edit old descriptions either by scrolling up
through the history or by looking again.

In the same way, it could intuitively let you modify many messages
seen by the player. When you move from one room to another it will
give you a small generic movement message and editing that would edit
what the player sees when doing the same move during the game.

For NPCs you can 'ask Bob about the MacGuffin' and then fill in the
resulting conversation text beneath the command.

This won't work well for anything complicated and so it certainly
cannot take the place of programming entirely, but for blocking out
the basic structure of a game it could be a really amusing tool to
include with an IDE.

u...@mail.ru

unread,
Dec 21, 2006, 1:16:26 PM12/21/06
to

"""Brendan Guild wrote:
"""
> u...@mail.ru wrote:
> > The example with the troll shows it pretty well. Plus, personally
> > for me (although I can't speak for everybody) the continuous
> > prompts would become more and more annoying with the time; it'd be
> > really easier to, say, just add a few synonyms to an object
> > without any ceremonies.
>
> I have recently been pondering something similar, so I think I will
> share my thoughts. My idea strongly resembles this, but also has
> features that could not be implemented as an IF meta-game.
>

You know, as I'd been on my way to work today, I had the same idea;).
(Although editing by scrolling up probably would be a pain to
implement).

> In the same way, it could intuitively let you modify many messages
> seen by the player. When you move from one room to another it will
> give you a small generic movement message and editing that would edit
> what the player sees when doing the same move during the game.
>
> For NPCs you can 'ask Bob about the MacGuffin' and then fill in the
> resulting conversation text beneath the command.
>
> This won't work well for anything complicated and so it certainly
> cannot take the place of programming entirely, but for blocking out
> the basic structure of a game it could be a really amusing tool to
> include with an IDE.

Yeah, just as I said - mostly an aid for novice authors, although it'd
really be amusing.

Valentine

Brendan Guild

unread,
Dec 22, 2006, 5:24:14 AM12/22/06
to
u...@mail.ru wrote:
>
> Yeah, just as I said - mostly an aid for novice authors, although
> it'd really be amusing.

It could also be a great testing tool for any author. Imagine if you
could play your game and at any time modify any description that you
see without having to leave the game. If you see a typo you can
correct it instantly.

It would be great for editing the text of the game while right in the
flow of things to give the story a fluid feel. You don't have to
imagine how the game plays when you are writing the text; you can
actually be playing it.

It could probably allow you to edit any message that gets displayed
to you, though it might have to stop you from editing text that is
dynamically generated. If it sophisticated enough, it could be a huge
benefit to even an experienced author.

u...@mail.ru

unread,
Dec 22, 2006, 5:51:46 PM12/22/06
to

The keyword is "sophisticated enough". It'd certainly would be
interesting to at least have a look at a system that would allow you
editing not just the basic descriptions but also most verb responses
for various objects using the "meta-game" interface, and maybe even let
you define condition-based descriptions, but personally I really can't
make any statements about which way of game development I'd prefer
until I see it working.

However, if it only allows the editing of basic (and static) object and
room descriptions, it's still just an aid for novice authors - at
least, in *my* eyes.

Valentine

0 new messages