<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Object and class heirarchies -- are they reallynecessary? --> <!--X-From-R13: "Penaqba X. Dvpxzna" <qe.xNcp4.mraarg.pbz> --> <!--X-Date: Wed, 05 Apr 2000 14:32:01 -0700 --> <!--X-Message-Id: Pine.LNX.4.10.10004051316380.24390-100000#pc4,zennet.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 200003290239.TAA14052@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] Object and class heirarchies -- are they reallyn</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:dr.k#pc4,zennet.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="msg00065.html">Previous</a> | <a href="msg00066.html">Next</a> ] Thread: [ <a href="msg00071.html">Previous</a> | <a href="msg00060.html">Next</a> ] Index: [ <A HREF="author.html#00068">Author</A> | <A HREF="#00068">Date</A> | <A HREF="thread.html#00068">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Object and class heirarchies -- are they reallynecessary?</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>: Re: [MUD-Dev] Object and class heirarchies -- are they reallynecessary?</LI> <LI><em>From</em>: "Brandon J. Rickman" <<A HREF="mailto:dr.k#pc4,zennet.com">dr.k#pc4,zennet.com</A>></LI> <LI><em>Date</em>: Wed, 5 Apr 2000 14:22:09 -0700 (PDT)</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#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 Tue, 28 Mar 2000 cg#ami-cg,GraySage.Edmonton.AB.CA wrote: > [Phillip Lenhardt <philen#funky,monkey.org>:] > > > For example, if a door is just a regular object with open and close > > methods and link attributes pointing at two other roomish objects, > > how do you determine if it is a door at all? In a class hierarchy, > > you can ask for the class or type of an object. If that class or > > type is or is descended from the door class, you know you have a > > door object. With just a base class, you have to check for all > > relevant methods and attributes before treating that object like > > a door. > > I recall someone on this list (JCL?) saying something analagous to: > > If it acts like a door, its a door. > > Why do you care if the way it gets its door behaviour is by being an > "official" door? If someone has, within the rules of your world, created > a non-door object which is intended to act like a door, then I would > think you would want everyone to treat it as if it were a door. In other > words, you don't want anyone to be able to find out that it isn't "really" > a door. > > Possibly there are some rare administrative cases where you want to be > able to identify "official" doors, but should that kind of requirement > drive the basic heart of your system? One of my favorite subjects! What is a door? Well, we have doors in the real world, and they look like, ah, doors. In a virtual world, the important thing about doors is that they _function_ like doors. So what is a virtual door? Something that fits in a virtual doorway. What is a virtual doorway? The path, the route, the /something/ that lets you move from one virtual room to another. What is a virtual room? In the Zork era, they were very clearly defined constructs, they were built into the code. In a coordinate based world, you have to look for the rooms, look for areas where some combination of virtual geography and virtual obstacles isolate one cluster of coordinates from the others. Eventually you realize that we don't really want to locate the room itself, but the walls around the room, barriers that prevent free access to nearby coordinates. * * * If object #6 is "a door", and object #6 is not in a doorway but merely lying on the ground, then you get % look A place You see: A door, 15 coins, an exit to the north. Similarly, object #23 is "a boulder". When #23 is lying on the ground, it is just "a boulder": % look A place You see: A boulder, 15 coins, an exit to the north. But if boulder #23 is blocking the exit, you could call it a door: % look A place. You see: 15 coins, a closed door to the north. This is wrong, of course. The boulder is functioning like a door, but we need to change the wording: % look A place You see: 15 coins, the passage north is blocked by a boulder. Now we need to alias some new verbs; "open door" is what we would normally want, but "open north exit" should work, or "move boulder". I've seen "open boulder", which is ambiguous. The important thing is that when the boulder is _not_ blocking the exit, it is _not_ functioning as a door. This shouldn't happen: % look A place You see: 15 coins, a boulder, an exit north that is not blocked by the boulder. Nor should this: % look A place You see: 15 coins, a door which is neither open nor closed (as it is not functioning as a door), an exit north that does not contain the door. - B! _______________________________________________ MUD-Dev mailing list MUD-Dev#kanga,nu <A HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00065.html">Uptime numbers (was Re: [MUD-Dev] Orthogonality and invariants)</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00066.html">Re: [MUD-Dev] Re: J (was: Re: 16K mud server competition !)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00071.html">[MUD-Dev] Schmuse</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00060.html">[MUD-Dev] Orthogonality and invariants</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00068"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00068"><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><A NAME="00071" HREF="msg00071.html">[MUD-Dev] Schmuse</A></strong>, J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Thu 06 Apr 2000, 05:44 GMT <LI><strong><A NAME="00068" HREF="msg00068.html">Re: [MUD-Dev] Object and class heirarchies -- are they reallynecessary?</A></strong>, Brandon J. Rickman <a href="mailto:dr.k#pc4,zennet.com">dr.k#pc4,zennet.com</a>, Wed 05 Apr 2000, 21:32 GMT <LI><strong><A NAME="00060" HREF="msg00060.html">[MUD-Dev] Orthogonality and invariants</A></strong>, Miroslav Silovic <a href="mailto:silovic#zesoi,fer.hr">silovic#zesoi,fer.hr</a>, Wed 05 Apr 2000, 15:27 GMT <UL> <LI><strong><A NAME="00065" HREF="msg00065.html">Uptime numbers (was Re: [MUD-Dev] Orthogonality and invariants)</A></strong>, Jay Carlson <a href="mailto:nop#mitre,org">nop#mitre,org</a>, Wed 05 Apr 2000, 20:06 GMT <UL> <LI><strong><A NAME="00069" HREF="msg00069.html">Re: Uptime numbers (was Re: [MUD-Dev] Orthogonality and invariants)</A></strong>, Ben Greear <a href="mailto:greearb#candelatech,com">greearb#candelatech,com</a>, Thu 06 Apr 2000, 03:16 GMT </LI> </UL> </LI> </UL> <UL> <li><Possible follow-up(s)><br> <LI><strong><A NAME="00070" HREF="msg00070.html">Re: [MUD-Dev] Orthogonality and invariants</A></strong>, cg <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Thu 06 Apr 2000, 04:52 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>