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.
\t
--
Please remove dot nospamski dot from the return address.
----------
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.
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.
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.
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.
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..."
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
>* 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. :-)
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]
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". ;-)