SL project updates 34/1: server, viewer, MIME Type updates

Cocoon, Japan Rose; Inara Pey, August 2017, on Flickr Cocoonblog post

Server Deployments Week #34

Please refer to the deployment notice for the week for latest updates and news.

  • On Tuesday, August 22nd, the  Main (SLS) channel was updated with server maintenance package, 17#17.08.11.328159, comprising internal fixes and the following feature requests:
    • BUG-5398: llGetObjectDetails() constants OBJECT_SELECTED & OBJECT_SAT_UPON. This sees the addition of two new parameters:
      • OBJECT_SELECTION_COUNT – returns how many agents are selecting any link in a linkset
      • OBJECT_SITTER_COUNT – returns how many agents are sitting on any links in a linkset.
    • BUG-9666: llGetObjectDetails() constants OBJECT_REZ_TIME, OBJECT_CREATION_TIME and OBJECT_RETURN_TIME.
    • BUG-134057 OBJECT_CREATION_TIME output precision possibly clamped – this sees a shift to 6-digit precision.
  • The three RC channels are, at the time of writing, TBD on the status of any update. However, it is believed (as per Rider Linden at the Simulator User Group meeting), should have additional logging for altitude changes, a couple new constants for llGetObjectDetails and some additional validation for mime types passed into HTTP requests. There is also a change that lets you customize what is passed in the Accept header.

SL Viewer

There have been no viewer updates so far this week, leaving the various pipelines as follows:

  • Current Release version 5.0.6.326593, released on May 26, promoted June 20 – formerly the AssetHTTP RC viewer – overview
  • Release channel cohorts:
  • Project viewers:
  • Obsolete platform viewer version 3.7.28.300847, dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

llHttpRequest MIME Types Updates

On Thursday, August 17th August, Oz Linden opened a forum thread of on the latest MIME type update the Lab is implementing. The latest changes involve validating the MIME type values:

  • The HTTP_MIMETYPE parameter to llHTTPRequest is checked. LSL will validate these for proper format; requests that attempt to send an improperly formatted type will send a debug channel error, not send the request, and return a null request key.
  • If you use the new HTTP_ACCEPT option to llHTTPRequest (which allows you to further restrict the type your script expects), the Content-Type of the response is checked to see that it matches your restriction; if it does not, the http_response event will be a 415 error and the body will be “Unsupported or unknown Content-Type”. Further details about HTTP_ACCEPT can be found in llHTTPRequest on the SL wiki.
  • Incoming HTTP requests to a script check to see if the Content-Type in the request is formatted correctly and that it is an allowed type (it always checked for allowed types). Previously, it was possible to send a type that was syntactically invalid but matched an allowed wildcard type. Incoming parameters are not validated. If an incoming request has an improperly formatted or unacceptable MIME type, LSL responds with a 415 error response and no event is generated for the script.

Scripts using any of the above can be tested on the following regions:

Other Items

Script Memory

The Lab periodically receives requests for the Mono script memory limit (64Kb) to be increased.

There are concerns about any increase. Not everyone writing Mono scripts do so efficiently or conservatively; any increase in limits could lead to avatars carrying much larger script loads (even allowing for multiple scripts to achieve functions which might otherwise be managed in a single, large script), impacting teleports and regions during the same. Some suggestions have been offered by users for reducing such potential impact:

  • Limiting additional script memory to creators of experiences – which is not seen as overly positive.
  • Limiting any increased script memory for premium members – which might be an incentive for some to upgrade.
  • Limiting the number of scripts (currently around 2,500) a single avatar can have attached.
  • Forcing limits on memory use at compile time – which presupposes the about of memory a script in operation will require at compile time, which might not always be the case.

As it stands, it is unlikely the Lab will have time to investigate any increase in script limits – but they are aware of the requests.

Sansar: Secrets of the World Whale

Secrets of the World Whale; Inara Pey, August 2017, on Flickr Sansar: Secrets of the World Whale – click any image for full size

I’ve mentioned Secrets of the World Whale several times in my Sansar posts of late, so it seemed to be a good place to launch into my Exploring Sansar series.

Designed by Teager, of Breeder’s Choice and Teagle fame in Second Life, this is one of the more enchanting early Sansar experiences.  It is also one of the winners in the Lab’s Creator Challenge, winning Best Sound Design – although in my opinion, it could have just as easily been awarded Best Narrative and / or Best Visual Design.

Secrets of the World Whale; Inara Pey, August 2017, on Flickr Sansar: Secrets of the World Whale

A visit begins on a floating island hanging in a clouded sky, the Sun illuminating the scene as it shines from beyond a very near-looking full Moon. Other islands of rock float in the sky and, beyond them, a great blue-coloured humpback whale swims through the sky.  Beneath a tree close to where we stand sits an old rat, wrapped in a cloak and holding a walking stick in one paw.

“Look yonder! The World Whale passes!” he whispers hoarsely at our approach. “A creature as ancient as time itself, it wanders the sky, swallowing civilisations whole, leaving chaos in its wake.  It is said that buried deep in the beast’s belly is an untold treasure, lost to man some thousand years. Perhaps, if we act quickly, we might discover it before the whale is lost to us again!”

Secrets of the World Whale; Inara Pey, August 2017, on Flickr Sansar: Secrets of the World Whale

Just beyond him, a tumble of rocks offer a way down to the island’s lower level as the rat tells us of the whale’s passing, and music drifts through the air. We encounter him again as he stands near the edge of the island, as he points outwards. “There! On that island!” he rat whispers once more, “An ancient doorway! But how to reach it?”

How indeed. There is a gulf of empty air between the island on which we stand and the smaller one on which the glowing portal stands. But, there are other islands as well. Perhaps, by using the personal teleport capability (CTRL+mouse + left click) we can jump one to the next with teleport hops. Take care as you do so, as the wind will howl around you, and a misplaced step could see you fall into the abyss – and back to the start of the experience.

Secrets of the World Whale; Inara Pey, August 2017, on Flickr Sansar: Secrets of the World Whale

Stepping through the glimmering portal will carry you to the whale, where your companion rat is again waiting to guide you onwards to where a garden and ruins awaits. Paths run around and over the gardens, but it is one in particular you need to seek: the one that leads down inside the whale itself. Once you find it, you’ll find yourself in a cavern-like world, where great stalagmites rise and stalactites descend, and a rough road leads you onwards. It many take a second or two to realise the formations are teeth and the road is the whale’s tongue.  Two portals await you – one leads back to the garden above, and the other – well, you’ll have to visit the world whale in its mysterious flight and find out for yourself.

Secrets of the World Whale is an engaging experience, combining strong visuals with a rich ambient sound scape and music, with a narrative track to follow. There are a couple of small hiccups, potentially down to Sansar’s state of play – stay too close to the rat for too long while he’s speaking, for example, and his words can end up in an overlapping series of loops – just keep walking to the edge of the audio fall-off to avoid it. However, none of this detracts from the central attraction of the experience.

Experience URL