Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CF: Weird idea :-)



-----BEGIN PGP SIGNED MESSAGE-----



On Mon, 26 Jul 1999, Christian Stieber wrote:
> Anyone know of an Eliza program written in C?

I've designed expert systems that could eat up eliza
and spit her/it back out...

Eliza is basically and can be reduced to just about: get an input
string, search for (leading) substring  matches (in order) from a list,
if one is found, chop up the rest of the input string by assuming the
rest will make sense.... take the corresponding (single?) response that
is assigned for the matched leading substring, munge pronouns, splice,
spit out response.  I could do it in 1 line of perl.  I'm sure it could
be done in a few lines in C, but I can't code it at this time.

I worked on programs that were similar to this -- but a little more
advanced for 5 years or so in the early 90s.  I gave up on this
technology because it was basically just an "expert" system and I wanted
something more.  However, these systems can be very small and efficient
and give pretty reasonable results for their size.

I'd also give these suggestions for something a little more advanced
than eliza that might be implemented for/in the server:

(1) Keep it small and simple.  There's no need to have bugs in an
"eliza" type section of code... nor is there a need to have bloat
in memory requirements (ie: read cache from disk?)

(2) Allow multiple "dictionaries" to be read in, either by map or by
house (simple check from bottom up -- ie: dictionary_for_MAP_X_Y? if
yes, load, if no check dictionary_MAP, if yes load, if no check
DICTIONARY. etc.  expand as needed or relevant server vars allows...
ie: time/date, level of char, etc.

(3) Do simple checks for things that break eliza.  ie: bad grammar,
don't assume, keep a short history, perhaps 10 lines or so of input, do
something different/special if the input repeats/loops, etc.

(4) Allow dictionary responses that match have "triggers" so that they
can activate either callbacks or parts of the game.

(5) Allow the interaction (ie: dialogue) to update/enhance the
dictionary ( I have some thoughts on how to accomplish this without
allowing the system to be abused. ). This is critical.

With those 5 things (and probably others), it would be possible to have
an extremely compact "chat" or "interaction" engine that could really
enhance the game.  They are all very important, but when they're all
present, it can really be impressive.

The callback idea may seem radical or too difficult to contemplate --
but it could really be quite simple... if nothing else, simply decide a
few "callbacks" to encorporate and code them directly.  For example,
have callback #1 simply be to generate a monster nearby.  If someone
insults the god of the NPG, have that have a callback of 1 and then
perhaps specify a monster or a random monster level/class to generate.

Again, I think the major thing here that the dialogue isn't redundant,
repetitive or stagnant.

I have many more ideas about this -- followup if you think this will
go anywhere.

Scott





-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBN5xhTB4PLs9vCOqdAQFavQQAzcaGboCBBzYHwnUj1cM/cU/nSimlF5UU
yY8TNyRFn+sQbrDU0beGQswbCLVdMTCJDs/SNwCJAd7C6BX716WEQI3qZdl2+GbI
SvjqKjZDQ3BqMbop2TOCHqiHdddNtYweU/4ijTMHzkrnCytTePuQ6wruJJF+fROd
z6S+HE02bO8=
=1uq6
-----END PGP SIGNATURE-----

-
[you can put yourself on the announcement list only or unsubscribe altogether
by sending an email stating your wishes to crossfire-request@ifi.uio.no]