<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: MUD Design doc (long) --> <!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> --> <!--X-Date: Mon, 11 Jan 1999 22:49:38 -0800 --> <!--X-Message-Id: 199901120053.QAA09980#under,engr.sgi.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 3697D963.901A5506#ibm,net --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: MUD Design doc (long)</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:claw#under,engr.sgi.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="msg00109.html">Previous</a> | <a href="msg00113.html">Next</a> ] Thread: [ <a href="msg00104.html">Previous</a> | <a href="msg00115.html">Next</a> ] Index: [ <A HREF="author.html#00112">Author</A> | <A HREF="#00112">Date</A> | <A HREF="thread.html#00112">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: MUD Design doc (long)</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: MUD Design doc (long) </LI> <LI><em>From</em>: J C Lawrence <<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>></LI> <LI><em>Date</em>: Mon, 11 Jan 1999 16:53:27 -0800</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Sat, 09 Jan 1999 22:34:11 +0000 Mik Clarke<mikclrk#ibm,net> wrote: > I've implemented the detailed descriptions as chains of keywords, > conditions and descriptions attached to rooms and > objects. (Extending the Diku/ROM Extra Descriptions). It makes > the search for the target of a look/examine command a bit more > complicated, but lets me play tricks with conditional descriptions > and lets me record the fact that someone has seen a particular > description. Loosely, there are two data models in client/server systems, and since you can devolve most data relationships to C/S systems if you look at them funny enough, you can look at the relationship between a player character object and the objects it manipulates in the the game as a client/server system, marking the character object as the client and the rest as "servers". This view had a pleasant side effect, it enforces the model of the human player's only connection to the game being thru the funnel or filter of the character object. Further, it enforces the (wise?) design model of the character object acting as the interpreter for ALL the IO that the player receives. What does this last mean? The server can't send IO directly to the player any more as it has to pass thru the character object first. Further it encourages the code model where interface and presentation intelligence is removed from the server to the client, with the result that the character object becomes increasingly intelligent about such things and the data items it processes (rooms, objects, EQ, etc) increasingly simple if not non-existent in those regards. Why should a room care how a character or player perceives it? It is an artificial division and badly breaks the relevent XXX design pattern (the Gang of Four book is at home and I'm not). Why not have the room (or whatever) contain all the relevent atoms of its own description and then have the client/character assemble and present those atoms in a way intelligent to *that* character? This makes objects responsible for their own data public contents (ie their attributes and method return values), and not for what is done with them. > An example might be a mage examining a sword: >> examine sword > A fine blade of polished steel. It looks quite sharp. > ...and a warrior examining the same blade... >> examine sword > A fine blade of polished steel. It has a razor honed edge and is > undoubtably the work of the weapon smiths of FooBar. This is a > rare and valuable blade. One of the other nice side effects of this approach is that it then becomes very simple to have anonymous objects; localised namespaces if you wish. For instance: For me names are not global (there are a very few exceptions). As such objects don't have default names. The character you ran into at the castle is only "Bubba" to you because that is what you explicitly named him. You have no idea what he calls you. > l You are standing outside of a ramshackle store. A sign, creaking in the wind, reads, "Bubba's Inn". > name store moshpit Okay. > l You are standing outside the moshpit. An ugly troll approaches from the south. > name troll sucker Okay. Sucker says, "Hi! My name is Boffo! Want to go do the castle?" > l You are standing outside the moshpit. Sucker is here. > kill sucker ...etc. Notice however that the "sucker" name assignment is private to the character that you are playing. It won't resolve for the troll, for any other players, or for the player of the troll. ObNote: Namespace virii (eg objects that autoregister/de-register/broadcast or otherwise process a character's namespace, say attached to a trash object that is handed about) are kinda fun and *really* *really* annoying. They can definitely screw up your whole day. I'm still argueing how tight to make the namespace sandbox. I want it usably open but still fairly protective against namespace virii. > Hmmm. So your entire world looks like it was furnished by Habitat? > The same pine tables and wooden chairs everywhere? Yep. In fact the entire world pretty well looks like the product of a production line nightmare. Part of this is due to the fact that I expect (hope) that the players will extend the visuals themselves, thus defining and characterising the world (free user programming and a well defined protocol for pasting spiffier presentations atop generic objects). -- J C Lawrence Internet: claw#kanga,nu (Contractor) Internet: coder#kanga,nu ---------(*) Internet: claw#under,engr.sgi.com ...Honorary Member of Clan McFud -- Teamer's Avenging Monolith... </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="00119" HREF="msg00119.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong> <ul compact><li><em>From:</em> Mik Clarke <mikclrk#ibm,net></li></ul> <li><strong><A NAME="00115" HREF="msg00115.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong> <ul compact><li><em>From:</em> Ling <K.L.Lo-94#student,lboro.ac.uk></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00100" HREF="msg00100.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG> <UL><LI><EM>From:</EM> Mik Clarke <mikclrk#ibm,net></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00109.html">[MUD-Dev] Re: mobile movement</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00113.html">[MUD-Dev] Re: mobile movement</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00104.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00115.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00112"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00112"><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>[MUD-Dev] Re: MUD Design doc (long)</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00100" HREF="msg00100.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Sat 09 Jan 1999, 21:28 GMT <UL> <LI><strong><A NAME="00102" HREF="msg00102.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Nathan F Yospe <a href="mailto:yospe#uhunix1,its.Hawaii.Edu">yospe#uhunix1,its.Hawaii.Edu</a>, Sun 10 Jan 1999, 01:31 GMT <UL> <LI><strong><A NAME="00103" HREF="msg00103.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Sun 10 Jan 1999, 20:28 GMT </LI> </UL> </LI> <LI><strong><A NAME="00104" HREF="msg00104.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Sun 10 Jan 1999, 21:57 GMT </LI> <LI><strong><A NAME="00112" HREF="msg00112.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 12 Jan 1999, 06:49 GMT <UL> <LI><strong><A NAME="00115" HREF="msg00115.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Tue 12 Jan 1999, 15:53 GMT <UL> <LI><strong><A NAME="00121" HREF="msg00121.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 13 Jan 1999, 00:19 GMT </LI> </UL> </LI> <LI><strong><A NAME="00119" HREF="msg00119.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Tue 12 Jan 1999, 21:06 GMT <UL> <LI><strong><A NAME="00124" HREF="msg00124.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 13 Jan 1999, 01:17 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </ul> </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>