The Experience Keys project viewer

The cornfield (game play area iuses a much darker and more atmospheric windlight)
The Cornfield: the Lab’s Experience Keys demonstrator (game play area uses a much darker and more atmospheric windlight)

On Monday July 14th, Linden Lab issued the Experience Keys project viewer alongside the launch of their Experience Keys demonstration game, The Cornfield, which I’ve reviewed separately.

As a quick overview for those not in the know, an Experience in Second Life can be almost any immersive / interactive environment within SL where the user needs to provide permissions for objects, etc., to interact with their avatar. Experience Keys mean that anyone wishing to participate in any activities suited to the use of Experience Keys need only give their assent once, thereafter, actions within the Experience which affect their avatar happen automatically – teleports, attaching a HUD or item of equipment, etc. – without any need for user approval (although notification of so actions may still be displayed in the viewer window).

The Experience Keys project viewer – version 3.7.12.291846 at the time of writing – is available from the Alternate Viewers wiki page, includes a number of key UI updates which are used alongside experiences in Second Life, and which apply to those creating experiences, those using experiences, and those who allow experiences to run on their land.

Please note that until server-side support for Experience Keys is fully deployed across the main grid (Scheduled to complete on Thursday July 17th, some elements of the viewer will not function on BlueSteel or LeTigre RC regions  – for example, searching for experiences will not return any result if you are on a region running on either of these two RCs).

The Experiences Floater

Within the Experience Keys project viewer, this is accessed via Me > Experiences (no toolbar button or keyboard shortcut with the project viewer), and provides the means for users to locate experiences in Second Life, manage the experiences they have encountered during their travels through Second Life or which they have created or contributed to, and also check any actions any given Experience has performed on their avatar. It comprises five individual tabs.

Search

Allows you to locate experiences in SL by all or part of their name and filtered by maturity rating. The tab also includes an option to view the profile for an Experience (see below).

The Experience floater is accessed via Me > Experiences, and comprises 5 tabs. Search allows you to search for SL experiences
The Experience floater is accessed via Me > Experiences, and comprises 5 tabs. Search allows you to search for SL experiences

Allowed / Blocked

These two tabs allow you see those experiences you have either allowed – that is, you’ve granted permission to – and those you’ve blocked. A blocked experience is one in which you have refused to participate and have blocked it so that you will no longer be prompted to join it whenever you visit a region / parcel where it is active (until such time as you choose to revoke the block).

Each tab displays a list of experiences by name. Clicking on a name will display the relevant Experience Profile (see below).

The Experiences Allowed tab displays a list of experiences in which you have participated. Click on an experience name to display the associated Experience Profile. The Blocked tab is similar in nature, but displays all experiences you have blocked from bothering you
The Experiences Allowed tab displays a list of experiences in which you have participated. Click on an experience name to display the associated Experience Profile. The Blocked tab is similar in nature, but displays all experiences you have blocked from bothering you

Admin, Contributor and Owned

These three tabs respectively display:

  • Those experiences for which you have been made an administrator of (via a special group role called Admin). Administrators are those people assigned by the creator of an experience who can edit the Experience Profile
  • Those experiences for which you have been made a contributor (via a special group role called Contributor). Contributors are those people assigned by the creator of an experience who can contribute scripts and objects to an experience
  • Those experiences you have created and own. While an experience can be a collaborative piece – hence the Admin and contributor roles – one avatar must be the designated owner of an experience and hold overall responsibility for it.

Events

This tab allows you to see the actions (events) taken on your avatar by any experiences in which you’ve recently participated. It includes a number of additional options:

  • Notify: turn-on on-screen notifications for a given event – so if you wish to be notified each time your avatar is animated by any experience, for example, you can use this button
  • Profile: display the Experience Profile for the experience associated with the event
  • Report: will open the Abuse Report floater, which has been pre-populated with the relevant information, allowing you to instantly file an Abuse Report against an event / object which is causing grief  / harassment
  • Notify All Events: checking this will cause all on-screen notifications for events within any experience to be displayed by the viewer
  • Days: the total number of days history of events you wish the tab to display
  • Clear: clear the event list
  • < and >: page through the list.

Experience Profile

The Experience Profile floater
The Experience Profile floater

The Experience Profile provides the following  information on any given Experience:

  • The experience name
  • A short description
  • An image (if provided)
  • The maturity rating for the experience
  • The experience owner
  • The group associated with the experience
  • A link to any associated Marketplace store

In addition, the Profile contains four buttons:

  • Allow: will add the Experience to your list of allowed experiences without you having to actually visit it and agree to participate. When visiting experiences allowed in this way, you will not see any invitational dialogue boxes displayed, because the system will already consider you a participant. Note that if you have already participated in the experience, this button will be grayed-out
  • Block: will add the Experience to the list of those you have blocked, so that you will not be bothered with any invitational dialogues when visiting regions / parcels where it is running – although you also won’t be able to participate in it until such time as you unblock it. Note that if you have already blocked the experience, this button will be grayed-out
  • Forget: If you have previously added an Experience to either your Allowed or Blocked list, this button will remove it from whichever list it appears on. This means that for a previously allowed Experience, you will have to once again agree to participate in it when you next visit, and for a previously Blocked Experience, you will receive invitational dialogues on visiting it once more, allowing you to participate in it, if you’ve changed your mind.
  • Report: opens the Abuse Report floater, which has been pre-populated with the relevant information, allowing you to instantly file an Abuse Report against an event / object which is causing grief  / harassment.

Continue reading “The Experience Keys project viewer”

SL projects update week 29/1: server, viewer, Experience Keys

Server Deployments – Week 29

As always, please refer to the server deployment thread for the latest status / updates / issues.

Main (SLS) Channel

On Tuesday July 15th, the Main channel was updated with the Experience Keys project, which had previously been running on Magnum. This roll-out coincides with the release of the Experience Keys project viewer (see below) and the release of the Lab’s first Experience Keys demonstrator game, The Cornfield.  Please refer to the release notes for further information.

Release Candidate Channels

On Wednesday July 16th, the Magnum RC should be updated a new infrastructure project that adds support for the upcoming changes to the Skill Gaming policy. This would appear to be the changes required to support the new Skill Gaming region type. Release notes.

On Thursday July 17th, BlueSteel and LeTigre will both be updated with the Experience Keys project, but will otherwise remain on the same  server maintenance project as week 28, which addresses a JSON-related bug, an interest list related race condition, and to improve L$ transaction logging for payments made by scripted objects. See the release notes (BlueSteel) for details, and part 2 of my projects update for week 28.

SL Viewer

As noted above, the Experience Keys project viewer, version 3.7.12.291846, was released on Monday July 14th. This provides viewer-side support for accessing and managing SL experiences using the new Experience Keys permissions capabilities.

The Search tab on the new Experience floater - part of the Experience Keys project viewer
The Search tab on the new Experience floater, accessed from the Experiences option in the Me menu in the Experience Keys project viewer

This viewer can be used in conjunction with the Lab’s Experience Keys demonstrator game, The Cornfield, and with other experiences as they are opened to public use. Please keep in mind that the viewer may not behave correctly until after the server-side deployment of Experience Keys support has completed on Thursday July 17th.

For further details on Experience Keys, please refer to the following:

There are also some further notes from Dolphin Linden on the subject, below.

Yet More on Experience Keys

Dolphin Linden at the Simulator UG meeting
Dolphin Linden at the Simulator UG meeting

Dolphin Linden again attended the Simulator User Group meeting on Tuesday July 15th, where he answered more question on the Experience Keys project.

Lucia Nightfire offered up a couple of points of feedback which appear especially relevant to the new capabilities:

  • An estate / parcel setting to disable all non-experience scripts. This would be useful in game experiences, as it could prevent participants cheating by using non-game scripted objects
  • An estate / parcel setting to block all grid-wide experiences from running on an estate / parcel. Currently, any grid-wide experiences which come on-line have to be explicitly blocked by name, which means if an estate / parcel owner didn’t want any grid-wide experiences running on their land, they’d have to keep adding them to their block list as and when they become aware of them. A single check-box option would eliminate this.

Feature requests are to be filed on both of these points, which the Lab have agreed to look into.

Other Bits

Sim Crossing Hiccups

There have been renewed reports of region crossing issues which seem to be occurring regularly, but only between certain regions when tested. The issues mainly appear to affect vehicles and take the form of the avatar taking an exceptionally long period of time to cross between regions – with the vehicle the avatar is say upon taking up to 30 seconds longer. When this happens, the avatar appears to be visually unlinked from the vehicle, but the vehicle itself fails to get auto-returned, as the simulators appear to consider the avatar and vehicle as still being linked.

Motor Loon provided some specific details on the issue, and has indicated he will raise a bug report using the information he has, as the Lab are unaware of any specific problems which may cause this. However, while it has yet to be confirmed, it was also reported at the meeting at a similar issue on a region crossing between two regions was resolved by restarting them in a specific sequence.

SL projects update 28/3: more server and viewer news

Banana Island - The Pilgrim's Dawn; Inara Pey, March 2014, on FlickrBanana Island, The Pilgrim’s Dawn, March 2014 (Flickr)

Server Deployments Week 28 – Recap

  • On Tuesday July 8th, the Main (SLS) channel was updated with the server maintenance project that was previously on BlueSteel and LeTigre.  This project adds the ability for LSL functions to view and modify the render materials (normal mapspecular map, and diffuse texture alpha mode) properties on prims, via new prim parameters – release notes
  • On Wednesday July 9th, the RC channels were updated as follows:
    • BlueSteel and LeTigre received the same new server maintenance update to address a JSON-related bug, an interest list related race condition, and to improve L$ transaction logging for payments made by scripted objects
    • Magnum remained on the Experience Tools project, and receives the same updates as the Main channel, so LSL support for materials is now grid-wide.

 BlueSteel / LeTigre Updates

Commenting on the server maintenance update deployed to BlueSteel and LeTigre at the Server Beta UG meeting on Thursday July 10th, Maestro Linden explained one of the bug fixes (BUG-6466) and the L$ transaction update thus:

The LSL JSON bug fix, BUG-6466, just makes it so that numbers in the format “1.0e+2” get parsed as JSON numbers.  Previously, they’d be treated as strings (though “1.0e2”  would be treated as a number). The spec says that “+” is optional, so we added that support.  I’d be surprised if more than 2 people end up noticing that change 🙂 .

The one non-bug fix change in BS and LT is more verbose logging of certain L$ transaction types … Historically, a L$ transaction from scripted payment (llTransferLindenDollars or llGiveMoney ) would not include the name of the object that did the payment, when you viewed it in the “L$ Transactions” section of the website. However you would see that information if somebody had paid L$ into an object.

Previously, the entry would just look like this: Destination: Maestro Linden; Object Pays; Region: Morris.

But now, with the update to BS and LT, transactions in those regions will additionally include this line: Description: <Name of object which paid>. The page where you see the difference is https://accounts.secondlife.com/transaction_history/. Anyway, it could be useful for understanding which of your objects are paying out L$. Assuming they’re not all named “Object” :).

The remaining fix, “Temp Attachments are sometimes not removed on the viewer when detached from a region change event”, was related to a race condition, and explained by Simon Linden:

Updates were out-of-order there. Basically if your script took things off on the region change, anyone might get the updates out-of-order. It was worst on slow connections. For those who are curious, it went like this:  if the first update from the new region was slow, the “kill” message removing the object would happen first, and get ignored.

So in other words, items which should have been removed appear to remain in place, with Simon adding:

In this case you can’t detach it … because for the sim, it’s already gone. The viewers are the ones out-of-sync with the server. So you right-click and detach again and nothing happens.

The fix on BlueSteel and LeTigre should hopefully prevent this from occurring during a region change to regions on these channels.

SL Viewer

Maintenance RC Viewer

A new Maintenance RC viewer appeared late on Thursday July 10th. Version 3.7.12.291824 contains almost 40 MAINT fixes intended “to make your Second Life smoother”. The list of fixes include:

  • MAINT-3135 Cocoa Viewer: Mac: Maximizing the viewer leaves garbage on the screen
  • MAINT-3154 Alt zoom zooms way out when attempt to zoom in on Mac build running with external monitor
  • MAINT-3171 Alt-clicking while moving mouse can move the camera significantly
  • MAINT-2980 Reevaluate the 512 meg texture cap
  • MAINT-4216 Double clicking on anything in COF removes it from your avatar – including skin, shape, hairbase and eyes – results in bakefailed avatar
  • MAINT-4001 Received Folder is movable within Recent Tab – see my notes here on this issue
  • MAINT-3610 SL viewer partly ‘eats’ chat-message.

 

Please refer to the release notes link above, for the full list of MAINT fixes.

Library Refresh Project Viewer

The Lab issued a new project viewer on Wednesday July 9th, version 3.7.12.291799, which contains a number of updates related to the third-libraries used by viewer. This viewer has grown out of Monty Linden’s ongoing HTTP work, which required the update of several essential libraries used by the viewer, and Monty took the opportunity to undertake a more extensive update of the libraries.

These library updates should provide better security, stability and consistency improvements to the viewer. However, an advisory to Mac users warns that the updated libraries in the viewer have been built with a minimum OS level of 10.6. Therefore, this viewer, and future viewers based upon it, will not run on OS X 10.5.

While the viewer is primarily intended for testing purposes, and doesn’t contain updates which are liable to be noticed by most LS users, it is thought that it might help those encountering very specific SSA-related issues, the release notes stating:

A few users have experienced problems with avatar appearance due to their very specific network configuration. Gray avatars are accompanied by ‘Transferred a partial file’ errors in the SecondLife.log file. Linden has not been able to reproduce this internally but a possible workaround is found in this release.

A list of related JIRA reports is also given, but none of these appear to have been switched back to public access at the time of writing. They are: BUG-3323, BUG-3770, BUG-3877, BUG-3879, BUG-3882 and SH-4375.

Other Items

SL AIS Viewer login / Attachments Issue

Users on the SL viewer using the AIS v3 viewer code are reporting issues with attachments when logging-in to Second Life.

Some of the issues are described as a user logging-in to find their hair or (mesh) foot / hand or other attachment incorrectly positioned, and the only way to rectify the situation is to re-log. Some have suggested that swapping between a non-AIS v3 viewer and the AIS v3-enabled viewer may trigger the situation.

Some bug reports (BUG-890 and BUG-2772, both unfortunately non-public at the time of writing) have been pointed-to as examples of the problem, and further reports have been requested should it be encountered, with Coyot Linden noting for those wishing to file a JIRA on the matter:

One way to get a grapple on that sort of thing is to start a test run and keep track of the login times and regions.  When you hit a fail, logout and do one more and see if it succeeds.  If you provide that and the viewer logs, it would be easier for someone to do some log diving to figure out what the problem is.

Coyot Linden Takes the Driving Seat

Maestro Linden is  taking a three-week vacation from the Lab and Second Life. In his absence, Coyot Linden will be occupying the driving seat for the Thursday Server Beta meeting.

SL projects update week 28/1: server and viewer updates

Server Deployments

As always, please refer to the server deployment thread for the latest news and information.

Main (SLS) Channel

On Tuesday July 8th, the Main channel was updated with the server maintenance project that was previously on BlueSteel and LeTigre.  This project adds the ability for LSL functions to view and modify the render materials (normal mapspecular map, and diffuse texture alpha mode) properties on prims, via new prim parameters – release notes.

Release Candidate (RC) Channels

On Wednesday July 9th, the three release candidate channels should be updated as follows:

  • BlueSteel and LeTigre should receive the same new server maintenance update. This project addresses some miscellaneous bugs, and improves L$ transaction logging for payments made by scripted objects.
  • Magnum remains on the Experience Tools project, and receives the same updates as the Main channel, so LSL support for materials will be grid-wide following the deployment.

SL Viewer

On Tuesday July 8th, the Snowstorm RC viewer, version 3.7.11.291465 was promoted to the de facto release viewer. The viewer includes multiple contributed updates from the SL open source community, including (but not limited to):

  • STORM-68 Allow setting of default permissions on creation of objects, clothing, scripts, notecards, etc.
  • STORM-1831 Obtain LSL syntax table from simulator so that it is always up to date
  • STORM-1972 Restore particle debug display
  • STORM-2011 Improve loading of Group member list
  • STORM-2015 Region restart sound alerts play only locally.
  • STORM-2020 Restore RenderSpecularExponent.
With the new release viewer, users can now set their own default permissions for newly-crated prims, textures, etc.
With the new release viewer, users can now set their own default permissions for newly created prims, textures, etc.

Windows XP users please note: with this release, you must have either Service Pack 3 (Windows XP 32-bit) or Service Pack 2 (Windows XP 64-bit) installed on your system in order to install this and future versions of the SL viewer – see the release notes. Please also note that no Windows XP operating systems are supported by Linden Lab.

Other SL viewers remain as per the Alternate Viewers wiki page and my Current Viewer Releases page.

 Experience Keys (Tools)

There was a Q&A session at the simulator User Group meeting on Tuesday July 8th with Dolphin Linden, to discuss the Experience Keys (Tools) project. For ease of reference, I’ve included notes from that session in a separate report.

 

SL projects update 25/1: server, viewer, pathfinding and surprise guest

The Simulator User Group meeting on Tuesday June 17th was busy even before the unannounced guest dropped in (see below)
The Simulator User Group meeting on Tuesday June 17th was getting busy even before the unannounced guest dropped in (see below)

Server Deploys, Week 24

As usual, please refer to the server deployment thread for the latest information.

Main (SLS) Channel

On Tuesday June 17th, the Main channel was updated with the Group Ban project, which was previously on the LeTigre RC.  As the name implies, this project adds the ability to ban users from groups (see also SL Viewer Updates, below) – release notes.

Release Candidate Channels

On Wednesday June 18th the three RC channels should be updated as follows:

  • LeTigre should receive a new server maintenance project this week, which comprises an anti-griefing measure – release notes
  • BlueSteel should remain on the Sunshine / AIS v3 project, the viewer for which was promoted to the de facto release viewer (version 3.7.9.290582) on Monday June 16th. In addition, BlueSteel should receive the Main channel update with the Group Ban project and the anti-griefing update deployed to LeTigre – release notes
  • Magnum should remain on the Experience Tools project. In addition, Magnum should will receive the Main channel update with the Group Ban project and the anti-griefing update deployed to LeTigre – release notes.

SL Viewer Updates

Release Viewer

On Monday June 16th, the MemShine release candidate viewer, (version 3.7.9.290582, was promoted to the de facto release viewer. This viewer includes the final Sunshine AIS v3 updates (promoting the Lab to issue a blog post announcing the long-running project Shining is now complete), and also a series of memory leak fixes to help stabilise the viewer and hopefully reduce the number of memory related crashes.

Group Ban project Viewer

As noted above server-side support for the Group Ban project is being deployed to the main grid. To coincide with this, the Lab issued the Group Ban project viewer (version 3.7.8.290887) on Tuesday June 17th, which provides the necessary viewer-side support for accessing group ban functions. Initial instructions for using the viewer can be found in the release notes, and I’ve provided an overview as well.

Group Chat

Simon Linden recently completed an initial amount of work on group chat, implementing some small-scale optimisations which, while not expected to have “fixed” group chat, should have improved some aspects of using it, reliability-wise. He’s more recently had to work on what have been viewed higher priority items, but is hoping to make a return to group chat in the very near future and dig into it some more. “I learned a lot on the first pass,” he said on the matter during the Simulator User Group meeting on Tuesday June 17th, “we got a lot more information on where the load is.  Thus I have hopes the next round will be better.”

Other Items

Pathfinding and Terrain Editing

BUG-772 “Simulator refusing to rez objects after 10 hour timeframe” was raised at the Simulator User Group meeting on Tuesday June 17th. This is an issue where if you are carrying out terraforming work on a region with pathfinding enabled, and are also making frequent Pathfinding navmesh updates, your region will rapidly run out of memory. the way to avoid this is to complete the terraforming activity, then rebake the navmesh and restart the region.

LSL Enhancements

Ideas were tossed around the Simulator User Group meeting on the limitations of LSL, many of which may only be resolved through a complete re-build of LSL, something which is unlikely to happen, as Simon Linden indicated in the meeting, “I don’t think we’re going to touch the internal design of LSL if we can help it.” Which doesn’t mean there will not continue to be enhancements to LSL functions etc.

One suggestion made to get around some of the issues was for the development of a viewer-side scripting language which might handle certain local functions and abilities. Responding to this, Simon would only say, “That would be a wonderfully big project :).”

Continue reading “SL projects update 25/1: server, viewer, pathfinding and surprise guest”

SL projects update 24/2: viewer, LSL materials functions

 Server Deployments Week 24 – Recap

  • There was no new deployment to the Main (SLS) channel, although it was subject to a grid-wide restart following schedule maintenance on Tuesday June 10th
  • BlueSteel returned to the Sunshine / AISv3  inventory update, which requires the use of the Sunshine RC Viewer
  • LeTigre once more had the server-side group ban project updates deployed to it. See the release notes for details
  • Magnum returned to the Experience Tools project.

The RC channel updates were essentially the same updates as deployed in week 23, but subsequently overwritten following a grid-wide security issue update.

SL Viewer

The Snowstorm code contributions viewer appeared as a project viewer on June 12th. Version 3.7.9.290788 includes some 20 code contributions to the viewer, including:

  • STORM-68 Allow setting of default permissions on creation of objects, clothing, scripts, notecards, etc.
The new floater for setting default permissions for created items as it should appear in the Snowstorm viewer
The new floater for setting default permissions for created items as it should appear in the Snowstorm viewer
  • STORM-1831 Obtain LSL syntax table from simulator so that it is always up to date: this update allows the viewer to obtain the information required for syntax highlighting directly from the simulator the viewer is connected to, eliminating issues with using manually updated syntax files within the viewer falling out-of-synch with the simulators as new LSL syntax as new functions and parameters, etc., are added
  • STORM-1966 Block installation on old and unpatched versions of Windows: this updates causes the viewer’s Windows installer to check to see Windows XP systems have the latest patches installed (i.e. Service Pack 3 for 32-bit XP and Service Pack 2 for 64-bit XP). Any XP systems not meeting these requirements will be unable to install the viewer until such time as they are updated. Additionally, Windows Vista and Windows 7 systems  lacking a Service Pack update will receive a warning, but installation of the viewer will not be blocked

For the full list of OPEN and STORM updates, please refer to the release notes.

LSL Functions for Materials

The Server Beta Meeting on Thursday June 12th included tests to see whether the new LSL functions for materials might offer griefing opportunities. Maestro Linden had created two 256 prim linksets using default prim cubes, one of which was scripted to use PRIM_NORMAL to continuously set a unique material on each of the 6 faces of each prim, and the other was scripted to continuously set PRIM_TEXTURE on each face to a different alpha-blended diffuse texture.

Two sets of four of these objects were rezzed in turn, and meeting attendees asked to monitor their viewer performance (FPS and UDP bandwidth) while the Lab watched the simulator.

Server-wise, performance was largely unaffected by either type of object, with the load being largely controlled by the built-in LSL performance controls. Throughout both tests, and with no  objects rezzed, script spare time remained almost constant around the 14-15ms mark.

Viewer-wise, both types of object impacted FPS, with most people reporting around a 50% drop from the materials-enabled objects, compared to around 40% with the texture changing objects.

Both tests saw an increase in UDP information being sent to the viewer, with bandwidth use increasing by a factor of around 3.5 to 4 (e.g. 180-200kbps to 700-800kbps) with the materials objects and a factor of around 5 to 5.5 for the texture changing objects. As indicated by Maestro, the lower bandwidth use by the materials objects was due to the throttles already in place for how quickly the viewer will look up materials properties.

The takeaway from this (and other tests Maestro has performed) is that scripted materials controls are unlikely to be a major source of griefing. The simulator seems to handle excessive use of script materials in its stride, and impacts on the viewer’s frame rate can be mitigated by using Develop > Show Updates to Objects (CTRL-ALT-SHIIFT-U) to block the offending object.

There are still concerns over potential bandwidth impacts, such as by combining the materials LSL functions with other scripted controls, and concerns how the viewer might be affected by peculiar uses of the materials functions (such as combining them with the already laggy animated mesh tails that are available). However, it seems that for now, the Lab will continue to monitor things to see what happens and whether anything unexpected does crop-up, rather than moving immediately to apply throttles to the functions.

In the meantime, the arrival of these functions has prompted people to start putting together feature requests to be able to animate diffuse (texture), normal and specular maps on an object / object face independently to one another. The Lab has previously indicated that trying to do this via llSetTextureAnim() would be “pretty ugly to implement or would need some careful design …” and that as such they have no plans to try this at present. It’ll be interesting to see if any feature request(s) put forward persuade them otherwise.