• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-58
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Travis Lambert
Votes: 73
Watchers: 16
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

New LSL Super-Sensors

Created: 20/Mar/07 02:00 PM   Updated: 23/Jan/09 06:28 AM
Return to search
Component/s: Scripts
Affects Version/s: 1.13.1.5, 1.13.3, 1.13.4
Fix Version/s: None

Environment: n/a
Issue Links:
Duplicate
 
Relates


 Description  « Hide
Sensors are incredibly inefficient due to detected* bloat. As a result, we have to use many sensors to cover a sim, or to pull back basic Key info for more than 16 avatars - which increases simulator load. We need more optimized versions of highly used (and laggy) LSL functions, that could have the effect of reducing sim load, and give us better data.

Please see the following suggestions from the 'LSL Useful Function Wishlist' on the SL Wiki here: http://wiki.secondlife.com/wiki/LSL_Useful_Function_WishList

llGetAvatarKeysOnParcel()
llGetAvatarKeysOnEstate()

Additionally, a llGetAllAvatarsInSim() type function combined with the existing llOverMyLand() could remove the need for a lot of sensors out there - giving us more accurate agent data and less load on the simulators. A common need is simply to know 'Who is present' on a parcel, and it is difficult to collect this information without many laggy sensors, or an intricate network of collision detectors.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Thordain Curtis added a comment - 29/May/07 07:09 PM
While I agree that llGAKOP and llGAKOE would be extremely usefull, actually creating new sensor-type functions (that are actually sensor functions) would be super usefull. Although llSensor can be usefull in many circumstances, think of the usefullness of something like these:

llSensorRayCollision: Performs a ray collision test agains world geometry and returns the 16 closest objects that the ray collides with. Ray could easily be specified w/ a vector.
llSensorSweptSphereCollision: Same as above, but uses swept-sphere (or maybe capsule) collision testing. (w/ vector and sphere radius)

When I say "world geometry" I mean "objects/prims". Although, it might be interesting to be able to see if a ray hits the ground. Maybe a llDetectedStruckGround or something similar could facilitate this.

I don't imagine that either of these calls would introduce a great deal of lag, and I also don't imagine they would be that hard to add. However, they would provide for quite a little bit of usefulness in creating automated scripts. Furthermore, I believe that a properly crafted specialized sensor call could generate less lag than the usual llSensor("", NULL_KEY, ACTIVE|PASSIVE, 96.0,PI) calls that are in just about every single script that uses sensor.

Just my $0.02

-Thordain Curtis


WarKirby Magojiro made changes - 04/Jun/07 07:34 PM
Field Original Value New Value
Link This issue Relates to MISC-243 [ MISC-243 ]
Haravikk Mistral added a comment - 21/Jun/07 12:28 PM
Would love to have llGetAvatarKeysOnEstate() certainly. On the issue of llDetected* bloat, a big issue that also needs addressed is the lack of any other way to get the information they provide, as such it would be nice to have more llKey2* calls. I've posted these in SVC-348

McCabe Maxsted made changes - 11/Jul/07 06:56 AM
Link This issue is related to by SVC-301 [ SVC-301 ]
Angel Fluffy made changes - 22/Jul/07 06:52 PM
Link This issue is related to by SVC-241 [ SVC-241 ]
Angel Fluffy added a comment - 22/Jul/07 10:19 PM
Highly useful. This would eliminate SLBanLink.com's reliance on sensors, thus reducing load on sims as well as being useful from a security point of view.

More generally it would make it far easier to monitor a sim without the use of MANY sensors and relay scripts.


Angel Fluffy made changes - 22/Jul/07 10:26 PM
Summary Create new LSL sensor-type functions that are optimized for specific uses New LSL Super-Sensors
Thomas Shikami made changes - 23/Jul/07 05:54 AM
Link This issue Relates to WEB-240 [ WEB-240 ]
Thomas Shikami added a comment - 23/Jul/07 05:54 AM
I linked this to WEB-240 as these functions, especially llGetAvatarKeysOnEstate, llGetAvatarKeysOnRegion would be possible to implement as a capability and from a capability it isn't far to implement as a dataserver event

Angel Fluffy made changes - 23/Jul/07 03:32 PM
Link This issue is related to by SVC-456 [ SVC-456 ]
Angel Fluffy made changes - 23/Jul/07 03:32 PM
Link This issue is related to by SVC-241 [ SVC-241 ]
Angel Fluffy made changes - 06/Aug/07 08:04 AM
Link This issue is related to by SVC-267 [ SVC-267 ]
WarKirby Magojiro added a comment - 04/Sep/07 01:58 AM
Why would it need a dataserver event? The information is right there in the simulator. Dataservers are for gathering information about things outside of it, like assets, and agents.

This function should be able to return immediately.


SignpostMarv Martin made changes - 26/Sep/07 06:02 PM
Link This issue is related to by SVC-711 [ SVC-711 ]
Haravikk Mistral added a comment - 12/Oct/07 01:42 AM
One note;
I'd suggest changing the implementation, as the lists returned by these functions could be pretty huge. An alternative would be to do it like object inventory calls:

int llGetNumberOfAgentsInEstate()
int llGetNumberOfAgentsOnParcel()
key llGetAgentInEstateKey(int agent)
key llGetAgentOnParcelKey(int agent)

Or:
int llGetAgentCount(int mode);
key llGetAgentKey(int mode, int agent);

with constants for mode:
AGENT_IN_ESTATE
AGENT_ON_PARCEL


Haravikk Mistral made changes - 12/Oct/07 01:43 AM
Link This issue is duplicated by SVC-805 [ SVC-805 ]
Rob Linden made changes - 22/Dec/07 12:57 AM
Workflow jira [ 10597 ] jira-2007-12-21 [ 20535 ]
Rob Linden made changes - 22/Dec/07 01:13 AM
Workflow jira [ 20535 ] jira-2007-12-21 [ 21272 ]
Rob Linden made changes - 22/Dec/07 01:42 AM
Workflow jira [ 21272 ] jira-2007-12-21 [ 22936 ]
Rob Linden made changes - 23/Dec/07 12:09 AM
Workflow jira-2007-12-21 [ 22936 ] jira-2007-12-22a [ 48070 ]
Rob Linden made changes - 23/Dec/07 12:25 AM
Workflow jira-2007-12-21 [ 48070 ] jira-2007-12-22a [ 48845 ]
WarKirby Magojiro added a comment - 24/Dec/07 04:33 AM
Your implementation idea sounds neat, but I really thintk it needs a monolithis list return form, too. Having all the keys neatly compiled into a list would be very helpful, and cut down on list building. which would otherwise be required to create one

tatiana niven added a comment - 10/Feb/08 07:45 PM
That wouldn't be a safe implementation, Haravikk, as you can't be sure no agents entered or left the sim while you worked with the data (i.e. between you asking for data on avatar 3 and avatar 4, avatar 3 might leave, making avatar 4 avatar 3... etc. Headache

That said, a monolithic list could be pretty unpleasant - I can envision scripts running out of memory because they picked up a list of 50 keys.

Perhaps implement this in an event. For example, llGetAgentKeys(int mode) could trigger a sensor event (or it's own event) with the data.


Haravikk Mistral added a comment - 11/Feb/08 04:02 AM
Hmm, those are very good points. I guess it's not as big of a deal now that Mono is on the horizon, since it has an upper limit of 64k which wouldn't make a list of 50 or even 100 avatars that big a deal, since it would take up around 5.8k tops.

I guess a list would be the best bet then, with a delay to offset the creation of the list. If it comes to it one script could be made that fetches the list, and then feeds the entries into another script one at a time.


Sue Linden made changes - 13/Nov/08 12:01 PM
Workflow jira-2007-12-22a [ 48845 ] jira-2008-11-14 [ 80005 ]
Sue Linden made changes - 13/Nov/08 04:26 PM
Workflow jira-2008-11-14 [ 80005 ] jira-2008-11-14a [ 85907 ]
Sue Linden made changes - 13/Nov/08 04:37 PM
Workflow jira-2008-11-14 [ 85907 ] jira-2008-11-14a [ 89154 ]
Sue Linden made changes - 13/Nov/08 04:44 PM
Workflow jira-2008-11-14 [ 89154 ] jira-2008-11-14a [ 91577 ]
Ezian Ecksol made changes - 23/Jan/09 06:28 AM
Link This issue is related to by VWR-11683 [ VWR-11683 ]