<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: Just a bit of musing --> <!--X-From-R13: pbqreNvoz.arg --> <!--X-Date: from babe.globecomm.net [207.51.48.8] by mx3.ibm.net id 857328464.67544-1 Sun Mar 2 18:47:44 1997 --> <!--X-Message-Id: 199703021852.SAA149513#out1,ibm.net --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199702271506.PAA145886#out1,ibm.net --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: Just a bit of musing</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:coder#ibm,net"> </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="msg00036.html">Previous</a> | <a href="msg00038.html">Next</a> ] Thread: [ <a href="msg00036.html">Previous</a> | <a href="msg00038.html">Next</a> ] Index: [ <A HREF="author.html#00037">Author</A> | <A HREF="#00037">Date</A> | <A HREF="thread.html#00037">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: Just a bit of musing</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: Just a bit of musing</LI> <LI><em>From</em>: <A HREF="mailto:coder#ibm,net">coder#ibm,net</A></LI> <LI><em>Date</em>: Sun, 02 Mar 97 10:32:05 -0800</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On 27/02/97 at 08:17 AM, "Carter T Shock" <ctso#umiacs,umd.edu> said: >I'll never understand why mud-folk have an overwhelming need to >explicitly grid the world. That is, determine a minimum feature size (a >room, a grid square, etc.) and then index one description for each cell >in the grid. Its simple and brain-cheap and thus attractive. The problem I think is not in "gridding the world", but in defining the world as a 2D/3D array, as versus a sparse coordinate space. >It seems to me that >what you really have is a small-scale GIS, so why not use the techniques >found in other GIS implementations? For me, a major concern with literally taking a GIS approach (I used to write 3rd party CAD applications for the MIcrostation market, so I have some feel for the area) is that it enforces geometric consistancy. Realising I'm a rebel here, I think this is a Bad Thing. I specifically want to be able to easily represent mobius strips, Dr Who TARDIS'es (bigger inside than out), and other such spatial violations. To me they make a bit part of the fun of designing/discovering the map of a world or area. What I've been playing with instead is a idea where there is a base coodinate system, but where new (child/grandchild/etc) fully fledged coodinate systems of equal or smaller resolution to the parent system can be defined as occupying a given space withing its parent system. Transition from that point to a pure classic room based system shouldn't be TOO hard. >The digital nature of things means that there has to be at least an >implicit gridding to the system. All that means is that there is some >finite number of locations that any object may occupy. So we'll give >everything a pair of coordinates. To keep it easy we'll go 2-D and use a >pair of 16 bit values for about 4 billion distinct locations. Since we >don't want to explicitly code descriptions for each of the 4 billion >locations, we'll use some spatial data structure (point quadtrees come to >mind) to index objects, critters, and players. It's small, relatively >compact and let's you do neato things like determine the distance to >another object, find the closest object etc. I'd be much more tempted to use an R*-tree. Most MUD calculations are based on proximity, avilable reference, and similar. Additionally noes tend to very unevely distributed over the spatial matrix (busy city /empty desert). This makes a Quadtree comparitively expensive where large sections would wastefully recurse down to define empty deserty, and others would recurse very efficiently to define a highly detailed city. At least an R*-Tree allows a little more intelligent balancing. >Implement terrain features as thematic layers. Something simple like a >region quadtree for each terrain type would do nicely. Again, they're >small and efficient. ("one entry" in the region quadtree is the whole >forest, rather than having to mark each individual location as >forest/non-forest). No reason some terrain types can't overlap. Now when >a person moves, you intersect their new location with the various themes. >For each one that qualifies, you send a description. (i.e. if the >player's location is coincident on a region in your forest theme, and the >person is "outside", you add a line to any other descriptions sent that >says "Yer in a forest". If they are "inside" skip the step. >Interestingly, you can use this same kind of trick to let them look out a >window) Ignoring the logic problems of incompatable terrain types, apparently inconsistant terrain (forests inside an aboreatum, lakes etc inside a RAMA-style colony ship (or screw it, localised gravity distortions)) etc. >The idea extends to 3 dimensions as well, but computational overhead goes >_way_ up. But, if you host your mud on a bruiser machine, no reason not >to. Yeah. This is the one I want to minimise. >Sorry for the long post, Hehn. Nahh, its great. It helps keep the signal ration high. -- J C Lawrence Internet: claw#null,net ----------(*) Internet: coder#ibm,net ...Honourary Member of Clan McFud -- Teamer's Avenging Monolith... </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="msg00036.html">Re: Just a bit of musing</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00038.html">Re: Just a bit of musing</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00036.html">Re: Just a bit of musing</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00038.html">Re: Just a bit of musing</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00037"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00037"><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: Just a bit of musing</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00031" HREF="msg00031.html">Re: Just a bit of musing</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 02 Mar 1997, 02:19 GMT </LI> <LI><strong><A NAME="00032" HREF="msg00032.html">Re: Just a bit of musing</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 02 Mar 1997, 02:19 GMT </LI> <LI><strong><A NAME="00035" HREF="msg00035.html">Re: Just a bit of musing</A></strong>, GnomesHome <a href="mailto:GnomesHome#aol,com">GnomesHome#aol,com</a>, Mon 03 Mar 1997, 00:15 GMT </LI> <LI><strong><A NAME="00036" HREF="msg00036.html">Re: Just a bit of musing</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 03 Mar 1997, 02:35 GMT </LI> <LI><strong><A NAME="00037" HREF="msg00037.html">Re: Just a bit of musing</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 03 Mar 1997, 02:47 GMT </LI> <LI><strong><A NAME="00038" HREF="msg00038.html">Re: Just a bit of musing</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 03 Mar 1997, 03:05 GMT </LI> <LI><strong><A NAME="00039" HREF="msg00039.html">Re: Just a bit of musing</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 03 Mar 1997, 03:13 GMT </LI> <LI><strong><A NAME="00042" HREF="msg00042.html">Re: Just a bit of musing</A></strong>, Dmitri Kondratiev <a href="mailto:dima#paragraph,com">dima#paragraph,com</a>, Mon 03 Mar 1997, 09:36 GMT </LI> <LI><strong><A NAME="00045" HREF="msg00045.html">Re: Just a bit of musing</A></strong>, Carter T Shock <a href="mailto:ctso#umiacs,umd.edu">ctso#umiacs,umd.edu</a>, Mon 03 Mar 1997, 21:22 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>