<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Physical Space Representation --> <!--X-From-R13: pbqreNvoz.arg --> <!--X-Date: from scipio.globecomm.net [207.51.48.12] by in4.ibm.net id 865998515.56434-1 Wed Jun 11 03:08:35 1997 CUT --> <!--X-Message-Id: 199706110308.DAA98958#out2,ibm.net --> <!--X-Content-Type: text/plain --> <!--X-Reference: m0waQzW-0019vRC#king,cts.com --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Physical Space Representation</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="msg01284.html">Previous</a> | <a href="msg01286.html">Next</a> ] Thread: [ <a href="msg01248.html">Previous</a> | <a href="msg01190.html">Next</a> ] Index: [ <A HREF="author.html#01285">Author</A> | <A HREF="#01285">Date</A> | <A HREF="thread.html#01285">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Physical Space Representation</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] Physical Space Representation</LI> <LI><em>From</em>: <A HREF="mailto:coder#ibm,net">coder#ibm,net</A></LI> <LI><em>Date</em>: Tue, 10 Jun 97 19:49:38 -0700</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On 07/06/97 at 07:27 PM, mathue#king,cts.com (Mathue Moyer) said: >Unfortunately, in the context of internet game development I'm pretty >much nobody when compared to others on the list, so I won't bother >you with the details. :) /Most/ of the list members don't have any large public presence in the field. >On a slightly different note, I think it would be somewhat >interesting to catalog (in a fairly cursory fashion) all of the PSR >schemes people have come up with, heard of, etc... Seeing one list >of the whole lot (or at least a decently-sized subset) could help >generate new ideas. Here's my first stab at categorizing PSR >attributes (off the top of my head, I confess)... I hope the >whimsical acronyms aren't too hard to follow. ;) >Object Interaction Granularity: ... >Frame Of Reference Structure: ... The one you miss, were I to give it a name, is, "Dynamic Reference Frame Creation". This is what I'm examining. Essentially it means that I determine the PoV's coordinates as a point, and then derive from there the frame of reference to group only those objects "in range". As I use an R*-Tree for for the basic data storage, this means ascending the tree until a 3D rectangle is found which entirely contains the requested frame, iterating across all contained rectangles to select only those that intersect or are contained by the requested frame, and then iterating across their contents (sub-rectangles and individual object lists) to finally create a new rectangle which contains only the desired objects. This new rectangle is then time stamped. Each new access to the rectangle updates the time stamp (only if the rectangle is "matched"). Should the rectangle time stamp get too old, the rectangle is deleted. The next spiffy aspect is defining rectangle translations. At a crude level this means defining a logical rectangle containing the new volume to be included, and a logical rectangle containing the volume to be abandoned. Everything in the first is then added, and in the second removed from the original rectangle, and its coordinates updated to follow a motion. Thus a player walking across the land is actually represented internally by a rectangle mapping his frame of reference, with said rectangle wandering about the land, sucking in objects on the forward side and abandoning them on the lee side. As the character's range increases (say sight, or magic sense), then so the rectangle grows, or conversely shrinks when the character's abilities shrinks. The ugly bit is having one rectangle for each sense. A lot of rectangles. My next stab is to define rectangles for a character in groups, operating on the basis that processing a slightly excessive number of objects in a rectangle is preferable to needlessly updating a vast array of unaccessed rectangles. As such the basic ranges for a character are dynamically grouped into loose sets of semi-similar sizes, and then associated rectangles of that set's max size is created and tracked. The last ugly bit is that rectangles are, well, square, and ranges, are spherical. This gets even uglier when you consider something like the sight range of a character standing on an opaque endless plain. The actual shape is a half-sphere. Put him against a wall ang it becomes a quarter sphere etc. My intention here it two fold: 1) ignore the problem and di up-front simplistic spherical range checking (integer math approximations) to exclude the majority of inapplicable objects most quickly. 2) Dream lazily about some sort of magical side effect which would auto-magically recognise when a large set of objects in a rectagle were not matched by any of that rectangle's component ranges (eg the plain/wall situation) and to remove all those objects under the covers -- 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--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="01248" HREF="msg01248.html">Physical Space Representation</A></STRONG> <UL><LI><EM>From:</EM> mathue#king,cts.com (Mathue Moyer)</LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01284.html">Re: [MUD-Dev] The laws of probability</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01286.html">Re: [MUD-Dev] The laws of probability</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01248.html">Physical Space Representation</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01190.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01285"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01285"><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] Rooms, 3D arrays, etc.</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="01166" HREF="msg01166.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 05 Jun 1997, 09:11 GMT <UL> <LI><strong><A NAME="01195" HREF="msg01195.html">Re: [MUD-Dev] Threaded rand()</A></strong>, Ling <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Thu 05 Jun 1997, 22:36 GMT </LI> <LI><strong><A NAME="01203" HREF="msg01203.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Fri 06 Jun 1997, 02:08 GMT <UL> <LI><strong><A NAME="01248" HREF="msg01248.html">Physical Space Representation</A></strong>, Mathue Moyer <a href="mailto:mathue#king,cts.com">mathue#king,cts.com</a>, Sun 08 Jun 1997, 02:17 GMT <UL> <LI><strong><A NAME="01285" HREF="msg01285.html">Re: [MUD-Dev] Physical Space Representation</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Wed 11 Jun 1997, 10:08 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="01190" HREF="msg01190.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Thu 05 Jun 1997, 12:51 GMT </LI> <LI><strong><A NAME="01202" HREF="msg01202.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Thu 05 Jun 1997, 21:47 GMT </LI> <LI><strong><A NAME="01221" HREF="msg01221.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Fri 06 Jun 1997, 12:00 GMT </LI> <LI><strong><A NAME="01244" HREF="msg01244.html">Re: [MUD-Dev] Rooms, 3D arrays, etc.</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 07 Jun 1997, 08:12 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>