Second Life News 2013-15

Lots of bits and pieces are coming out. CHUI has made it to the main viewer. That is allowing lots of things to move forward. The Materials System now has a Project Viewer (link in left column – currently alpha version per Oz Linden – if used to edit existing content it may break it). We are seeing Third Party Viewers come out with Server Side Appearance (Baking). See Kokua 3.5.1 now with CHUI and SSA. The HTTP package is moving forward and the Interest List updates are everywhere.

Honour has a post about things changing in Group Management.

Server-Scripting Meeting - 560LI Flattened Sphere w?Materials

Server-Scripting Meeting – 560LI Flattened Sphere w?Materials

Server Rollouts

Today there will be no rollout to the main channel. None of the Release Candidates made it past testing. So, those packages are getting updates Wednesday and will run for another week.

Blue Steal and Le Tigre will continue to run the package with the new scripting functions for animation overriding. There are some changes to improve how these functions work with other scripted items, such as pose balls.*

Magnum had the update to HTTP Protocols. That package gets some bug fixes and will continue to run on Magnum. 

BUG-2164

BUG-2164Allow poseballs to stop custom sit animations. By: Code Violet. Status: Accepted

Description: In a recent office hours re the new llSetAnimationOverride(), Maestro is quoted saying “poseball type objects should (now) use llStopAnimation(llGetAnimationOverride(“Sitting”)) instead of llStopAnimation(“sit”) in order to play nicely”.

Maestro’s advice apparently does NOT work, as the animating furniture script will not return a useable animation name from llGetAnimationOverride(“Sitting”), unless that animation file exists in the furniture (the chances that the AO’s animation files exist in the furniture is practically zero).

For this to work: furniture that uses PERMISSION_TRIGGER_ANIMATION would need to be able to disable the sit-override set by llSetAnimationOverride(“Sitting”,…).

However, My tests in Aditi today show that an empty string is returned by llGetAnimationOverride(“Sitting”), unless the animation exists in the prim. Even if the anim name was returned, by llGetAnimationOverride(“Sitting”) it would NOT be useful as llStopAnimation() requires a UUID to stop an animation when it does not exist in the same prim as the script.

Furniture scripters will probably receive an increasingly annoying stream of questions about why their furniture doesn’t work, when the reason will be that the person’s own AO is trumping the furniture’s sit anim.

I propose that PERMISSION_TRIGGER_ANIMATION is allowed to disable just the “Sitting” override that has been set by llSetAnimationOverride(). This could be done with llResetAnimationOverride(“Sitting”) or, at the very least: llGetAnimationOverride(“Sitting”) should provide a UUID that can be used by llStopAnimation(), when only PERMISSION_TRIGGER_ANIMATION has been granted.

This way, users will still be able to set a sit-override for non-scripted furniture, but scripted furniture (with specific animations set by the furniture creator) will be able to function properly by disabling the override.

When an avatar is on furniture they are ALWAYS “Sitting” (furniture never needs to worry about the “Flying”, “Standing”, “Walking”, etc.. ) so, “Sitting” is a special case.

In the past, we have always needed to educate people that users aren’t supposed to have sit-overrides activated when they sit on furniture or pose balls, as there is no reliable method to stop AO sits. This has been a major PROBLEM and I feel that without attention these new changes will only make it worse in this respect.

PLEASE MAESTRO AND KELLY: A LITTLE ATTENTION HERE IS A GOOD OPPORTUNITY TO END A LONG-STANDING SL PROBLEM OF AO’S BATTLING WITH SCRIPTED FURNITURE.

I’ll include below a very simple sit script that may help anyone testing this: to be placed in an object along with a sit animation (and sat on), works only in sims with the new functions enabled…. But note that a separate script using llSetAnimationOverride(“Sitting”,…) will first need to be applied in any test.

default{
	state_entry(){
		llSitTarget(<0,0,0.1>,ZERO_ROTATION);
	}

	changed (integer change){
		if(change & CHANGED_LINK){
			if(llAvatarOnSitTarget()){
				llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
			}
		}
	}

	run_time_permissions(integer perm){
		if(llGetPermissions() & PERMISSION_TRIGGER_ANIMATION){
			llStopAnimation(llGetAnimationOverride("Sitting"));
			llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
		}
	}
}

This code can only be tested in specific regions in both ADITI and AGNI: Blue Steel and Le Tigre regions in AGNI and in ADITI those listed in the JIRA item.

Voxel World Generation

Hamlet Au has an article on New Worlds Notes: Confirmed: Philip Rosedale Creating Next Generation Virtual Reality Project, Likely With a 3D Voxel Engine.

I find this interesting. Right now we are working hard to keep our Land Impact costs down by reducing polygon counts. This technology would eliminate most of that work. Phillip is working on a project described here: High Fidelity.

I am curious if any of this technology will find its way into Second Life.

Linden Communication

The Lab will never be able to make everyone happy with how they communicate. But, the SL Blog is getting chattier. Check out the Featured News section.

Interest List II

The next iteration of the Interest List upgrades is coming through. There are three items Andrew considers noteworthy.

  • Optimizations to reduce the CPU cost of sending Interest List data.
  • Improved UDP streaming by balancing bandwidth use.
  • Viewer hints to help the server build the interest list.

Some hints will be sent when the viewer connects with the server. The hints will allow the server to modify its behavior for that client. For instance, the viewer can tell the server that it doesn’t have any cache for the particular region, which allows the server to not bother sending the “cache probe” messages as the Lindens call them (the ObjectUpdateCache messages).

Describing it in more detail Andrew said, “’cache probes’ are lists of object local_id’s and their versions that are sent to the viewer. The viewer then checks its cache to see if it has each local_id, and whether the version for that ID is the same as supplied in the probe. If it DOES have that info, then [the viewer] does not respond to the simulator. But if it does NOT have it, it [the viewer] sends a “cache miss” and the server will then reply with the object data.

So, if the viewer has no cache for that region whatsoever, then the server can not bother sending the cache probes, and just sends the data.”

Andrew tells us the second hint sent by the viewer is that the viewer will accept cacheable data for ALL objects in the region, even those that are not visible. Andrew tehn said, “This will cause the server to send non-visible cacheable data to the viewer, including sky boxes way out of view. The idea here is to allow the viewer to cache more data, in case it wanders into distant corners of the region. The data is sent on a delay, so the non-visible objects are not streamed as soon as you arrive. So that if you’re just passing through the region (within about 60 seconds) then there is no need to get all the data.

The non-visible data is sent in a slightly lazy fashion, basically half speed of normal, which means it might take about 10 seconds to download most of the non-visible stuff on a normal 500kbps internet connection.

The viewer side of these changes is nearly complete. I suppose that means we will see it in viewer-development soon.

Known Problems

One of the problems Andrew Linden is working on is the problem with items behind you that generate sounds. If they are behind you, you do not hear the sound. While Andrew is aware of the problem, he has not started working on it yet. He is thinking about possible fixes. I suppose he is looking for something that might be a comprehensive fix for things behind the avatar that have an effect on the scene whether seen or not.

There is a known problem of things not being rezzed by the viewer. These are the items that rez as soon as you click on them. So, it has pretty much been figured out with help from several people that it is a viewer side issue.

Andrew says, “The fact that it shows up when you click on it means the viewer must know it is there to be able to detect your click.

What has changed is that the server now considers much more content to be “cacheable” and I believe the bug is related to objects that are in the “object cache”.

Andrew’s theory is: “It used to be that the server’s definition of what was cacheable was ‘anything that is static and does not have a script’.

That definition was expanded in the Interest List Code that was promoted last week to be: ‘anything that hasn’t changed appearance or position in the last couple of minutes.’

Region Crossings

Word in the Deploy thread last week was that the region crossings had greatly improved. There is some reporting of crossing problems and failures still, like every third crossing failing.

The thinking now is that if regions are running different versions, the problem is likely. It is supposed to be possible to reproduce the error at Red Windsor and Stepaside.

One thought on “Second Life News 2013-15

  1. Pingback: Dies und Das aus dem Web (KW 15 / 2013) - [O.L.D.] Old London Docks

Leave a Reply

Your email address will not be published. Required fields are marked *