[sldev] LSL initiated Prim metadata was Re: Plugin architecture
Jason Giglio
gigstaggart at gmail.com
Tue Feb 27 15:36:57 PST 2007
Jacek Antonelli wrote:
> On 2/27/07, Jason Giglio <gigstaggart at gmail.com> wrote:
>> That is why it is not suitable for generic non-linden approved
>> communications to the client. That *is* the intent.
>>
>> It is suitable only for *development*. Not for deployment. That is by
>> design.
>>
>> It seems that you want something else, something that can be used for
>> deployment of arbitrary prim-property features without linden
>> implementation, that is not the intent of this, and it is unsuitable for
>> this use, as you pointed out.
>
> Perhaps I am ignorant and blind, but it seems to me that implementing
> "arbitrary prim attributes for use" yields "... for testing" at no
> additional cost, in addition to being a genuinely useful idea in
> itself. To put it briefly: for-use has everything we want from
> for-testing, plus a cherry on top.
That is a valid avenue to explore. I considered this when writing my
proposal and rejected it for the following reasons:
1. Fracturing the metaverse with content only viewable with certain
plugins, like the web is/was.
2. Because of this, it's a controversial change.
3. The main reason, it was not necessary to accomplish what I wanted to
accomplish with my proposal. Simple is better.
> What
> are the concerns about for-use? Less secure? More work to implement?
> People doing things that we don't personally approve of?
None of those. It wouldn't be much harder, but it may not be desirable.
> This makes it more like a hash table/dictionary than an array, which
> is a good thing in my view. (Registering "attribute #1001" for a
> particular use seems like too much of a "magic number". Better to give
> it a descriptive name.)
That is a valid alternative to numeric tagging. One concern I would
have is that 15,000 of these things will be flying at the client when
you enter a sim. It could be slow to process string keyed tags.
> The server would be completely ignorant of the tags, except for
> storing them (probably enforcing a data-size limit per prim) and
> passing them along to each client that sees the prim. It would be up
> to each client to a) pay attention to any particular attribute, b)
> verify that the data is proper, well-formed, not malicious, etc., and
> c) act in some way based on the attribute.
Yep.
> As far as accessing the attributes goes:
>
> - from LSL: `llGetAttribute(string label)' and `llSetAttribute(string
> label, string data)' would seem to be all that is needed. Maybe later,
> functions which accept a list of [label, data, label, data, ...] to
> get/set multiple attributes at once, for efficiency. Perhaps also a
> separate `llDeleteAttribute(string label)' function to delete the
> attribute entirely (instead of just making its data blank).
That sounds good to me for what you are trying to do. I think you
should write this up as a new wiki page and link it from mine as an
alternative implementation, with different design goals.
> - from client code: similar functions to LSL, but with an additional
> function to set an attribute locally, without modifying the object on
> the server.
What does this serve?
>
> - from the UI: assuming that you have permission to modify a prim, I
> see no reason why you shouldn't be able to edit its arbitrary
> attributes from the UI, like you edit its name, description, and other
> parameters. This could be written later, in terms of the client code
> functions mentioned above.
That's a lot of nastiness to show to the user. Best leave it to LSL
scripters to wrap it in something user friendly. It's not
unprecedented, there's no UI to create a particle system, for example.
> Perhaps it would also be useful to have "hidden" attributes, which are
> not visible to clients. (This would be quite handy as persistent data
> storage for LSL scripts!)
I doubt LL wants this, or they would have done it already. That was one
of the reasons my proposal doesn't have a "Get" function, so that it
can't be used for LSL data storage, and only used for the intended purpose.
-Jason
More information about the SLDev
mailing list