mud grammar
Nathan Yospe
yospe at hawaii.edu
Wed Mar 12 09:14:59 CET 1997
On Wed, 12 Mar 1997, Alex Oren wrote:
:On Tue, 11 Mar 1997 19:27:43 -1000, Nathan Yospe wrote:
:
:} ch.do(gun.implementStandardUsage() + "purple dinosaur");
:} works well enough for me.
:
:And
:
:} As is my system, which uses a weighted reference database for everything.
:} Some ideas borrowed from neural net programming, mainly.
:
:Care to give us more backround about your system?
Ah, its been a while. I think I described the earlier version (much has
changed) in the first mailing list. OK, here goes:
Physmud++ is written in C++, with provisions for extension in an
internal crippled implementation of a C like OO language. It runs on an
event based model with four thread sets: player(socket), global, area, and
locational(room). Only discreet locations have threads, meaning the
interior of a car would run in the local room's thread. The mud features a
strong division between Player and Character, though Characters are
solidly owned (in my version, at least) by Players. Player objects are
controlled IO and routing, meaning that they can be plugged into, among
other things, Characters, Editors, Creation Engine, Chat Rooms, and Other
Games. (Chess, BlackJack, Bridge, and Othello are in.) The String class
implements a cunjunction based language parser, and all verbs use a series
of secondary parsers for natural language interpretation of the parsed
commands. Skills are referenced by verbs, and unlimited in number. A skill
could be added by any area builder at any time. Stats are related to
skills by a weighted relational (neural net style) database, with zero
overhead for zero linkage (thank goodness) and result in a dynamic
relationship between skills. (IE: getting better at running makes you a
better jumper/climber/etc.) Execution of a verb factors in desirability
(death risk, alliance, etc.) to produce a system that cautions actions, a
vital function with the high odds of death and semi permanence of same.
Choosing a verb in ambiguous states takes into account feasability (there
is no way you are gonna make that shot) desirability (shooting that
armored tank might draw their fire) and capability. Contained in all three
of these is a series of references to the aforementioned weighted
relational database.
I have a number of ducuments for this, ranging from exported comments
(yeah, I wrote a utility to export /// and /** */) to jotted down ideas
and musings on "what makes a realistic system fun?". Among other things,
detailed outlines of my hreading syste, my db system, and my telnet
interface. (I use ACE wrappers, with a telnet implementation on top of
them.)
__ _ __ _ _ , , , ,
/_ / / ) /_ /_) / ) /| /| / /\ First Light of a Nova Dawn
/ / / \ /_ /_) / \ /-|/ |/ /_/ Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe at hawaii.edu
More information about the mud-dev-archive
mailing list