Second Life Combat User Group: May 23rd, 2024 summary

Credit: Rider Linden

The following notes were taken from the Thursday, May 23rd, 2024 Combat User Group meeting (also referred to as the Combat Committee User Group or CCUG, an abbreviation also used by the Content Creation User Group, and which I’ll not be using in these summaries to reduce the risk of confusion between the two). They form a summary of the core items discussed and responded to by Lindens, and are not intended to be a full transcript.

Meeting Overview

  • The Combat User Group exists as a forum to discuss improvements to the Linden Lab Combat System or LLCS to better support combat in Second Life.
    • The core idea is to provide additional events and capabilities which sit on top of LLCS to provide combat creators with better tools with which to create better combat systems for their specific scenarios.
  • The meetings are the result of a proposal document on improving the native damage system in SL, written by Rider Linden, and which is the focus for both the meeting and any work arising from them.
  • These meetings are conducted (as a rule):
    • By Rider Linden, with the support of Kyle Linden.
    • On alternating Thursdays (rotating with the Content Creation User Group) at 13:00 SLT. Meeting dates are recorded in the Second Life Public Calendar.
    • Initially in text, although voice might be included in the future depending on feedback from those attending.
    • At this location.
    • Discussion topics, requests, etc., can be found on the SL Feedback Portal Combat Board.
  • Additional details are available via the SL wiki Combat2 page.

Work In Progress

  • The current iteration of Combat 2.0 support on the server-side is due to be included in the Summer Fun simulator update. This is targeting a June 2024 release. However:
    • No date has been as yet given for when this update will commence deployment on the the main grid.
    • Any target dates given ahead of time are subject to final QA check-through and code clearances.
  • In preparation for the code going into the Simulator update, Rider is planning to freeze his own updates to the code in the week commencing Monday, May 27th, 2024.
  • This will very much be a release to find out exactly what works and what doesn’t for the Combat community/ies in Second Life and will be iterated upon going forward.
  • There are a couple of functions that might not make it into the initial release, although Rider is going to try to slip them in before QA freezes the Summer Fun code in preparation for deployment. These are:
    • Two additional parameter for llRezObjectWithParams – one that will set the collision filter on rez and a second that will make it derez if it’s rezzer goes away.
    • A new function – provisionally called llMedea (a reference to Greek mythology and vengeance), which will let an object unrez/kill something it has rezzed (hence the mythology reference).
  • The request for an llSensor function to check for objects with health has been acted upon. It is available in the Combat 2,0 sandboxes on Aditi and tests for “damageable” objects.

Comments and Requests

  • There were three Combat-related regions available to simulators on the Teen grid: Lexington, Concord, and No Man’s Land. These were seen as meaningful for many in the Combat community/ies, and a request has been made that, if possible, to bring them back to simulators on the main grid.
    • Rider passed this request directly to Product Operations, who were able to bring up all three regions after they had been off-line for 10 years 7 months (+some days, hours, minutes).
  • The request made at the previous Combat meeting for a possible new llSensor function has been written up – see Creation of llSensorwithParams.
  • A request was made to add a “fast” parameter to llRezObjectWithParams which would allow objects to rez at a reduced delay, thus allowing higher rates of fire for some weapons without the need for additional rez nodes. The issue here is that any such parameter could open up griefing vectors, as such it needs to be handled cautiously – if at all.
    • It was suggested the parameter could be managed at region owner / estate level (e.g. so only enabled where specifically required).
  • A further request for additional estate managements tools was made: one to disable the rez queue where required, as it is seen as causing major interruptions in combat scenarios.
  • There have been requests (including a feature request) for the first-person shooter improvements that have been added to the Black Dragon viewer to be considered for official implementation. This is a viewer-side feature, so would a) require a code contribution; b) would have to be considered for implementation by the viewer team.
  • A question was asked about avatar orientation / rotation (larger a viewer-side function) as whether it could be made more granular to determine where an avatar may have been hit with a projectile, rather than just getting a hit yes / no response.
    • Rider indicated he has some ideas for improving the handling of avatar rotations (e.g. force rotation, and / or determine rotation); however, it is going to take further research and testing before anything is made available.
    • Such a capability would have applications beyond just Combat.
  • There was a general discussion on RezObjectWithParamater bullets (and possibly “regular” bullets) colliding with an avatar / mesh on the same tick and not damaging the avatar (see related request here). Rider indicated there is no fix for this in the initial updates.
  • A request was made if there might be improvements to help with melee combat situations, to which Rider replied:
As a matter of fact yes. We’re going to have to hold off on collision type combat (just because of the way that works right now on the simulator) BUT you can use the technique of doing a quick sensor scan in the arc of your weapon and then applying damage directly to what you hit with llDamage.
  • An informal request was made for the Combat Log (Brigadier Linden) to record death positions. Rider felt this could be quickly added, and requested a formal Feature Request via the Feedback Portal. This was done, and he is now working on it.
    • A suggestion was added to this to also include the position of the damage object’s owner at that same instant. since people seem to be worried about auditing for cheating.

2024 SL SUG meetings week #21 summary

Quiet, Alpha Auer, May 2024 - click any image for full size
Quiet, Alpha Auer, May 2024 – blog post

The following notes were taken from the Tuesday, May 21st, 2024 Simulator User Group (SUG) meeting. They form a summary of the items discussed, and are not intended to be a full transcript, and were taken from my chat log and the video by Pantera – my thanks to her as always for providing it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • Meetings are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Simulator Deployments

  • On Tuesday, May 21st, the Main SLS channel was restarted without any deployment.
  • On Wednesday, May 22nd:
    • The BlueSteel RC channel should be updated with a re-deployment of the Spring Break Simulator update, after this had to be rolled back in week #20.
    • The rest of the RC simhosts will be restarted.

Upcoming Deployment

The major deployment for June is set to be Summer Fun. Among other things this should include:

  • Leviathan Linden’s game controller event work to support game controllers – although these will require a viewer-side update to expose the updated viewer UI.
  • Rider Linden’s work on the SL Combat System (SLCS) 2.0 updates (see my Combat User Group summaries for more).
  • LSL updates:
    • A new parameter to llRezObjectWithParams REZ_PARAM_STRING – allows the passing of a 1024 char string to the object being rezzed.
    • llGetStartString() to retrieve the string.
  • A fix for the notecard cache so that it a fixed amount of memory (enough memory to store 48 max-sized notecards) rather than the count of notecards.

SL Viewer Updates

No official viewer updates at the start of the week, leaving the pipeline as:

  • Release viewer: Maintenance X RC (usability improvements), version 7.1.7.8974243247, dated May 8 and  promoted May 13 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Materials Featurettes RC viewer, version 7.1.8.9103842320, May 17.
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Maintenance B RC (usability updates / imposter changes) 8820696922, April 29.
  • Project viewers:

In Brief

Please refer to the video for the following:

  • The feature request to prioritise 2K support for Bakes on mesh is gathering a lot of support.
    • This sparked discussion on VRAM being maxed out, and a reiteration that the viewer show only download textures at the resolution required to match their screen size (e.g. if the texture takes up 512×512 pixels – that’s the resolution downloaded and used), and only download and use the full 2K version when zoomed right in, then discarding higher resolutions and clearing VRAM on zooming out. This also lead to comments as to the overall effectiveness of this approach.
  • llSetContentType and setting it text/html:  a discussion on the restriction whereby if the requesting html viewer is not owned by the server object, or is not the built in html viewer, the sent content type is just “text”, and the implications of removing that restriction (e.g. to make media on a prim (MOAP) more generally usable).
  • Further discussion on the notecard cache change.
  • Monty Linden noted that the issue of the Friends list being unreliable in reporting people’s on/of-line status is being reported again (he referenced this report). He requested that anyone experiencing issues with on-line friends showing as off-line (or vie-versa) to please comment on the report.

 

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 week #20: SL CCUG summary

The Butterfly Effect, May 2024 – blog post

The following notes were taken from my audio recording and chat log transcript of the Content Creation User Group (CCUG) meeting held on Thursday, May 16th, 2024.

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • In regards to meetings:
    • Dates and times are recorded in the SL Public Calendar.
    • Commence at 13:00 SLT on their respective dates.
    • Are conducted in a mix of Voice and text chat.
    • Are open to all with an interest in content creation.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

  • Release viewer: Maintenance X RC (usability improvements), version 7.1.7.8974243247, dated May 8and  promoted May 13 – NEW
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Materials Featurettes RC viewer, version 7.1.7.8883017948, May 2.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.
  • Project viewers:

Graphics / glTF

Featurettes Viewer – Recap

  • Support for:
    • Viewer-side setting of PBR materials for terrain.
    • 2K texture upload support.
    • Mirrors: using reflection probes to generate local static or dynamic (incl. avatar) reflections in real-time.
  • Both Geenz Linden (mirrors) and Cosmic Linden (PBR terrain) are engaged in follow-up work for both of these projects, which will hopefully appear in a future graphics featurette viewer – not the current version (e.g. allowing PBR materials on terrain to have custom repeats, offsets, rotation).
  • It terms of PBR terrain, it was noted:
    • Emissive is supported on terrain.
    • There is a issue with Mac systems (either emissive or normal may “fall off”).
    • As running all four PBR materials on terrain can put a load on the viewer, there are some automatic fallbacks for systems unable to handle the full load which mean some of the materials may not be applied
    • Those opting to use PBR for terrain, as the viewer capability gains adoption (and region owners enable it), there is not requirement to also provide textures for terrain (to allow for those on non-PBR viewers).

General Notes on glTF / PBR

  • As an extension to the last point above, it was further noted that as PBR gains adoption, there is no enforced requirement for creators to continue to provide fallbacks to handle “non-PBR” viewers.
    • This lead to a further statement (first made at the May 10th TPV Developer meeting) that creators building for SL21B are not required to provide Blinn-Phong materials fallbacks on their builds when using PBR.
    • The above can be taken as an informal view that viewers need to support PBR either fully or with a “beta” release by the time of SL21B (commencing Friday, June 21st, 2024).
  • One of the reasons Linden Water reflections are not as good under PBR is due to attempts to optimise the rendering load so that any potential frame rate hit is minimised for more users.
    • Geenz Linden is looking at improving them once more as a result of the work done for mirrors. This work, if successful won’t bring water reflections up to the standard of pre-PBR water reflections (updated every frame), but will offer an improvement over what is currently seen with PBR.
    • Water as a material has been requested and is something LL “is interested in”, but this is not part of the current glTF / PBR work.
  • LL believe that most users should not see a dramatic fall-off in viewer FPS as a result of PBR, such that their experience is heavily impacted.
  • There remains no current plan to support displacement maps.
  • As well as working on mirrors, Geenz Linden is now working on Index of Refraction (IOR) and transmission, both in line with the glTF 2.0 specification (e.g. allowing transparent surfaces that distort what is behind them, as can sometimes be seen in the physical world).

glTF Scene Import

  • Recap:
    • Runitai Linden is continuing to work on glTF scene import. This has reached a point where (on test viewers) it is now possible to preview a scene (tied to an in-world object) in-world.
    • The initial aim is to get to a point where scenes can be imported and seen, and nodes within them updated with both tools in the viewer and / or using LSL, and ensuring they stay in synch with the rest of the scene.
    • Scenes are liable to use the MSFT glTF extension for Level of Detail (LOD), as this allows LODs to be set per node within a scene, providing more intuitive / consistent LOD switching management (based on screen coverage).
    • There will be constraints placed on scene imports (e.g. will not be able to have a scene which exceeds the capacity of a region; scenes will not be able to span more than one region (so as to avoid issues with physics, etc.); and so on).
  • In terms of scene import / export, while it is still earlier days, Runitai noted again that:
    • The idea is to make the import / export a two-way street for creators so they can modify their scenes with relative ease by taking it back to Blender to fix issues that cannot be fixed in-world.
    • This will be subject to the permissions system to prevent the wholesale export of content added to a scene.
    • Scenes uploaded will have attributions appended by the asset service (we owns the asset, when it was uploaded, etc).

In Brief

  • PBR and Bakes on Mesh:
    • LL “keenly aware” this needs to be done, and is noting support for it coming via the Feedback Portal.
    • However – it is not currently a live project.
    • The discussion also again carried the caveat that updating the Bake Service to support 2K textures is only part of the issue: all SL wearable definitions all also need to be revised to be able to support 2K textures, as these are also currently limited in their resolution.
  • There was an extended discussion on content ripping from Second Life and copybotting (with the latter covering a number of flavours). In short:
    • The is the hoary old (but nevertheless true) acknowledgement that Second Life relies on local computer rendering; ergo, regardless of whether it is via a”copybot viewer” or not, content can be ripped from SL and used elsewhere by those determined to do so.
    • Insofar as content being ripped and re-sold in Second Life (or elsewhere) there is the DMCA process – and in terms of other platforms, it does not matter if they have a DMCA Portal or not – a formal identification of content being misused (with proof of ownership) can still be sent to them in order to initiate a take-down process.
    • There was discussion on why “obvious” copyright-infringing content in SL was not taken down (with the example of Chanel products being used). As I understand it (and IANAL), this is bound up with the Safe Harbor provisions of the DMCA, design to provide immunity to ISPs and website operators for copyright infringement committed by their users by providing them with a framework for taking action. Pro-actively removing content potentially circumvents this process, leaving the company open to possible legal action if mistakes are made (and / or for simply not pre-actively addressing all infringements, large and small).
  • There was also a discussion on animations under glTF. However, as this will be a future element of the glTF scene support project, so I’ll leave specifics until such time as the work starts and LL talk more directly as to what they are doing and when.
  • The latter part of the meeting included (an occasionally heated) discussion on the new Modesty Layers being proposed by Linden Lab (see: 2024 SL Governance meeting week #19: Child Avatar Policy). However, as this was somewhat entangled with matters of policy, and those directly involved in making the changes to said policy / overseeing changes were not available  / present at the meeting, ad what was suggested as to possible technical solutions was somewhat speculative, I would prefer to leave further reference out of this summary, and leave matters until those at Linden Lab responsible for the policy have more fully engaged directly with content creators.

Next Meeting

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 SL SUG meetings week #20 summary – updated

Lenixus Project ~ Chapter I : The Snail Princess, May 2024 – blog post

Update: May 15th: The WebRTC test region is WebRTC Voice 1. Read more on WebRTC Voice in this official blog post.

The following notes were taken from the Tuesday, May 14th, 2024 Simulator User Group (SUG) meeting. They form a summary of the items discussed, and are not intended to be a full transcript, and were taken from my chat log and the video by Pantera – my thanks to her as always for providing it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • Meetings are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Simulator Deployments

  • On Tuesday, May 14th, the Main SLS channel was restarted without any deploy,
  • On Wednesday, May 15th:
    • The BlueSteel RC channel will be updated with the Spring Break Simulator update.
    • The rest of the RC simhosts will be restarted.
    • A small Snack channel has been set-up for WebRTC testing (sorry, no region name available).

SL Viewer Updates

  • Maintenance X RC (usability improvements), version 7.1.7.8974243247 and dated May 8th, was promoted to release status on Monday, May 13th.

The rest of the official viewers in a pipeline remain as:

  • Release channel cohorts:
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Materials Featurettes RC viewer, version 7.1.7.8883017948, May 2.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.
  • Project viewers:

PBR Materials + Blinn-Phong Support

[Video: 7:45 and (discussion) 46:05-meeting end]

  • Concern was raised over a quote of a comment by Runtai Linden I carried from the May 10th TPV Developer meeting; specifically:
Sometime between now and then, we’ll likely start making the LSL scripts that modify Blinn-Phong parameters modify their PBR equivalents, or do nothing when a PBR material is applied. So llSetColor, for example, would set the base colour, not the diffuse colour. That should make life a lot simpler for scripters going forward, as scripters have been giving us feedback that trying to do something simple like that with existing scripts is impossible as they have to do a check to see if a glTF material is applied, and if there is then use llSetPrimParams and if there isn’t, use llSetColor.
  • This caused concern at the SUG meeting, and so Brad Linden Offered the following:
So, not officially speaking for Runitai, but I think his most important concern is that SL is trying to move towards standards compliance. and for objects with GLTF content attached, the only standards compliant way to display it is to fully implement GLTF PBR exactly as the Khronos group specifies it. so if an object has PBR attached, then displaying anything else is a “MUST NOT” behaviour: https://datatracker.ietf.org/doc/html/rfc2119#section-2.
Defining fallbacks for older viewers that have not implemented the spec, is potentially negotiable.
Any face that has a PBR material applied MUST be displayed using PBR
  • Brad also pointed to a Feedback request where there is further discussion towards the issue of “PBR llFunctions”, including colour .
  • The major source of concern raised on Runatai’s comment and Brad’s expansion is the belief that some SL users are unable to display PBR materials as they are too taxing on their systems; so if creators cannot offer a fallback position, they well leave SL due to the amount of content they cannot see correctly, couple with the view that maintaining the ability to keep llSetColor “as is” does not break with the glTF requirements, but allows those users to stay with SL until such time as they can upgrade their hardware.
  • The counter to this was that there are users still on SL who have hardware unable to correctly render mesh, and that LL are a) working hard to get PBR performance up to a level where the majority of user hardware can support it and b) they do not want to pressure creators into having to support two different content creation / rendering approaches / specifications.
  • Please refer to the video below for further comments on this issue, plus expect further discussions at upcoming Content Creatin meetings (see the SL public calendar for details of the latter).

In Brief

  • [Video: 28:52-46:00] A discussion on Key Frame Motion and on the impact of scaling on KFM + possible, including an idea from Rider for a llSetScaleLimited function, which would scale an object as specified – unless doing so hits a defined LI limit (e.g. “increase the object size to 5x5x5 or stop scaling if the LI exceeds 8”) – the idea being to prevent an animated object from exploding in LI on scaling. This also saw a further suggestion of having a universal timestamp (server and viewer) to better sync operations,

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 TPVD Meetings: May 10: WebRTC; SL21B PBR

Alone, May 2024 – blog post

The following notes were taken from the video recording of the Third-Party Viewer Developer (TPVD) meeting held on Friday, May 10th, 2024. My thanks as always to Pantera for recording the TPVD meeting and providing the video, which is embedded at the end of this article.

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • In regards to meetings:
    • Dates and times are recorded in the SL Public Calendar.
    • Commence at 13:00 SLT on their respective dates.
    • Are conducted in a mix of Voice and text chat.
    • Are open to all with an interest in either content creation or viewer development.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of either meeting.

Official Viewers Status

[Video: 01:24-2:28]

  • The Maintenance X RC (usability improvements) updated to version 7.1.7.8974243247, May 8.
  • The WebRTC Voice work was released as a project viewer, version 7.1.4.8947030231, May 8.
  • The Puppetry project viewer has been withdrawn.

The rest of the current crop of official viewers stands as:

  • Release viewer: 7.1.6.8745209917, formerly the Maintenance Y/Z RC ( My Outfits folder improvements; ability to remove entries from landmark history), dated April 19 and promoted April 23 – No Change
  • Release channel cohorts:
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Materials Featurettes RC viewer, version 7.1.7.8883017948, May 2.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.

General Viewer Notes

  • Maintenance X looks to be the next viewer in line for promotion – most likely in week #20.
  • Following the promotion of Maintenance X, the focus will be on getting the Materials  Featurettes viewer promoted, as the simulator-side support for this is already available across the Main grid ( although see below).

Viewer Code White Space

[Video: 24:58-29:00]

  • White spacing in viewer code has long been an issue in that it can be a mix of both tabs and spaces.
  • A move to standardise on either tabs or spaces has been mooted but never formalised because of the concerns that any bulk change would produce conflicts in things like code merges.
  • Signal Linden has been investigating this, and found that providing an appropriate command line option is given, such conflicts between white space using tabs and white space using spaces can be avoided.
  • As a result, the current Maintenance X viewer does standardise white space.
  • To avoid potential conflicts when merging to this code base after Maintenance X goes to de facto release status, Signal has produced documentation on how to make such a merge.
  • Those involved in viewer development (TPVs and self-compilers) are encouraged to read this documentation prior to merging with Maintenance X.

Graphics / Materials Featurette Update

[Video: 2:36-6:12]

  • The is the viewer with the new PBR terrain code, support for 2K texture uploads, and PBR mirrors.
  • The Graphics team believes all issues considered to be showstoppers for this viewer have now been fixed, and the viewer is going through what is hoped will be a final QA pass.
    • However, there is one remaining issue which can crash the viewer, but this might be down to running the viewer on unsupported hardware as much as requiring a fix.
  • Remaining issues / updates will be handled through the main glTF development branch of the viewer.
    • As the server team has switched to the Git Flow  Git branching strategy, and there are conversations about moving to this for the viewer as well.
    • As such, the glTF development branch is a step towards the use of Git Flow.
    • If the approach works for the glTF work, it will likely be adopted for all viewer development work.
  • There was a brief debate as to whether the Featurettes viewer will be available for promotion sooner rather than later, with Dan Linden indicating that there is still “quite a bit of testing” still to be done.

glTF Scene Import

[Video: 40:40-48:15]

  • More generally covered in my CCUG meeting summaries.
  • This is a glTF project to allow glTF scenes (objects, materials, animations, etc) can be imported to SL as assets and brought in-world as a series of nodes rooted in a prim, with the nodes updated with both tools in the viewer and / or using LSL, and ensuring they stay in synch with all viewers looking at them.
  • Overall, the idea is a “one touch” import to get a scene from Blender to SL, where it should appear exactly as it is in Blender, modify it as required in SL via the build tools  / LSL or – subject to permissions – export it back to Blender for update.
  • Currently at the prototyping stage, with test viewers and test regions on Aditi able to preview a scene (that is, see it within the viewer without the scene being physically imported into SL) for reference purposes, .
  • Work is “almost” at a point where a scene can actually be uploaded to SL and stored as an inventory asset and then downloaded and rendered by the viewer – although more back-end work (such as with the CDN pipes) needs to be carried out.
  • There are multiple questions still to be addressed concerning the overall data model (LOD generation, LI, linking etc., scene export (for updating) and working with the SL permission system, physics / collision shapes, etc.), so definitive answers to question on these topics cannot be properly addressed at present.
  • A video demonstrating how this works can be seen at 44:43.
  • This moved into a general discussion on the glTF work – please refer to the video below and my CCUG updates, as linked to above.

WebRTC Voice Update

Summary

  • A new project intended to move Second Life away from reliance on the Vivox voice service and plug-in, and to using the WebRTC communications protocol (RTC=”real-time communication”).
  • Roxie Linden is leading this work.
  • WebRTC is something of a “defacto standard”, being built-in to most web browsers and supporting  wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications.
  • In terms of audio / voice (the primary focus here), WebRTC has a number of standard features expected of audio communications services (such as automatic echo cancellation, better noise cancellation and automatic gain control, etc.) and offers much improved audio sampling rates for improved audio quality.
  • WebRTC will be supplied within the viewer using a library and wrapper. This will mean no requirement to run a third-party voice plugin (SLvoice.exe, as supplied by Vivox) going forward.
    • Care is being taking to address potential security issues (e.g. preventing eavesdropping, exposing users’ IP address (by using an internal proxy server), etc.).
  • The switch to WebRTC also opens the door to adding new features and capabilities to SL Voice, some of which have been long-requested.
  • Feature requests for WebRTC made via the WebRTC board on the SL Feedback Portal are being evaluated and some are being actioned, together with issues being investigated.
  • LL will be looking to Linux devs to help give feedback on how well WebRTC is working on their Linux viewers.

[Video: 6:29-17:35]

Status

  • As noted above, a WebRTC project viewer is now available via the Alternate Viewers page.
  • Viewer work is currently focused on bug fixing, and the hope is the viewer will move from project status to RC status “pretty shortly”.
  • The overall hope is that as WebRTC is a library + wrapper, changes will be fairly localised within the viewer, speeding the implementation process.
  • The schedule for WebRTC is described as “pretty aggressive” and TPV developers are encouraged to look at the code repository.
  • Work is in progress / has been completed on getting a simulator Snack RC channel set-up with the required back-end support for WebRTC voice – but this will be spatial voice only, not peer-to-peer / Group or ad-hoc Voice communications for the time being.
    • Region names for this channel were not given at the meeting.
    • In line with the aggressive viewer development cycle, the team is looking to have WebRTC support available across at least one full RC channel by the end of June (simulator update schedules permitting) and potentially have the back-end support live across the Main grid by the end of July 2024.
    • Those wishing to test peer-to-peer, Group and ad-hoc Voice via WebRTC can do so via the Aditi (Beta grid) webRTC1 test region.
  • There will be further updates to the WebRTC library during the development cycle, as the Lab updates to the latest releases from the WebRTC open-source development website.
  • As the work progresses, there will be a blog post to provide and overall update on the work, including the proposes schedule for deployment and explanations of any caveats / potential roughness during the transition (see below as well).

WebRTC and Vivox Voice Support

  • The initial versions of the viewer (project and RC) will support both WebRTC and Vivox for Voice.
  • As peer-to-peer / Group or ad-hoc Voice support for WebRTC is added to the back-end, things might “get a little weird” as the viewer swaps between WebRTC and Vivox, but Roxie Linden is trying to ensure things are correctly negotiated (e.g. if there is a Group chat going on with everyone using WebRTC, and someone joins from a region still using the Vivox back-end, the viewer will negotiate everyone to using Vivox.
    • This means that for purely testing WebRTC for Group, peer-to-peer and ad-hoc Voice (as support for these are added to the simulator code), it is important for all testers to be on regions with WebRTC support only.
  • Voice will not travel across region boundaries between regions using WebRTC and Vivox (and vice-versa)
    • This should not be an immediate issue, but might become noticeable during the transitional period when WebRTC support is being deployed across the main simulator RC channels and before it is grid-wide.
    • Voice will obviously work across regions using the same voice service (e.g. between regions which are both running WebRTC).
  • Given the aggressive schedule for the work, it is hoped that support for both WebRTC and Vivox within the viewer will be for a limited duration.

SL21B – glTF and Blinn-Phong

[Video: 18:19-24:38]

  • To ease the workload for creators building for SL21B (opening on Friday, June 21st, 2024), Linden Lab has stipulated they do not have to include Blinn-Phong (aka “SL legacy materials”) fallbacks in their build if they opt to use glTF PBR materials.
  • This means viewers, in keeping with the expected behaviour, should only display the glTF materials, and should not under any circumstance attempt to display any fallback (as doing so will result in content rendering as grey or white objects).
  • This is likely to impact any viewers that do not support PBR materials (and content will not look “right”).
  • However, the above should not be taken to mean that LL are looking to “get rid of” Blinn-Phong (e.g. objects have been created using Blinn-Phong only, they will continue to display using Blinn-Phong reflections, etc.).
  • Runitai Linden also noted:
Sometime between now and then, we’ll likely start making the LSL scripts that modify Blinn-Phong parameters modify their PBR equivalents, or do nothing when a PBR material is applied. So llSetColor, for example, would set the base colour, not the diffuse colour. That should make life a lot simpler for scripters going forward, as scripters have been giving us feedback that trying to do something simple like that with existing scripts is impossible as they have to do a check to see if a glTF material is applied, and if there is then use llSetPrimParams and if there isn’t, use llSetColor.
  • It was unclear if this will require a conversion to linear colour (as glTF uses SRGB), given the LSL for GLTF_BASE_COLOR requests linear colour – or whether there is a conversion from linear colour to SRGB when using GLTF_BASE_COLOR. This is to be looked into.

In Brief

  • [Video: 30:10-37:47] 2K textures:
    • There have been concerns raised over “abuse” of 2K textures (e.g. people being “forced” to use them because “everyone else is”).
    • Runitai Linden is of the opinion that with functional texture streaming, use of 2K textures is not as big a problem as is being presented in some cases, because the full 2K texture is not necessarily downloaded rendered by the viewer until the viewer zooms right in on the object face using it; otherwise the texture should be displayed at the pixel resolution (e.g. if the face is only taking up 64×64 pixels, then the 64×64 version of the texture is selected and used.
  • Bakes on Mesh support for 2K textures: this is currently not a project under consideration, but the Lab acknowledged that this might need to be re-thought in terms of what is required and scheduling priority.
    • It was noted that updating the Bake Service would not be sufficient for 2K texture use, as the service also composites wearable textures, so the allowed texture resolution for all wearable layers will have to be updated in order for BoM to effectively support 2K textures.
    • That said, updating BoM to support 2K textures is seen by the Lab as a matter of “when” and not “if”. In this, it was further noted that support for the work being shown through the Feedback Portal from users will help LL determine / re-evaluate the priority of the work compared to other projects.

Next Meeting

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

Second Life Combat User Group: May 9th, 2024 summary

Credit: Rider Linden

The following notes were taken from the Thursday, May 9th, 2024 Combat User Group meeting (also referred to as the Combat Committee User Group or CCUG, an abbreviation also used by the Content Creation User Group, and which I’ll not be using in these summaries to reduce the risk of confusion between the two). They form a summary of the items discussed, and are not intended to be a full transcript.

Meeting Overview

  • The Combat User Group exists as a forum to discuss improvements to the Linden Lab Combat System or LLCS to better support combat in Second Life.
    • The core idea is to provide additional events and capabilities which sit on top of LLCS to provide combat creators with better tools with which to create better combat systems for their specific scenarios.
  • The meetings are the result of a proposal document on improving the native damage system in SL, written by Rider Linden, and which is the focus for both the meeting and any work arising from them.
  • These meetings are conducted (as a rule):
    • By Rider Linden, with the support of Kyle Linden.
    • On alternating Thursdays (rotating with the Content Creation User Group) at 13:00 SLT. Meeting dates are recorded in the Second Life Public Calendar.
    • Initially in text, although voice might be included in the future depending on feedback from those attending.
    • At this location.
    • Discussion topics, requests, etc., can be found on the SL Feedback Portal Combat Board.
  • Additional details are available via the SL wiki.

Work In Progress

  • Rider has updated the simulator side of the combat system. This includes:
    • The most recent updates to Leviathan Linden’s Game Control event work for game controllers (see below).
    • Message changes in RegionInfo. There is now an optional CombatSettings block that can be seen by the viewer, it has all the region settings such as regen rate and damage throttle (this requires a viewer-side update to be visible, which is currently in the works).
    • Bug fixes, including for one in which being slammed into the ground is bad for your health and bypasses the damage functions. Also see: Allow Region To Modify Physical Collision Damage Factor.
  • llDamage is in the process of being updated to reflect the work in this project.
  • It is hoped that more detailed documentation on “Combat 2.0” will be produced.
  • There is now a UUID / name for the combat log: COMBAT_LOG_ID or Brigadier Linden.

Comments and Requests

  • A request was made to add onto the existing llSensor functions (or created a new function) that would allow the option to do an llCastRay (i.e. llSensorNew( string name, key id, integer type, float radius, float arc, float rate, list options )), plus, and when using raycast options, to just return the llDetected events based on successful hits.
    • This would allow an object to detect Agent or other Objects that is in full view of the object calling the Sensor event, and was seen as helping the likes of “wall safe” melee attacks and explosions all in one call.
    • The idea was favourably received by Rider and several at the meeting.
  • There was a question on whether triggering llDamage at a target on safe land, would it trigger on_damage? The answer was no, it would just fail, and also a damage enabled object colliding with something on safe land will not cause damage.
  • There was some confusion as to which has priority within a region: does the region’s Damage Allowed setting override the Safe setting at parcel level, or vice-versa – and exactly what the “Damage Allowed” actually does (“allowed” does not necessarily mean Damage is “enabled” on setting it).
    • Rider indicated that within the Camber updates he is writing for the viewer, the term has been changed from “Damage Allowed” to “Enable Combat” – which is clearer as to intent, but again, not necessarily indicative that setting it automatically sets the entire region to Damage “enabled”).
    • A suggestion was made to make the setting directly more granular at region level via a drop-down, e.g. “Always On”; “Use Parcel Settings”; “Always Off”.
    • This may become the subject of an additional discussion on the SL Feedback Portal Combat Board.
    • Rider also indicated that as follow-on work to the current project he intends to allow overriding things like the damage throttle and health regen on a parcel level.
  • A request (feature request pending) was made for a damage over time function that doesn’t require additional objects.
  • A general discussion on llRezObjectWithParams and potential improvements – these will be recorded as / when actual changes are made.

Game Controller Support Update

  • This is a separate, on-going project by Leviathan Linden to provide better support for game controllers (such as X-Box controllers) in Second Life, and exposes input from game controllers to LSL.
  • It is generally reported on in the weekly Simulator User Group meetings.
  • Current status:
    • The feature has been merged into the same server code as Combat2, as noted above.
    • The viewer is still undergoing work, but a further pre-release viewer (for those on the SL Discord server) should be available in week #20.
    • The viewer-side work will eventually surface in a project or RC viewer.
    • Leviathan is additionally overhauling the Flycam options / Preferences tab as well – no details as yet, but updates will be appearing in a future version of the Game Control viewer updates.