Black Dragon viewer: progressing nicely

Blackdragon logoTuesday November 5th saw the release of Black Dragon 2.3.7 Maintenance 2, the second release for the viewer in as many weeks, the previous being (wait for it) 2.3.6 Maintenance 1. Since it’s been another two months since I last looked at Black Dragon, which is still officially in its Alpha phase of development, I decided the arrival of 2.3.7 was as good a reason as any to take another peek at what Niran has been up to.

And it is actually rather a lot, with each of the iterations of Black Dragon appearing since 2.3.1 both building on the basic LL v3.x look and feel while adding-in both more TPV features and Niran’s own unique take on the viewer’s appearance and layout.

  • Version 2.3.2 saw the inclusion of a host of CHUI, NORSPEC (materials), Cocoa updates, bug fixes and maintenance updates from Linden Lab, together with the return of Tofu Buzzard’s screen space reflections and a lot of general clean-up
  • Version 2.3.3 was to include further LL code updates and fixes, some updates to Niran’s Machinima Sidebar, and further rendering / graphics tweaks
  • Version 2.3.5 saw the re-introduction of RLVa, complete with a dedicated Preferences tab.

As noted above, both release 2.3.6 and 2.3.7 are classified as “maintenance” releases, planned by Niran to further enhance the work started in version 2.3.4, which introduced the first phase of overhauling the Preferences floater.  Given this, what follows is intended to be an overview of the most recent updates to Black Dragon, with a particular focus on the Preferences work, rather than an in-depth review.

Preferences

With Niran’s Viewer, Niran opted to go for a fairly radical overhaul of the Preferences options, presenting them as an overlay, rather than within a floating panel. It was a novel approach, and one which, while making better use of screen space, could also be disconcerting to users coming to it the first time, particularly when trying to find settings, etc. In the re-working of Black Dragon, he’s gone for something less radical and potentially less unsettling to users familiar with the “traditional” approach to the Preferences floater, but which still offers an interesting take on how Preferences can be presented.

The first noticeable change is that Niran has used headings to split the various Preferences tabs into definable sections. The result is a layout which tends to be more logically ordered and which the eye tends to follow more easily.

The RLVa Preferences panel introduced in version 2.3.5 of Black Dragon and showing the use of section headings to help logically arrange the tab's content
The RLVa Preferences panel introduced in version 2.3.5 of Black Dragon and showing the use of section headings to help logically arrange the tab’s content

The other obvious change is that rather than using additional sub-tabs within a given section of Preferences, Niran has opted to use a slider on the right of the given tab, allowing users to scroll up and down through options in order to display them. It’s an interesting approach to take, and one that is certainly as valid as the use of sub-tabs; however, having to scroll through an extensive list of options such as with the Display tab perhaps isn’t quite as efficient as being able to see tabbed headings at-a-glance in order to switch between them.

There are other touches as well which set Black Dragon apart in terms of Preferences presentation. Within the Display tab (Graphics), for example, Niran opts to use drop-down option lists rather than sliders for various settings. This is again a carry-over from Niran’s Viewer, and whether one likes it or not is liable to be a matter of personal taste. To me, being able to set the rendering quality for something like in-world objects to a value between Low and Ultra feels more intuitively user-friendly than adjusting a slider to an arbitrary point somewhere between 1 and 4, or 0 and 1, or 16 through 120.

The Display (Graphics) tab in Black Dragon's Preferences. Note the use of the slider (far right) rather than sub-tabs, the use of drop-down lists in place of sliders and the [default] option for quickly resetting those sliders which are still used
The Display (Graphics) tab in Black Dragon’s Preferences. Note the use of the slider (far right) rather than sub-tabs, the use of drop-down lists in place of sliders and the [default] option for quickly resetting those sliders which are still used
Continue reading “Black Dragon viewer: progressing nicely”

SL projects update week 45 (1): Server and viewer sundry news

Server Deployments week 44

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Main channel: Tuesday November 5th

The Main channel was updated with the same maintenance package previously deployed to the three release candidate channels, and which comprised bug fixes and crash modes.

Release Candidate Channels, Wednesday November 6th Currently Cancelled

The RC restarts have been cancelled, see the Grid Status report.

All three release candidate channels should receive the same maintenance package, comprising further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project.

SL Viewer

There have been no release updates so far this week. However, a bug has been reported within the former “Sharestorm” viewer (the current release viewer, 3.6.9.282535), wherein fps rates are severely impacted when the CHUI conversation floater is open. If you’re using the current release viewer, and find frame rates are being impacted when conversing, try switching to CHUI’s Compact View.

If you find your FPS reates are being hit when you have the CHUI floater open in the current SL viewer release (or a viewer with the ShareStorm code), try switching CHUI to the Compact Viewer (above)
If you find your FPS reates are being hit when you have the CHUI floater open in the current SL viewer release (or a viewer with the ShareStorm code), try switching CHUI to the Compact Viewer (above)

A further bug that has been reported sees FPS impacted if the Build floater is opened after having About Land open in a region with a long covenant.

Region Restart Sound

A new JIRA has been put forward (STORM-1980) to have a default region restart sound added to Second Life. This would be played automatically by the viewer on receipt of a region restart message, adding an additional warning of an approaching restart for those who may miss the pop-up notices, be working on another screen / window or who are otherwise distracted while logged-in to Second Life, allowing them to take appropriate action prior to the region starting and them being logged-out. Work on this is in progress, and is generally seen as a good idea.

Other Items

Scripted Sound Improvements?

Requests have been raised at several meetings recently about the possibility of improving scripted sound functions (such as being able to use a single sound loop for a vehicle’s engine and using LSL to change the pitch of the loops when the vehicle is accelerating or slowing down, for example) and to possibly make the prim collision sound being a property of the prim instead of the script.

Commenting on the former request at the simulator user group meeting on Tuesday November 5th, Simon Linden said, ” there have been some JIRA feature requests about llLink-something with sounds  [“llLinkPlaySound”, “llLinkStopSound” and “llLinkLoopSound”].  We’ve discussed it internally and it seems like a good idea, but needs some work to see if we can cover as much functionality as possible with a reasonable API.” Expect more details as the work progresses.

Viewer release summaries 2013: week 44

This summary is published every Monday and is a list of SL viewer / client releases (official and TPV) made during the previous week. When reading it, please note:

  • It is based on my Viewer Round-up Page, a list of  all Second Life viewers and clients that are in popular use (and of which I am aware) and which are recognised as adhering to the TPV Policy
  • By its nature, this summary will always be in arrears
  • The Viewer Round-up Page is updated as soon as I’m aware of any releases / changes to viewers & clients, and should be referred to for more up-to-date information
  • The Viewer Round-up Page also includes comprehensive links to download pages, blog notes, release notes, etc., as well as links to any / all reviews of specific viewers / clients made within this blog.

Updates for the week ending: November 3rd, 2013

Official LL Viewers

  • Current Release updated on October 23rd to version: 3.6.9.282535 (formerly the”ShareStorm” RC viewer combining SLShare functionality with request teleport feature, et al) – release notes
  • Release channel cohorts (See my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • GPU Table Update RC 3.6.10.282997 released on October 28 (download and release notes) – GPU table updates only, no functional changes
    • Maintenance RC updated on October 30 to 3.6.10.283139 (download and release notes) – finer access control for estate/parcel owners; CHUI: toggle expanding Conversations by clicking on icon; GPU table update + more
  • Project viewers:
    • None at present

LL Viewer Resources

Third-party Viewers

V3-style

  • Black Dragon updated on November 1st to version 2.3.6 Alpha (Maintenance) – core updates: numerous tweaks to the UI (panel layouts, etc.), MU, OOC chat options added; SLurl-style names gain further options (mute / offer teleport / pay, etc.) (release notes)
  • Firestorm updated to version 4.5.1.38838 – October 30 – core updates: parity with LL 3.6.7 code, materials processing, conversations histories, movelock, export to Collada, back-up to .OXP, particles support, reject teleport, mesh requests (MeshMaxConcurrentRequests) capped, 64-bit Windows support + more (release notes)

V1-style

  • Cool VL updated on November 2nd to:
    • Stable version: 1.26.8.36
    • Experimental version: 1.26.9.36
    • Release notes (both) core updates: addition of .OBJ and .DAE exporters from Singularity; FMOD Ex updated to v4.44.24; fix for InWorldz log-in crash bug; assorted code updates, removal of dead code and minor fixes + optimisations

Additional TPV Resources

Related Links

SL projects update 44 (3): viewer, AIS, and HTTP

The following summary is taken from the TPV Developer meeting held on Friday November 1st. A video, courtesy of North, can be found at the end of this report. The numbers in braces after each heading (where given) denote the time stamp at which the topic can be listened-to in the video.

General Viewer News

As noted in part 2 of this week’s report, there are currently two release candidates in the LL viewer release channel, the GPU Table RC, which contains updates to the viewer’s GPU table but no functional changes, and another Maintenance RC, which includes finer access control for estate/parcel owners; CHUI: toggle expanding Conversations by clicking on icon  + more.

It is expected the Google Breakpad RC will be returning to the RC channel in week 45 (see below).

Several of the remaining anticipated viewer RCs / project viewers, again as previously reported, held-up as a result of issues uncovered in QA and / or bugs being re-introduced into them. These include:

  • The Group Ban List viewer: work here, which involves server and viewer changes, is held-up as a result of QA testing revealing some issues which Baker Linden is addressing (as per part 2 of this report)
  • The interest list viewer, which recently saw the issue of objects failing to render without a relog return to the code after having been fixed, and which still has one or two other issues to be fixed, although Oz Linden feels those working on it are homing in on solutions
  • The HTTP viewer updates, which were for a time awaiting QA resources (see below for a further update).

AIS v3

[02:29-07:07]

Nyx Linden, Tiny RobotTM, is in the Halloween spirit
Nyx Linden, Tiny RobotTM, in the Halloween spirit

The Lab is keen to start progressing this work towards a release. As with Server-side Appearance, they’re looking to TPVs to help with various aspects of testing.  To this end, a request has been passed to TPVs that they indicate to the Lab when they have merged the code into experimental versions of their viewers so that a pile-on test can be arranged in order to put the updates through their paces.

There is no specific date for when this will take place, and commenting on the project in general, Nyx Linden said:

Now is a good time to start your merges, I’ve just pushed an updated to Sunshine external, so you guys should have our latest and greatest … But again, this is not formally QA’d, we’ve been testing things as we’ve been going on, but it is not ready for release yet. But now is a good time to start doing test merges and getting side branches up-to-date with that.

The latest code includes a fix to viewer-side behaviour. On logging-in to Second Life, the server sends a list of the things it believed an avatar was wearing, although the message only had room for one wearable of each type (e.g. undershirt, shirt, jacket, etc.), and so it may or may not be up-to-date with the Current Outfit folder.

While the current release versions of the viewer ignore the contents of the message, they do still wait on the message for timing (thus slowing down avatar processing). With the new code, the timing pause is being done away with, so that the viewer should be able to start resolving the avatar from the Current Outfit Folder whether or not the message has been received. There is a slight side-issue with this change that may affect some avatars under limited circumstances, but a fix for this issue is due to be made available to TPVs before the code even reaches any experimental versions of their viewers.

Viewer Crash Reporting

[09:00-14:50 and 26:03-31:15]

There is an issue with the viewer crash reporting which means that a lot of crashes are being incorrectly reported as viewer “freezes”. This is something the Lab is aware of and is working to address. The problem lies with a number of the mechanisms used to determine various types of crashes are not working, with the result that the associated crashes are being misreported as the viewer freezing.

As well as addressing this issue, the Lab has also been working in other areas related to Google Breakpad and crash reporting, including:

  • Simplifying and cleaning-up the creation and interpretation of the marker files used to generate crash rate numbers
  • Re locating these files much earlier in the viewer initialisation and log-out processes so that crashes which occur during the viewer’s initialisation or termination can also be captured
  • Addressing those crash reports which are generated, but lack associated stack dumps or mini-dumps and ensure that in the future that do have the required information, thus allowing the Lab to fill-in more of the blanks and ensure even more meaningful data is gathered as a result of crashes.
TPV Developer meeting, Friday November 1st
TPV Developer meeting, Friday November 1st

It will be a while before this work is ready for inclusion in viewers; one reason for this is because the improvements to Google Breakpad require continual rounds of user testing as changes are made (hence why the Google Breakpad RC appearing and vanishing and reappearing in the viewer release channel). However, once the code is ready for release, it should provide for more accurate crash reporting across all viewers. As the work comes to fruition, it should allow for more accurate identification of a range of crash situation and assist with the work in trying to eliminate them.

Continue reading “SL projects update 44 (3): viewer, AIS, and HTTP”

SL project updates week 44 (2): Group bans and sundry news

Server Deployments week 44 – Recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • Main channel: no update
  • Release Candidates: all three received the same new server maintenance package on Tuesday October 29th, which fixed some crash modes.

The RC release will likely be promoted to the Main channel during week 45.

Upcoming Work

At the Server Beta meeting on Thursday October 31st, Maestro Linden indicated that Simon Linden is working on a new package, but that it might not see the light of day for another week or so. “[It] has a bunch of miscellaneous fixes, including a potential fix for BUG-4152 (that ‘parcel full’ bug with vehicle region crossing which is rather common),” he told attendees.

There are apparently more “shinies” being worked on, but they are unlikely to be in this maintenance project, which Maestro describes as “solely bug fixes.”

SL Viewer Updates

The Maintenance RC viewer updated to release 3.6.10.283139 on Wednesday October 30th, otherwise no other changes to the viewer release channel.

There appears to be a closed viewer repository called “343-fittedmesh” with Oz Linden’s name attached to it. Quite what it might be is open to speculation, but the name might carry a possible hint. It has certainly prompted suggestions that the Lab might want to rethink their approach to code repository naming!

Baker Linden: Group Ban List

Baker and Caleb Linden (no, it's probably best not to ask...!)
Baker and Caleb Linden (no, it’s probably best not to ask…!)

“So group ban stuff is progressing more,” Baker Linden informed the Server Beta meeting. He went on:

However with Caleb and Maestro’s magnificence in finding out things I did wrong, we’re still in internal QA.  There are a couple issues that I’m currently working on, and one issue that came up today that I’m going to need some time to think about over the weekend. I’ve already fixed a few bugs however, so it’s still progressing, just much slower than I would have liked. I’m sorry that it’s taking a long time to get out. I’m touching a lot of systems and I want to make sure it’s done properly. I really do appreciate all the patience y’all have with me too :).

 Other Items

Scripted Sound Improvements?

During the Simulator User Group meeting on Tuesday October 29th, a question was raised about improving scripted sound capabilities with additional functions and parameters (e.g.  “llLinkPlaySound”, “llLinkStopSound” and “llLinkLoopSound”) which would allow for things like a single looped sound for a vehicle’s engine, with the ability to change the pitch of the sound to emulate the changing engine pitch when accelerating or slowing down without the need for multiple sound clips. This has been coupled with a request to make the prim collision sound being a property of the prim instead of the script.

Commenting on the request as the Server Beta meeting, Maestro indicated that Kelly Linden may be looking into things, although details of exactly what with be implemented, and what calls / parameters, etc., will be used is unclear. For the purposes of frequency modulation, viewer side changes will be required for making any adjustments to sound frequency.

Region Relocations

The subject of making it easier to move entire / large region builds from one region to another (so someone who owns two regions can move the contents of one to the other). currently there is no easy way to accomplish this. Apparently, the capability to ” restore to last position” (now only usable if you have rezzing rights at 0,0,0 within a region) was introduced for precisely this reason when the Linden were moving Adult regions to Zindra in 2010. Whether or not a capability to move region builds in this way would be re-introduced is open to debate; it is quite possible it is something that would not see that much use. Those wanting it, however, might want to file a Bug report (and label it “Feature Request”).

Firestorm 4.5.1: living in a materials world

firestorm-logoThe long-awaited Firestorm update has arrived in the form of Firestorm 4.5.1.38838. And for windows, it comes in both 32-bit and 64-bit flavours. If you’ve read my recent interview with members of the Firestorm team, or the transcript of the Firestorm Q & A held on October 26th, you’ll know both versions essentially have the same functionality, although there are some slight differences, which I’ll come to anon.

As far as the 32-bit release is concerned, however, there are a few  of up-front notes to be read:

  • It is a beta release, not a “final” release. What does this mean? Essentially that it is coming out with both new functionality and with a fair few bugs, some of which may well continue to irritate while others people should be able to live with
  • The reason it is not a “final” release is that there is a lot more coming down the pipe from Linden Lab – additional SSA + inventory work, further viewer-side interest list updates, new HTTP updates, group ban functionality, and so on. However, none of this has been officially released by LL, and so while it has been hoped to bring to users in a 4.5.1 release, the Firestorm team have (wisely) opted to draw a line under what they have and clear the decks for the next round of code integration and updates (which will also hopefully resolve a number of the more irritating bugs to be found in the viewer – any viewer – where things like inventory, interest list work, etc., is concerned)
  • Although the release is “beta” it is fully supported by the Firestorm support volunteers.

These releases see Firestorm reach parity with the Linden Lab 3.6.7 code base, and all fixes up to that release. What follows here is not intended as an in-depth review of Firestorm 4.5.1.38838, but rather an overview of what is likely to be the more popular features and updates and a look at some aspects of the Windows 64-bit version. This being the case, please also check the release notes / change log for a full list of updates and all attributions thereof.

Download and Installation – 32 bit

It is strongly recommended that users perform a clean install of the new release. For Windows users, this means ensuring you remove the Firestorm folders found in C:\Users\[username]\AppData – under the Local and Roaming folders respectively, as well as uninstalling the program. Do make sure you use the settings back-up option (Preferences > Backup) to back-up your settings prior to uninstalling your current version of Firestorm and deleting these two additional folders.

The 32-bit installer weighs-in at just over 44MB in size, which is pretty much par for the course for Firestorm, and (for me) installation was smooth and didn’t trigger any AVG Pro alerts.

Once started, I noted this release appears to follow the menu bar colour scheme introduced by the Lab alongside of their updated viewer release process. Rather than being the default Firestorm colour, the menu bar is tinged a deep purple, indicating it is a beta release.

CHUI Updates

As Firestorm already had a communications interface which does much of what Linden Lab’s Communications Hub User Interface (CHUI) does, Firestorm does not implement CHUI in its entirety, although some features have been added. These include:

  • Block tab added to the people panel
  • Support for showing/hiding timestamp and names, replacing own name with (You)
  • Added expandable chat entry fields (Firestorm specific improvements made by Cinder Roxley)
  • A new menu item, Comm > Conversation Log (see below)
  • Access to Conversation Log and Chat History from the People floater
  • Sounds for teleport and inventory offers.

Conversation Log

The conversation log allows you to review saved logs of past conversations from within the viewer. As noted above, options can be accessed via the Comm menu or via the People floater.

The Firestorm 4.5.1 Conversation Log floater
The Firestorm 4.5.1 Conversation Log floater

Using Comm > Conversation Log opens a floater listing all available conversation logs. Right-clicking on any name in the list will display a series of options: IM, view profile, offer teleport (if the person is online), etc.

Open Chat Transcript will open up the conversation history with that person in a viewer floater, or if you prefer, Open Chat Transcript Externally will display the conversation history with that person in an external application such as Windows Notepad. These options are also available from the gear cog button at the top right of the floater, while the button next to it allows you to sort the order in which logs are displayed and access the Nearby Chat history.

When using the People floater, right-clicking on an individual’s name will display an option to view your chat history (if available) with them within the viewer. If there is not available history, the option will not be displayed.

Export / Back-up and Import

Firestorm becomes the latest in a number of TPVs to include the capability for users to back-up or export their own creations to their hard drive. Version 4.5.1 provides two file formats for this:

  • .OXP format for backing-up your own creations – which can include prims, textures, sounds, animations and note cards
  • .DAE format (Collada) for exporting objects as mesh.

Both options will export objects and their textures (the .DAE export code is from Singularity), and both are fully compliant with the Second  Life permissions system, meaning:

  • Objects must belong to you, and all parts made by you or export will fail.
  • All textures on the object must be in your inventory, and be made by you. This includes sculpt maps
  • If you are not the creator of any element in an object, it will be replaced by the default when saving to your hard disk (so any prims you did not create will be replaced by a default cube, for example)
  • Any items contained inside the object (e.g. scripts, notecards, etc) must also be made by you
  • Back-up cannot be used to save mesh objects or objects containing mesh parts.
Back-up (l) to .OXP format and export (to Collada .DAE) from Firestorm
Back-up (l) to .OXP format and export to Collada .DAE (r)  from Firestorm. Note that as I am attempting to back-up / export an object which uses textures I did not create, Exportable Textures is set to 0 – on saving the file, the three  textures in the object will be replaced with the default plywood texture

Objects which have been backed-up should be imported using the Import Linkset option via the Avatar / Build > Upload menu. Objects exported as Collada .DAE files can be uploaded using the mesh importer.

To initiate a back-up or export, right-click on the object in question in-world and select Save As > Backup or Save As > Collada as required (if you’re using the pie menu: right-click and More > More > Save As and select the required option). The required dialogue floater is displayed – please then follow the Instructions on the Firestorm wiki.

When importing a back-up, it’s worth noting the following:

  • Importing a backed-up object
    Importing a backed-up object

    If you back-up a textured object to your hard-drive, note that as long as you have the textures in your inventory, you do not have to re-upload them when importing the object once more. Therefore, you can leave Upload unchecked and avoid paying to re-upload the textures. Once the object has been uploaded, the texture will be applied from your inventory

  • If the object contains textures, sounds or animations which have been completely flushed from your inventory since the object was backed-up, you will either need to check the Upload box on the importer and pay to re-upload them as a part of the import, or import them separately
  • You can opt to restore the imported object to the same region co-ordinates as recorded when it was backed-up (use with care) and opt not to have the object re-attach itself to you if it was originally attached when backed-up.

Materials Processing

Full materials processing support (diffuse, normal and specular maps) are included with this release. See my article on materials processing if you’re not already familiar with it. Or if you prefer, simply watch the video.

Movelock

Movelock is designed to provide a means of “replacing” avatar phantom (which no longer works as a result of other changes within LL’s viewer code) as a means of deterring people from trying to push your avatar around (such as when you’re afk, or simply because they are being an 18-karat wombat).

It uses LSL through the Firestorm bridge in order to try to “lock” your avatar wherever it stands (although you can still move around yourself with Movelock is enabled – it comes into play when others try to bump you around).

Movelock can be activated via Avatar > Movement > Movelock or by CTRL-ALT-P, or through the Movelock toolbar button. Once enabled, your avatar can still be pushed by other avatars and objects, but will return to its prior position when the pushing ceases. North, who coded the feature, produced a video on her early work with Movelock, demonstrating it in action.

Again, this isn’t the same functionality as avatar phantom,  but will hopefully act as a deterrent to those who insist on shoving others around.

New Particle Capabilities Support

This release of Firestorm includes the “new” particle system capabilities, comprising:

Arton Rotaru has produced a video demonstrating the ribbon particle effect to create tyre tracks left by a vehicle.

Particle Griefing Alleviation

Note that these new particle capabilities include the ability to right-click on a particle stream / any rendered particles and mute their associated emitter, effectively blocking them. This can greatly simplify dealing with unwanted particle effects, such as during a particle griefing attack be eliminating the need to find the actual emitters and muting them. Also, as part of a general anti-griefing measure, particles will automaitcally cease rendering if FPS drops below 4 (both of these are Linden Lab improvements).

Continue reading “Firestorm 4.5.1: living in a materials world”