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

IF Library: The Next Generation

28 views
Skip to first unread message

okbl...@my-deja.com

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
OK.<deep breath>

What should the next generation IF library have in it?

I want realistic specifics. Not "better NPC AI", for example, but "An
NPC system that logs events the NPC is aware of, which can be used to
influence the NPCs state when acting or reacting."

Also where should this library be? Is it possible/plausible/feasible to
have a universal IF library? That is, one that works for both TADS and
Inform (and other similar 3GLs)?

While we're at it, could we agree on what new structures a parser should
be able to accept?

And, would you, personally, be willing to work on such a library, were a
spec written out?
--
[ok]


Sent via Deja.com http://www.deja.com/
Before you buy.

Todd Nathan

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
What system (if it is system specific) would you want to
start with on an IF library. TADS, Inform or what. That
is going to make a difference for me personally, knowing
what I do it may also influence others.

\t

--

Please remove dot nospamski dot from the return address.

----------

M. David Krauss

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to
Um.. Gee.. Are you planning something, maybe? Heheh.

Okay, I can give you one nearly-concrete answer right off the bat:

No, it is almost certainly not feasible to have one universal library.

It's hard enough for professionals making a living off of it to maintain one
library across languages as similiar as, say, C, C++, and Objective C. To
attempt one Universal library is the sort of thing most programmers would
reject out of hand as impossible.

-=+However+=-
You never do know. If someone figures out a way to do it, I'd be surprised, but
not shocked. Before object-oriented programming was concieved of, a lot of the
things we can do now were considered 'impossible'. So maybe all you'd need is a
new approach or tool or (dare I say it) paradigm.

At any rate, I would be pleased to contribute some work on it.

okbl...@my-deja.com

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to
In article <7um18j$2is4$1...@newssvr03-int.news.prodigy.com>,

"Todd Nathan" <todd.nospamski.@palomablanca.net> wrote:
> What system (if it is system specific) would you want to
> start with on an IF library. TADS, Inform or what. That
> is going to make a difference for me personally, knowing
> what I do it may also influence others.
>
> \t

My inclination is to say "pick one", since I don't perceive a huge
difference between the two. I'm not talking about bug fixes here but
the next major, incremental step up.

But if you need a specific one, let's say TADS, since WordClass and the
various other libraries seem to suggest that TADS users are more open to
wholesale library changes.

okbl...@my-deja.com

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to
In article <940485557....@news.detroit.mi.ameritech.net>,

M. David Krauss <Fa...@frodo.com> wrote:
> Um.. Gee.. Are you planning something, maybe? Heheh.

Me? Nah. The question arose: Why don't IF tool designers collaborate
more?

> Okay, I can give you one nearly-concrete answer right off the bat:
>
> No, it is almost certainly not feasible to have one universal library.
>
> It's hard enough for professionals making a living off of it to
maintain one
> library across languages as similiar as, say, C, C++, and Objective C.
To
> attempt one Universal library is the sort of thing most programmers
would
> reject out of hand as impossible.

My feeling is that the rejection would be based on preferences rather
than impossibility.

> -=+However+=-
> You never do know. If someone figures out a way to do it, I'd be
surprised, but
> not shocked. Before object-oriented programming was concieved of, a
lot of the
> things we can do now were considered 'impossible'. So maybe all you'd
need is a
> new approach or tool or (dare I say it) paradigm.
>
> At any rate, I would be pleased to contribute some work on it.

Well, that's *something*! I don't think IF authors are necessarily
intractable. I think if someone came up with a good spec, he'd get some
help. Like Zarf's I/O spec seems to have attracted followers.

chads...@my-deja.com

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to
In article <7ul94f$nfv$1...@nnrp1.deja.com>,

okbl...@my-deja.com wrote:
> OK.<deep breath>
>
> What should the next generation IF library have in it?

A lot more.

> I want realistic specifics. Not "better NPC AI", for example,

Just what I was about to say!

> but "An
> NPC system that logs events the NPC is aware of, which can be used to
> influence the NPCs state when acting or reacting."

How'd you know? Okay, a bunch of things to do with AI:

* Emotions. Probably certain emotions such as anger, sorrow, and joy.
There could be a numerical value to signify how much of that the NPC is
feeling (or the PC, for that matter) and also a list of objects and
numerical values to show how strongly the character feels in that way
about that object.

* A messaging system. Probably it would consist of a text message (or
several) to be displayed, and the data that the message signifies.
Characters and tape recorders should be able to pass along the text
message, and change the data (add to it, take from it, or leave it
alone).

* A system for characters to evaluate and complete goals. Not just as
simple as traveling to a certain location, but also searching for a
character (where was he last? Did he say he was going to go anywhere?)
and even complex story goals, such as solving puzzles or completing the
goal of the story (make it out alive, get rich, kill the Evil Tyrant,
etc.)

> Also where should this library be? Is it possible/plausible/feasible
to
> have a universal IF library?

In a way, no, because not everyone would want the same library, but
there could be addons to modify the main library, so maybe so.

> That is, one that works for both TADS and
> Inform (and other similar 3GLs)?

Um, maybe. Some possibilites:

1. Programmers update the main library, and then the libraries for each
system. Kind of like making the interpreters for each platform.

2. Authors of IF systems make their systems able to read a universal
language that the library is written in.

3. Some program is made which can translate between languages.

4. We exalt one system over all the others, and torch those authors so
they can never be rewritten. (Probably a bad idea.)

> While we're at it, could we agree on what new structures a parser
should
> be able to accept?

First, we need to decide what the best interface for IF is. I don't
mean something other than the traditional command-line, but should a
player be able to type natural language to characters? Would this make
some puzzles far too difficult to solve for many people?

> And, would you, personally, be willing to work on such a library,
were a
> spec written out?

The spirit is willing...

I'd love to help, but I'm really busy. And saying that I would do
something is the best way to make sure I never do it. But I'd like to
feed ideas into other people and let _them_ do the hard stuff. :)

Chad Schultz (chads...@hotmail.com)
--------------------------------------
When you make a piece of interactive
fiction, you put part of your soul
into it. It comes as no surprise that
commercial IF authors sold their soul.

Andrew Plotkin

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to

No, let's say Inform, since WorldClass and the various other libraries
suggest that TADS already *has* some good alternate libraries. And Inform
doesn't. :-)

--Z

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."

BrenBarn

unread,
Oct 22, 1999, 3:00:00 AM10/22/99
to
>What should the next generation IF library have in it?
The ability for the programmer to do everything the compiler can do. This
means being able to define default properties, create property names
automatically using existing identifiers (i.e., if the object's name is Rock,
it automatically has a property named RockWeight), and in general mess with the
innards of the game.
I would also suggest a "verb tree" (like the object tree) that allows
programmers to define classes of verbs with similar characteristics and
syntaxes.
No defined capitalization rules. AnYboDY cAn caPITaLize anY Way thEy WANt
tO. :-)
And now for the big one (so general it'll make you scream :-): As few
architecture restrictions as possible. Not only the game world, but the
behind-the-scenes workings of it, should be as plastic and moldable as
possible.
And all this should be easy. There shouldn't be funky syntax with numbers
standing for words or objects.
Looking back, I realize that I probably failed to satisfy the "specifics"
criteria. Sorry, but I just like to give ideas. Also, some of these ideas may
not be possible just through library modifications.
Again, sorry if I didn't answer the question the way you wanted me to.
:-S.

From,
Brendan B. B. (Bren...@aol.com)
(Name in header has spam-blocker, use the address above instead.)

"Do not follow where the path may lead;
go, instead, where there is no path, and leave a trail."
--Author Unknown

BrenBarn

unread,
Oct 22, 1999, 3:00:00 AM10/22/99
to
>* Emotions. Probably certain emotions such as anger, sorrow, and joy.
>There could be a numerical value to signify how much of that the NPC is
>feeling (or the PC, for that matter) and also a list of objects and
>numerical values to show how strongly the character feels in that way
>about that object.
In my opinion, if you do this, you must provide a way for the programmer to
add, delete, change, and in genral wreak havoc with the predefined emotions (if
there are any, as you seem to suggest). I like this idea whenever I hear of
it, but my constant fear is that modeling human behavior in a non-human medium
is a superhuman task.

>* A messaging system. Probably it would consist of a text message (or
>several) to be displayed, and the data that the message signifies.
>Characters and tape recorders should be able to pass along the text
>message, and change the data (add to it, take from it, or leave it
>alone).

Excellent idea. If I understand you correctly, this is applicable to
non-NPC objects, and would eliminate the problems with "which object prints (or
should print) this message?". All messages could be routed through a central
system so that any object could alter the batch along the way. Then the whole
concoction could printed at the end of everything.

>* A system for characters to evaluate and complete goals. Not just as
>simple as traveling to a certain location, but also searching for a
>character (where was he last? Did he say he was going to go anywhere?)
>and even complex story goals, such as solving puzzles or completing the
>goal of the story (make it out alive, get rich, kill the Evil Tyrant,
>etc.)

A noble goal. If this is ever implemented well, I think it will
revolutionize computer gaming.

>But I'd like to
>feed ideas into other people and let _them_ do the hard stuff. :)

Amen, brother. :-)

okbl...@my-deja.com

unread,
Oct 25, 1999, 3:00:00 AM10/25/99
to
In article <7unicg$hcn$1...@nntp1.atl.mindspring.net>,

Andrew Plotkin <erky...@netcom.com> wrote:
>
> No, let's say Inform, since WorldClass and the various other libraries
> suggest that TADS already *has* some good alternate libraries. And
Inform
> doesn't. :-)

I was using the standard raif practice of assuming that if it hadn't
ever been done before, it probably never would be done. ;-)

--
[ok]

okbl...@my-deja.com

unread,
Oct 25, 1999, 3:00:00 AM10/25/99
to
In article <7unm97$eci$1...@nnrp1.deja.com>,

chads...@my-deja.com wrote:
>
> * Emotions. Probably certain emotions such as anger, sorrow, and joy.
> There could be a numerical value to signify how much of that the NPC
is
> feeling (or the PC, for that matter) and also a list of objects and
> numerical values to show how strongly the character feels in that way
> about that object.

This wouldn't be that hard to do, really, from the library standpoint. I
have a design for NPC's emotions that would set the character's emotion
based on a variety of events as determined by various factors. The NPC
hates and fears cats, say, so he becomes increasingly nervous, angry and
frightened if there's a cat in the room. (Psychosis is always easier to
model. :-) Events that the NPC likes can make him more rational,
helpful, etc., while those that seem to work against him can depress
him. Etc.

I've actually got two standard sets of emotions. One has about 60
emotions, the other closer to 5 or 6, which I suspect is the more
useful, because of the whole combinatorial explosion thing.

> * A messaging system. Probably it would consist of a text message (or
> several) to be displayed, and the data that the message signifies.
> Characters and tape recorders should be able to pass along the text
> message, and change the data (add to it, take from it, or leave it
> alone).

Oh, okay, I got it. I think.

Are you talking about a game event system where something happens, and
then all the things that can influence that event have a chance to
modify the event (and therefore the text)?

Or something else?

> * A system for characters to evaluate and complete goals. Not just as
> simple as traveling to a certain location, but also searching for a
> character (where was he last? Did he say he was going to go anywhere?)
> and even complex story goals, such as solving puzzles or completing
the
> goal of the story (make it out alive, get rich, kill the Evil Tyrant,
> etc.)

Some elements of that are easier than others. But that's a little wider
than an evolutionary step and a little bit vaguer than I had in mind.
Evolutionarily, you could have paths, for example. You can do paths
now, but a good evolutionary step might be "data" objects. NPCs could
start out with certain bits knowledge, like several different paths to
the bathroom. So, if they try their best route to the bahtroom and there
are workers tearing up the hallway, they can try to approach it from the
west wing; if the door is locked and they know where the key is, they
can go get the key, and if not they can then go outside and try to get
in from the window.

This idea intrigues me because it suggests a system of NPC
communication--and lies. Ophelia greets the lieutenant (true datum).
Iago witnesses this and owns the data. Iago creates a false datum, that
Ophelia has sex with the lieutenant. Iago communicates this to Othello.
Othello, having this false datum, goes to kill Ophelia.

The player tells Othello the truth and, say, depending on the Othello's
opinion of the player, fails or succeeds in cancelling out the false
datum. Othello then goes to kill Iago.

And another tragedy is narrowly averted. :-)

> 1. Programmers update the main library, and then the libraries for
each
> system. Kind of like making the interpreters for each platform.

I dunno if there's much likelihood of this.

> 2. Authors of IF systems make their systems able to read a universal
> language that the library is written in.

More likely, someone specs the universal language and solicits
volunteers for the translations.

> 3. Some program is made which can translate between languages.

Right.

> 4. We exalt one system over all the others, and torch those authors so
> they can never be rewritten. (Probably a bad idea.)

Still, it may have to do in a pinch.

> First, we need to decide what the best interface for IF is. I don't
> mean something other than the traditional command-line, but should a
> player be able to type natural language to characters? Would this make
> some puzzles far too difficult to solve for many people?

I don't see how that follows.

> The spirit is willing...
>
> I'd love to help, but I'm really busy. And saying that I would do

> something is the best way to make sure I never do it. But I'd like to


> feed ideas into other people and let _them_ do the hard stuff. :)

Sure. You're an "idea man". ;-)

0 new messages