[Divunal-devel] The Problem with Perspectives

James Knight jknight@MIT.EDU
Tue, 20 Jul 1999 14:04:16 -0400


At 12:46 PM -0400 7/20/99, Glyph Lefkowitz wrote:
>On Tue, 20 Jul 1999, James Knight wrote:
>
>> At 9:09 AM -0400 7/20/99, Michael Dartt wrote:
>> >How about this:
>[snip]
>
>> The perspective idea is good, except that you can manipulate objects
>> not in your perspective. Right now you can manipulate things in the
>
>The word `perspective' is really vague here.  I think what you mean is you
>can manipulate objects out of your *focus*.  You can't just manipulate
>random objects anywhere.
Er, yes, i meant focus. Sorry for the confusion. Please don't use
perspective to mean focus like I did by mistake as it'll just confuse
everyone. :)

>> a good way to do it is to cache the items' 'perspectivised names' for
>> each player in a seperate table in the location until a refresh gets
>> called on it, at which point the cache has to be flushed. This would
>> avoid doing the dynamic property evaluation for each Thing lookup,
>> which would really suck. Instead, two table lookups have to be done
>> for any location that has a dynamic-named thing in it, which is much
>> faster.
>
>Dynamic property evaluation is to be minimized wherever possible... but I
>am afraid I don't really understand the *other* method you're talking
>about here.

Keeping a table on individual objects is also bad because it means you have
to loop through each object looking for that table. The method I am
proposing is to keep a seperate mapping in the location of Player/name ->
thing. The first time a given player does something requring name dynamic
properties to be evaluated, it will fill in this table with the results.
The results will then be valid until the location is focusRefreshed or some
other notification is sent that the name should be refreshed.

>
>I suppose I don't understand what you mean by a "shared perspective tag"
>here -- it seems to me that you are both proposing the same thing.
By shared perspective tag I assumed he meant a special text label one could
give to a certain perspective to cache it with, like "perspective through
green glasses" that everyone who had on green glasses would share and would
therefore only need to be cached once. This seems overly complex for the
gain it would get.


>I think that a good way to do this might be just to cache a second table
>of synonyms for the *object* rather than the player.
>.....

Well if you want to do it that way, no change at all is needed...you can
just add all the synonyms to the *primary* synonym list in the normal way
and be done with it...no dynamic name stuff necessary.

--
You are in a maze of testy little Java VMs, all subtly different.