Tuesday, June 14, 2011

The Shadow Knows…

Linden Lab has been boasting for at least a year and a half that they were on the verge of bringing "best of class" graphics to Second Life and today they rather unexpectedly took a major step in that direction. As of Viewer 2.7.1, released today, Second Life residents can optionally enable a number of real-time lighting, focus, and shadow effects aimed at making the virtual world more photogenic.

Lou at home, seen through the new tricks in Viewer 2.7.1—
shadows, occlusion, and depth of field.
(Unedited screenshot direct from SL.)

One of my peeves with Second Life is that while it offered up to eight lighting sources in a particular "scene"—that's a limit imposed by OpenGL, if a video card can support them—the lighting is horribly fake. The sun and moon count as light sources, so users can encounter (or make!) up to six other light sources. Lots of people wear invisible prim "facelights" to highlight their faces—fires, video screens, lamps, vehicles, and all sorts of other things can emit light.

But it's tremendously fake light. It illuminates nearby surfaces, but it also has this amazing nuke-yoo-lar ability to penetrate solid objects: it you set a strong light on the solid roof of a building, the roof isn't going to block the light from coming inside: stand under the roof, and you will be strongly illuminated by a light that shouldn't be able to reach you. You can see this effect all the time in Second Life: lights that magically shine through walls, through stone, through avatars, through…well, everything.

Another thing that makes Second Life lighting fake is the lack of shadows. Years ago Linden Lab apparently implemented some sort of client-side "foot shadows" that can appear around the feet of avatars in the morning or evening—basically, the only time you notice them is when they're hanging in midair where they shouldn't be, because an avatar is sitting, using a pose, or something. Linden Lab apparently implemented more realistic shadowing in their official Viewer but never enabled it because it so seriously degraded the viewer's performance. Some third party viewers—most notably Kirsten's Viewer—took the idea and ran with it, but Kirsten's viewer has always been described as "bleeding edge madness"—it's for folks with high-end graphics hardware, and the few times I tried to use it, the viewer crashed on launch. (Kirsten has actually added 3D support recently, which gives me a headache just to think about.)

So. With Viewer 2.7.1, Linden Lab has finally rolled out shadows and lighting effects in its official viewer. Although the new capabilities aren't available for every graphics system that can run SL—it looks like you need something supporting OpenGL 3.0 with at least 512 MB of video RAM—users can choose to enable them and take a look. When users look in their custom graphics options (Preferences > Graphics > Advanced) there are three new checkboxes and a pop-up menu—if they're available, then Linden Lab thinks your video hardware can support it. Lighting and Shadows is the basic setting for enabling shadows—Linden Lab calls these "high quality" shadows and they seem to be sort-of right: they move dynamically with the sun and moon, respond in real time to moving objects and avatars, and deal with moving "flexi" prims just fine. They also seem to deal with alpha layers in textures pretty well: if you see a tree with swathes of leaves done using a semi-transparent texture on a prim, the shadows will enable light to shine "through" the leaves. Neat!

The performance hit seems substantial. On my admittedly-aging computer with video hardware gamers would sneer at derisively, enabling shadows essentially cuts my frame rate in half: where I would normally get 20-22 frames per second in a typical scene, I'll be around 10 or 11 with shadows enabled. (That 20-22 fps is already substantially lower than the performance I got under Viewer 1.x and SnowGlobe, so I don't really believe the Linden's claims that Viewer 2 performs so much better than Viewer 1. That might be true, but if so it's being bogged down by a bunch of other things that I probably don't particularly want it doing.)

Ambient Occulsion seems to make for more contrast in parts of objects that aren't illuminated, and produces much smoother and fuzzier shadows from the sun and moon. Depth of Field seems to be a huge performance hit, and basically, blurs out things in Second Life that you're not looking at. If you move your camera to a point, that object will shift into a sharper focus, but other things (including stuff close to you—like your avatar) will shift out of focus. The effect is similar to focus effects seen in many console and PC games, and while it feels out of place in Second Life—it makes me feel like I have a vision problem—it may have uses for screenshots and other places effects can matter. The screenshot of me at the top of this post uses Depth of Field to blur out the background—although I will note it was remarkably difficult to get my avatar into focus for that screenshot.

The Shadows popup menu hints at what I think is the most intriguing details of the new lighting system. Users can choose that no objects produce shadows (counter-intuitive, but seems to produce slicker lighting overall then turning of Lighting and Shadows altogether), have the Sun and Moon produce shadows, or have the Sun, Moon, and Projectors (emphasis mine) produce shadows. Remember that superfake nuke-yoo-lar light Second Life has had for years? That's still there, and it's called Point lighting. A Projector is a new kind of light source that can point at things like a spotlight or flashlight would—and light from Projectors produces shadows. Like, real, honest to goodness, non-nuke-yoo-lar lighting. And it can be a textured light, creating enormous possibilities for ambient effects and even simple things like projected slide shows.

Suddenly, I think the Lindens might be on to something worthwhile.

The main problem, of course, is that all this is only available in Viewer 2 (third party Viewers will eventually pick up on it) and Viewer 2 is still absolutely atrocious. I happily concede Viewer 2's script editor is slightly improved and I actually like the location bar. But. I have so many usability, interface, design, functionality, privacy, and security issues with Viewer 2 that I don't even know where to start. Suffice to say: Viewer 2 is an absolute usability disaster—and I'm not holding up Viewer 1.x as any paragon of usability, either.

Viewer 2.7.1 also includes the Linden's latest attempt to "fix" in-world search—to me, it seems sluggish, inaccurate, and near-useless, but I'm sad to report that actually is an improvement over previous versions of Viewer 2 search I've seen. Viewer 2.7.1 is also a tits-and-ass enabled Viewer, so disable that feature or be prepared to see people made of jello.

Nonetheless, it is nice to see the Lindens spring a surprise like dynamic shadows and a new type of lighting effect. (And they've even—documented it. A little.) Please continue to surprise residents with things that overcome long-time limitations of the platform. Thanks.

Tuesday, May 3, 2011

Not That We're Keeping Track or Anything

Some eight months ago former Linden Lab CEO Philip Rosedale laid out a set of concrete goals for the development and advancement of Second Life. Although Rosedale has once again stepped down as CEO—with former EA exec Rod Humble coming on board a few months ago—I thought it might be useful to take a look at what's happened with these goals. Despite perpetuating an open-and-accessible atmosphere, in my experience Linden Lab is consistently obtuse and non-committal about how it plans to manage and extend its virtual world platform. These concrete goals were a rare articulation of the Lab's goals and were made after the Lab went through a significant downsizing that saw many well-known and veteran employees exit. The goals bear revisiting.

Mesh imports will enter beta by the end of 2010

Status: accomplished. Mesh imports have been up and running on Linden Lab's beta grid (Aditi) for some time. However, Linden Lab has not released a timeframe for when they plan to bring mesh imports to the main grid, nor have they articulated the "costs" of mesh—since meshes can be very complex,unlike sculpts some single-object meshes are likely to cost more than one prim apiece. Also, since creators will want to use mesh to create elaborate vehicles and environments, Linden Lab may increase the maximum size of standard prims to accomodate large meshes. Standard SL prims are currently limited to 10m³; reports have Linden Lab considering a new limit of 64m³. Other reports have Linden Lab waiting until third party viewers like Phoenix have viewers available based on Linden Lab Viewer 2.x code—viewers need to be updated to support mesh, and that pretty much means no viewers based on the older 1.x codebase will be able to view mesh objects. But the bottom line: mesh is in beta and interested users can work with it.

Users will be to create and edit their own Display Names

Status: accomplished. Display Names have been out on the grid for some months, and as a result Linden Lab has limited all new avatar account to the last name "Resident." In my personal experience, user adoption of Display Names seems low; even people using viewers that support Display Names often turn off because it reduces the usability of their Friends List, means they have to put up with a variety of "clever" names that use Unicode characters and special symbols in an effort to stand out from the crowd. And, when the name system fails, folks with display names just see avatars named "??? ???". My viewer doesn't support Display Names, but I wrote a little script that will tell me someone's Display Name. I find it's quite common for SL users to address people by their usernames rather than their Display Names, implying they are not using the Display Name feature in their viewers.

Group chat and sim crossings will be "fixed" by the end of 2010

Status: not accomplished. In my experience, group chat is even worse now than it was at the time Philip Rosedale promised it would be fixed by the end of 2010. The last two Buccaneer Bowl games have been significantly impacted by group chat failures, and what little group chat I engage in is, ironically, mostly people apologizing and complaining that their comments are out of order or missing due to group chat failures. Linden Lab apparently has been experimenting with converting the group chat to XMPP technology; however, recently reports have those tests producing no significant improvements.

Similarly, sim crossings have not improved. Linden Lab has rolled out a change that, when users cross between sims or teleport to a new sim, the data associated with their avatar is compressed (using gzip) on the server they're leaving, then transfered to the new sim where it's unpacked, saving significant bandwidth. However, if I have that correct, the change doesn't seem to have produced a significant improvement to sim crossings—there is a minimum lag of several seconds walking between sims—and the new systems now seem to mean teleports are a crapshoot: you can teleport, but you might not get anywhere, or (worst case) you might find yourself logged out of Second Life instead of arriving at your destination. I'm basing these comments not just on my personal experience, but observing avatars near me. My home parcel is located on a sim boundary, above a Linden railroad that other SL users often "ride" across a multitude of sims for fun. I regularly see avatars get "stuck" at the sim boundary near me when they try to ride the railroad across it—and my sim is comparatively quiet and underutilized. Don't believe me? Hop one of the bizarro vehicles that roam the Linden Roads and see how far you get before crashing.

Linden Lab will be shutting down the Teen Grid

Status: accomplished. Linden Lab shut down the Teen Grid and moved 16 and 17 year-old avatars to the main grid, where they are permitted to visit regions rated "General," but not "Mature" or "Adult." So far as I can tell, the sky hasn't fallen as a result of letting teen users onto the Main Grid; however, as an avatar who has elected not to participate in Linden Lab's age verification procedure, I have noticed an increase in the number of locations I am unable to visit. Some SL users I know remain deeply concerned about the presence of minors on the main grid, and apparently land on Linden Lab's adult-only continent (Zindra) continues to command a premium compared to mainland.

Linden Lab's Viewer 2 will adopt a scrum development process

Status: accomplished. Linden Lab has been kicking out betas and "official" release of Viewer 2 with regularity, so much so that they're up to Viewer 2.6 in their official release channel—they ought to be considering the question of whether they're going to run with Viewer 2.10 after 2.9, or whether they're going to round up to Viewer 3.0. The frequency of Viewer 2 updates has enabled Linden Lab to bring new features into the Viewer quickly; however, some of those released have had significant stability issues, suggesting the Lab hasn't magically solved the traditional problem of scrum development: quality assurance.

Viewer updates updates will be background downloads

Status: accomplished. Updates to Linden Lab's Viewer 2.x now download in the background whether users want them to or not.

Assets (textures, inventory, etc.) will be fetched using HTTP

Status: accomplished, I think. Linden Lab's HTTP Assets project has apparently rolled out, however, I have not personally observed any improvement in texture or inventory loading, while I *have* observed an increase in frequency in which my viewer's local cache (of textures and other stuff I'm "using") becomes corrupted, resulting in a crash or causing the viewer to crash on launch.

Linden Lab will eliminate new user orientation

Status: plans changed. Linden Lab does seem to have eliminated new user orientation, but "Help Island" and the infohubs are still up and running. Instead, Linden Lab has implemented "Basic Mode" and "Advanced Mode" in Viewer 2.x—Basic Mode restricts users to a tiny handful of approved destinations in the virtual world; users can only select from canned avatars, and can't buy or create anything. To do any of that stuff, they can switch to "Advanced Modes" at any time.

Linden Lab plans to make an iPad client for Second Life.

Status: no update. I haven't heard a peep about this from anyone since the day it was "announced."

Not that I'm keeping track, but I count that as one failure (sim crossings and group chat) out of eight items that had measurable deliverables—and considering the new Viewer "Modes" as the equivalent of eliminating new user orientation. The iPad app was a pie-in-the-sky thing; it hasn't been done, but nothing specific was promised, either.

What else has come along?

OK, so Linden Lab has delivered on a lot of what it promised back in August. What else has Linden Lab done along the way?

Avatar "soft physics"

The Linden Lab official viewer now supports butt, belly, and boob jiggle.

Web profiles

Linden Lab has converted avatars' in-world profiles to a Web-based platform, meaning avatars' profiles are now visible to the entire Internet (unless a user specifically makes their profile private). This change has not been without ramifications: for a while, Linden Lab was publishing all information in an avatar's profile to the whole Internet regardless of inworld privacy settings (including hidden groups); after that, setting a profile to private broke specific group management functions, making many common group management tasks impossible. (Here's the official bug; you have to have an SL login to view it. Linden Lab claims to have fixed it.)

Marketplace emphasis

Linden Lab is increasingly emphasizing its Web-based SL Marketplace as its preferred way to sell virtual goods, de-emphasizing the idea of shopping "in-world"—actually teleporting to an in-world store, finding the thing you want, and buying it directly. In some ways the Web-based store is a convenience move: many SL users apparently prefer shopping on the Web, and considering how frustrated I get shopping in-world, I can understand that. However, I also consider the Marketplace highly problematic: it seems to be consistently gamed by creators offering hundreds of versions of the same item—making it difficult to impossible to browse—search seems useless, and there's often not enough information available to make an informed decision. However, Linden Lab's stress on the Marketplace seems financial: they get a five percent cut on every sale.

Website revision

Linden Lab rolled out another major shift to its Web site—now dubbed a "Community platform"—that attempts to present SL's forus, Q&am;A, blogs, and knowledge base into a single unified presentation. (SL Wikis, the Marketplace, and user account management remain separate.) Among the new changes, users can get ranked based on "his or her contributions to the platform."

In-world search still deeply broken

I hate to flog a dead horse, but in-world search hasn't worked for me in either my antiquated Snowglobe viewer or Linden Lab's official viewers since October of 2010. Apparently it does work for other people, but remains deeply flawed, with complaints that people, parcels, businesses, and locations can't be found even when searching for their exact name. As a result, I have to rely on group notices (see group chat failures above) and out-of-band sources to learn when events I might be interested in attending are scheduled to happen. The only way I can find SL businesses by name is to use Google—and hope they have an out-of-band blog or other resource that includes a pointer to their in-world location.

So why did I run through all this? I'm sensing that the day Linden Lab blocks viewers based on the old 1.x codebase is coming sooner than later. At that point, I will be faced with a decision to use Linden Lab Viewer 2.x—which, in addition to a deeply problematic interface, is burdened with deep privacy concerns—use a third-party viewer based on Linden Lab's Viewer 2 code (same privacy concerns, plus a third party in the loop), or…leaving SL altogether.

Friday, April 15, 2011

Reign O'er Me

Ye Dear Readers will know that I can't keep this blog away from Second Life trivia for very long. So I hope I'll be forgiven for offering a few quick updates since moving Lou's Clues to my own "home" parcel."

The Frivolous Corsairs finally win Buccaneer Bowl!

We Are The Champions!

Although it's almost month-old news now, at long last the Frivolous Corsairs walked away with a Buccaneer Bowl team trivia championship! The team last month was me, our erstwhile captain Rain Ninetails, with very able backup from Honey Potez and Billy2Times Krams. The title was a long-time coming: although the Corsairs have had a number of second-place finishes and are often pretty competitive, the top spot has eluded us since the Buccaneer Bowl got started way back in January 2009. Although I haven't been able to attend every game (and once, technically, was on a winning team as an honorary Triviator) the Corsairs have managed to field a team for nearly every Buccaneer Bowl, and it was great to finally come out on top!

And I suppose I just need to say this up-front: while it's nice to win, it absolutely isn't a requirement for me. What I find remarkable about the Buccaneer Bowl is that we're able to assemble so many people into the same place at the same time and conduct a rather complicated, two-hour event and have a bunch of fun while doing it. I know this is going to sound wrong, but I kind of think of the Buccaneer Bowl as a monthly party where many of my smartest and funniest friends turn up to be…well, funny and smart! Although I wouldn't wish it on my teammates, I could come in last place every month and still enjoy the Buccaneer Bowl games just as much. Although there are lots of fun events and things to go in Second Life, the Buccaneer Bowl has been one thing I always look forward to with kind of giddy anticipation.

TriviAid for Japan Relief

The Second Life trivia community is developing a bit of a tradition of trying to do events to benefit real-world causes and organizations. In November of 2009 folks pulled together to conduct a 24-hour Triviathon benefitting Relay for Life, and various hosts have put on games in support of various realworld causes. Although there's no lack of worthy causes in the world, the earthquake, tsunami, and ongoing nuclear crisis that have struck Japan have been on everyone's mind, so this month the Second Life trivia community put together TriviAid, a series of games over a nine-day span that encouraged users to support Japan relief. TriviAid dovetailed on a similar effort organized by the Phoenix Viewer project—which set up an account to pass donations along to Global Giving, although hosts were encouraged to support charities of their choice if they wanted. Honey Potez took the lead there, spearheading contributions to Japan Earthquake Animal Rescue and Support (JEARS), a group of three Japan-based no-kill animal rescue organizations—and Honey made it count by pledging to double all received contributions.

In a world where a Linden Dollar is worth less than half a penny, raising money even for a good cause can be difficult: many SL residents have no money at all, and many carry the equivalent of just a dollar or two—and then there are people like me whose only in-world money comes from what we can win or earn. Nonetheless, Honey's efforts to support animal rescue totalled US$200, total TriviAid donations came to $L39,784, or about US$330.

Yes, in the grand scheme, it may not seem like a tremendous amount of money, but bear in mind there's nothing about Second Life trivia that's a profit-making venture: as a group, we haven't done any significant work to monetize the activity because, frankly, that's not why we do it. If you want evidence that virtual worlds can offer significant support to real-world activities, check out Project FUR: they also worked to raise money for JEARS, and set out a whole sim filled with virtual goods being sold as a benefit. Last I checked, they had raised more than $6 million Linden dollars: that's over US$24,000.