<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Introductions and --> <!--X-From-R13: Oqnz Ivttvaf <avtugsnyyNhfre2.vasvpnq.pbz> --> <!--X-Date: Mon, 15 Dec 1997 03:27:36 +0000 --> <!--X-Message-Id: 199712150340.UAA02985#user2,inficad.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 9712141815.8o1t@ami-cg.GraySage.Edmonton.AB.CA --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Introductions and</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:nightfall#user2,inficad.com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00827.html">Previous</a> | <a href="msg00829.html">Next</a> ] Thread: [ <a href="msg00818.html">Previous</a> | <a href="msg00857.html">Next</a> ] Index: [ <A HREF="author.html#00828">Author</A> | <A HREF="#00828">Date</A> | <A HREF="thread.html#00828">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Introductions and</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Introductions and</LI> <LI><em>From</em>: Adam Wiggins <<A HREF="mailto:nightfall#user2,inficad.com">nightfall#user2,inficad.com</A>></LI> <LI><em>Date</em>: Sun, 14 Dec 1997 20:40:23 -0700 (MST)</LI> <LI><em>Reply-To</em>: <A HREF="mailto:nightfall#inficad,com">nightfall#inficad,com</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> [Chris Gray:] > [Adam W:] > This is not at all meant as an attack, but more a reminder that there is > a lot that has to go on behind the scenes, in order to make a MUD do what > looks like simple things. We sometimes forget that in our discussions here. > Alternatively, some of the MUDs that are out there may just be a lot more > sophisticated than I imagine! Oh, certainly. I think that applies to 90% of what gets posted to this list. That's why I enjoy it. You have to know where you're going - if not with this generation of muds, than with the next. Personally I think all the stuff in this post is *far* below the level of a lot of the crazy stuff proposed here :) > :You're confusing 'name' with description. The situation you describe > :should look like so: > : > : ] n > : You enter Arms 'R' Us. > : This is a large, bare room. On one wall are mounted quite a few different > : swords. On another wall there is a myriad of armor. On a third wall are > : several dozen helmets. > : Bubba the shopkeeper is standing here. > : ] look swords > : There seem to be around 20 different swords. Most of them are typical > : longswords, but you notice two particularly rusty swords, three short-swords, > : two claymores, and a rapier. > : ] get short > : You get a shortsword from the wall. > : Bubba says, 'That's an excellent weapon for any use. Sold to me by an older > : hobbit fellow younger today, he said it served him quite well.' > : ] examine short > : You take a close look at the shortsword. > : It weighs around six stones. The blade is about three handsbreath long. > : The hilt is wrapped in leather. Delicate paterns are etched into the > : well-worn blade. It could use some sharpening. > : ] > : Bubba says, 'Only fifty coppers for that fine item.' > : ] name sword Sting > : You will now call the shortsword 'Sting'. > : ] l in purse > : You have three copper pieces. > : ] doh > : ] return short > : You return the shortsword to its spot on the wall. > : Bubba says, 'You'll regret giving up such a bargain, my friend..' > : ] l > : This is a large, bare room. On one wall are mounted quite a few different > : swords, one of which you recognize as the shortsword Sting. On another > : wall there is a myriad of armor. On a third wall are several dozen helmets. > > This looks quite nice. Too nice, I think. Going through this with the eye > of an implementor, I see a lot of things that would take a lot of work to > implement. Some MUDs will have some of these, but does any have them all? I didn't just make this up. This is identical to how our system is set up, right down to the shopkeeper responses. It looks complex, but if you break it down into the parts, it's actually fairly simple. > First, the description of the room is algorithmically generated. This Yeah. We finally gave up and went to this a little while ago. This *does* result in some slightly 'stale' room descriptions at times, although we continue to try to expand the function which generates them, adding in new phrasing and methods of concatinating objects in order to get something that looks more like a hand-written area. Upside is that we have an infinitely dynamic system which requires no specific area building. Although you certainly *can*, just by plunking objects down. > requires the code to be maintaining location of objects within the > room, in order to associate them with particular walls. The code also Yeah...I supose this would be a lot more dynamic with a very tight coordinate system and object placement. We haven't quite gotten to that just yet - rooms are stored as six 'surfaces' (== walls), to which objects can be attached. Thus, there is a weapons rack attached to one wall, an armor rack attached to another, etc, which are just transparent containers. > has to be able to do dynamic grouping of objects based on their names. Uh-huh. This is an important issue, I think. One that we've touched on many times on this list. It's the kind of thing where you can get away with a very simple figure-out-what's-different routine, or go crazy with the crowd stuff folks have been discussing recently (taking time to notice where people are in the crowd, etc). > Similarly, the description for 'swords' is generated, but uses some > different rules to extract more detail. It has had to decide what details > are important (perhaps the MUD scheme is that only "important" details > are actually stored on the objects). All of this has been done while > maintaining pleasing English output. Yeah, detail culling is very important. Object names were the first thing we tackled. The routine first just went through and extracted the top three details about the object, and that was the name. Later we moved to a "what's different about this object?" routine. It could still be improved upon tripplefold, I'm sure. > Sting: (hey, isn't that the Grey Mouser's weapon?) The output requires > that the MUD have recorded some history on the weapon (or perhaps it is > on the shopkeeper, but keyed to the specific item - is it there only > because the sword actually is special, or are such things generated and > maintained for all buy/sell transactions?). Yes. We have character record 'events' that they've witnessed as part of their memory. This is extremely easy based on our event propagation system. What's difficult is deciding when and how to compress events from the past, or ditch them altogether. Secondly is extracting the information. I started a brief thread asking folks about the best attempts at semi-NLP for getting info out of NPCs. I settled on a keyword approach - all events have a number of keywords associated with them. Then there are modifiers that allow you to extract specific data. So if some player says, 'where is bubba' the shopkeeper accesses his memory for objects he names 'Bubba'. This results in some great confusion, as well, if the shopkeeper things you're talking about some *other* Bubba. Similarly, you can ask 'who bought sting?' 'bought' is a keyword for EVENT_PURCHASE, 'who' is a modifier looking for the object name, and 'sting' is the object in question. Thus the shopkeeper looks in his memory for an EVENT_PURCHASE involving an object named sting as the direct object, and if found, reports the name of the actor for the event. > Sting needs some sharpening. Well, is that added description given to > everyone who examines it? I would imagine that only those with some > experience with swords could make that judgement. Would an IQ 60 troll > see it? Should he? It's based on your weapons knowledge skill, specifically short blades. Yes, this is another thing we tackled straight off - greater knowledge gives you greater perception. Also, rather than using INT for these kind of skill rolls, we use perception. This allows characters which are highly perceptive but not necessarily smart - ie, the typical thief character. > Looking in the purse. Well, the output isn't generic for looking in a > container, since that would likely be along the lines of "the purse > contains ....". Yes, you're right. I was sloppy there, along with the place where I said 'shortsword' where it should have said 'the shortsword Sting'. > Does the 3 coppers total include all money that the > character is carrying, or does it purposely only report the money in > the purse (reasonable, but unclear given the output syntax). It is > quite reasonable to group money in reports, but it should be noted that > perhaps the purse contained a 2-copper piece as well as two half-copper > pieces, and the code had to add up the values. Nods. Money is a great place for grouping container code, especially when you throw in the perception rolls. Thus you get the ogre seeing, 'You are holding some coins', the elf seeing 'You are holding around fifty coins', and Rain Man seeing 'You are holding 53 coins, one of which has a small scratch on the bottom of it.' > [Aside: I've always thought it would be fun to use the old English > monetary system in a MUD - its so colourful, with farthings, ha'pennies, > thre'penny bits, shillings, etc.] Heh. Currently the money denominations we have are brass rings, steel rings, golden rings, silver Celendrian pieces, jade Celendrian pieces, mithril marks, galvorn pieces, and galvorn pentacles. However we may well be throwing all of these out as we're axing a few of our more boring races for something a bit more original. </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00857" HREF="msg00857.html">Re: [MUD-Dev] Introductions and</A></strong> <ul compact><li><em>From:</em> Matt Chatterley <root#mpc,dyn.ml.org></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00818" HREF="msg00818.html">Re: [MUD-Dev] Introductions and</A></STRONG> <UL><LI><EM>From:</EM> cg#ami-cg,GraySage.Edmonton.AB.CA (Chris Gray)</LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00827.html">Re: [MUD-Dev] Introductions and</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00829.html">Re: [MUD-Dev] Guilds & Politics [was Affecting the World]</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00818.html">Re: [MUD-Dev] Introductions and</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00857.html">Re: [MUD-Dev] Introductions and</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00828"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00828"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>RE: [MUD-Dev] Guilds & Politics</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00866" HREF="msg00866.html">RE: [MUD-Dev] Guilds & Politics</A></strong>, Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 18 Dec 1997, 15:55 GMT </LI> </ul> </LI> <LI><strong><A NAME="00835" HREF="msg00835.html">META: what's with these vcard.vcf attachments?</A></strong>, Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Mon 15 Dec 1997, 13:17 GMT <UL> <LI><strong><A NAME="00870" HREF="msg00870.html">Re: [MUD-Dev] META: what's with these vcard.vcf attachments?</A></strong>, Vadim Tkachenko <a href="mailto:vadimt#4cs,com">vadimt#4cs,com</a>, Thu 18 Dec 1997, 19:45 GMT </LI> </UL> </LI> <LI><strong><A NAME="00818" HREF="msg00818.html">Re: [MUD-Dev] Introductions and</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 14 Dec 1997, 18:11 GMT <UL> <LI><strong><A NAME="00828" HREF="msg00828.html">Re: [MUD-Dev] Introductions and</A></strong>, Adam Wiggins <a href="mailto:nightfall#user2,inficad.com">nightfall#user2,inficad.com</a>, Mon 15 Dec 1997, 03:27 GMT <UL> <LI><strong><A NAME="00857" HREF="msg00857.html">Re: [MUD-Dev] Introductions and</A></strong>, Matt Chatterley <a href="mailto:root#mpc,dyn.ml.org">root#mpc,dyn.ml.org</a>, Thu 18 Dec 1997, 09:11 GMT </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00773" HREF="msg00773.html">Re: [MUD-Dev] OT: Books</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 13 Dec 1997, 06:56 GMT <LI><strong><A NAME="00763" HREF="msg00763.html">LIST: Forced unsubscriptions due to persistant bounces</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 13 Dec 1997, 00:36 GMT <UL> <LI><strong><A NAME="00769" HREF="msg00769.html">Re: [MUD-Dev] LIST: Forced unsubscriptions due to persistant bounces</A></strong>, Stephen Zepp <a href="mailto:zoran#enid,com">zoran#enid,com</a>, Sat 13 Dec 1997, 05:56 GMT </LI> </UL> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>