Tuesday, September 28, 2010

Hunted Down

One aspect of Second Life culture I haven't touched on in this blog is hunts, which so far as I can determine are one of the main activities in which many SL users engage—particularly if they're in the fashion-conscious set. Since dressing an avatar is something almost all SL residents do, almost everyone is fashion-conscious to one degree or another.

This store is participating in (at least) ten hunts. Which to choose?

The Game's Afoot

Hunts generally work like this: a group of folks who sell stuff in Second Life—which usually means they have stores and offer virtual goods—get together and decide to offer some items to visitors for free, just for turning up at the store. But here's the catch: the items aren't set out near the front door with a giant blinky sign pointing to them saying "FREE!" (Well, not usually.) Instead, they're hidden in a hunt item, typically a small virtual object secreted away somewhere on the premises of the store. When visitors turn up at the store, they typically have to wander around and cam through a bunch of nooks and crannies—thus taking a more-than-casual look at the store and its merchandise—in order to find the item. At that point, they can click it to receive their free item, along with a landmark to the next hunt location. Hunters can then teleport to another store to look for another hunt item hidden somewhere on the premises to get another freebie.

Hunts are many and varied, and there are usually several major hunts taking place on the Second Life grid at any given time—check out the SL Hunts blog for what may (or may not) be a reasonably comprehensive list. Some hunts are build around a particular theme, event, or season—for instance, someone who's not into scifi and robots might not want to spend time doing a cyberpunk hunt, but that same person might get into an all-shoes hunt or a holiday-themed hunt. Some hunts are short, involving maybe half-a-dozen stops, while others are huge and sprawling—I think I've seen descriptions of hunts with more than 200 stops.

You Can Be The Hunter…

Hunts bring together two things that drive the Second Life economy: residents' desire for freebies, and sellers' desires for promotion, sales, and traffic. Residents benefit because they can literally get something for nothing: just turn up, wander around for a bit, click a tiny object and presto! Free stuff!

From a hunter's perspective, hunts can be fun: you get to pop around to a bunch of locations in Second Life, pick up free stuff, then pop back to your virtual home or a sandbox to try things on and sort through all your goodies. If you don't want to follow a hunt from beginning to end, it's pretty easy to jump into most hunts at any point along the way. Almost every hunt has a blog or Web site showing who's participating and sometimes what sort of stuff has been set out. It's considered poor form to "cheat" on hunts—don't stand next to a hunt item shouting "It's here, people, right here! Behind the plant!"—but some blogs and sites often assemble lists of hints of where hunt items are hidden, which can sometimes make it easy to see if you're interested in a hunt, or, say, to visit only hunt sites in which you're particularly interested. Hunts can be a good way to see how different creators approach things in SL—invisiprims, hand-drawn versus photographic textures, animations, kookiness, realism, whether items can be modified, etc.—without having to spend money and potentially get burned. So free hunt items are an opportunity to learn about types of virtual goods.

For sellers, hunts are promotional tools. Businesses get exposure for their stores and merchandise—not just at their locations, but also in the myriad of blogs and Web sites that cover Second Life hunts and review hunt items—as well as traffic, a measure of how many residents visit a Second Life location. Traffic impacts how highly a location in Second Life is ranked in the in-world search feature: a place with lots of visitors is ranked more highly than a site with virtually no visitors, on the premise that if more people go there it must be good.

(The logic of this sort of primitive crowdsourcing to provide "search relevance" is specious—and things like hunts make it even more specious. I'll save the bulk of this rant for another time, but in some ways hunts are an example of in-world businesses gaming the Second Life search engine. Participating in a hunt is a way to increase traffic numbers and, therefore, be ranked more highly in search.)

It's not unusual for in-world businesses to participate in several hunts at the same time. Pop into any reasonably popular in-world store—they're easy to find because (amazingly!) they're ranked highly in search—and you're bound to see posters and placards and displays proclaiming the store's participation in this-that-and-the-other hunt. (Providing information about the hunt at every location is pretty common: promotion, promotion, promotion!) So sometimes you can pick up multiple freebies as a single stop.

The quality of items available in hunts varies widely: some aren't even good enough to merit the adjective "craptastic," while others truly are stunning pieces that, undoubtedly, the creators could be selling for hundreds (or even thousands) of Linden dollars. The vast majority tread a middle ground: they're neither bad nor particularly spectacular: some might tickle your fancy, while others will leave you non-plussed. It's pretty common to find a hunt item that has potential but has one or two major strikes against it: "Wow, this would be great if only it weren't fluorescent orange!" In cases like that, the creator probably makes a version of the item that's closer to what you (and probably lots of other people) want…but it's not available for free.

…or You Can Be The Prey

OK, so here's my thing (and you knew this was coming, this is Lou's blog after all): I pretty much hate hunts. It's not that I begrudge in-world businesses trying to get some exposure, or even mind picking up free items that, ninety-nine percent of the time, I have no use for and never wanted in the first place.

No. I hate hunts because of the way I feel when I try them: angry and stupid.

I actually got off to a positive start with hunts. Lette Ponnier (Buccaneer Bowl quartermaster and hunt goddess extraordinaire—catch her over at Virtual Fun & Brains) was kinda astonished at one point that I'd never tried a hunt. So one evening we set off for a few stops together in some hunt in…gosh, it must have been early 2009? We zipped from place to place, I was getting some free stuff, we were chatting, I was using a few explorer-Lou tricks to quickly scan through stores, and it was generally a good time. It must have been, because a few days later I went back to that hunt and did several stops on my own. I wasn't even terribly disappointed that none of the things I picked up were remotely interesting to me (I remember now: it was some Valentine-themed hunt I think: lots of hearts and lingerie and flowery crap mixed with the odd spiked leather bathrobe—mmmmmyeah). I was just goofing around, seeing what hunts were like.

But since then, I don't honestly think I've been able to complete more than a few stops on a hunt without cursing wanting to hit something—and, more often, I can't even get through a single stop.

First, it's the lag. One of the downsides when popping from place to place is that you have to download all the details—prims, textures, etc.—when you get there. And since lots of these places are stores that want to look supercool, they're festooned with prims and lots of high-resolution textures, scripted gimmicks, and masses of sculpts. Even on a high-bandwidth connection, popping into these places often entails several minutes of doing nothing but waiting for things to rez enough that I can step off the landing point, let alone start to look for a hunt item. (The way most hunt items work, you have to be relatively close by for them to render at all, so you have to wander around after arriving.) Adding to the lag are often a selection of hunters, dressed to the nines in their giant fake prim feet, blingy jewelry, talking pets (or talking tummys), multi-layered tattoos, tails, hugely laggy hair, and maybe a thong. Ironically, you can sometimes identify experienced hunters because their avatars are not over the top.

Second, it's the people. I don't intend to disparage "SL hunt culture"—whatever that may be—but, I've gotta say, outside of actual griefers, the people I routinely run into participating in hunts are easily among the rudest and crudest I've encountered in Second Life. Aside from scammers and predators hanging around popular hunt stops begging for money and/or virtual sex—I guess they got kicked out of infohubs and the you-sex-me-now clubs—I find hunt participants are routinely rude. I'm insulted for my height, the way I dress, for what I say (or for not saying anything at all), for pretending to be a kid, or for just existing. It's not just hunt participants: I've had a handful of store owners/managers get on my case, and one even banned me from her store and abuse-reported me to Linden Lab because I was taking "too long" at her stop. (In reality, I had been away from my computer for a few minutes while I waited for things to rez, but after that I legitimately could not find the hunt item. She assumed I was a griefer or copybot operator.) Considering how few hunt stops I visit—and how common these incidents are—I can't imagine wanting to be regular "hunter."

As a result, I've (repeatedly) sworn off participating in hunts. The sole exceptions I'll make are when someone I know recommends I check out a particular stop on a particular hunt, because he/she thinks I would particularly like the item. (For the record, I also go and check out for-sale items friends recommend to me.)

But I almost never get to see those items—which brings me to point three: sheer frustration. I'm not new to Second Life, and as a builder I have some pretty solid camera skills. But I gather "SL hunt culture" has found new and interesting ways to cheat at hunts—perhaps object searches built into third-party viewers, viewing things in wireframe mode (where you just see surfaces outlined without textures), or maybe other things entirely. So, it seems, many hunt stop proprietors try to be extra clever about where they hide hunt items—I've found them floating in mid-air 50m about a store, embedded in walls or other objects, shoved meters below the ground, and (once) carefully encased in a touch-enabled prim so the item couldn't be clicked. Others I never found at all. To be sure, plenty of hunt locations "play fair"—but some do not.

I love puzzles. I love figuring things out. But I deeply resent being gamed. Roughly 50 percent of the time I can go to a hunt location, spend half an hour legitimately trying to find the hunt item, and come up totally empty. If I can't crack a hunt location in the first ten minutes, my only prayer is usualy to wait at the location, hope other hunters show up, then pay attention to where they're standing before they vanish: that's sometimes an indicator of the hunt item's general area. Except, you know, when stores are in multiple hunts: then, it's inevitably the location of a hunt item I'm not trying to find. Or, you know, when the other hunters just give up too. The result is that not only do I feel like an idiot, but I feel like someone—the hunt organizers, or a store owner—is toying with me. And that makes me angry.

Maybe it's just me—maybe I'm the odd duck in the pond and everyone else loves hunts and everything to do with them. I have to assume that kind of profoundly negative experience isn't what Second Life businesses want their potential customers to have…but, then again, I suppose it doesn't matter to them. Second Life search doesn't care whether the time I spent at a location was positive or negative, only that I visited.

Tuesday, September 7, 2010

Lord, Keep My Memory Green

As of 10 AM Pacific Daylight Time (which is also SLT) on September 8, 2010, Linden Lab will block all versions of the Emerald viewer from connecting to Second Life. Emerald users will need to either revert to an official Linden Lab viewer, or another third-party viewer that is still permitted to connect to the grid.

Linden Lab's move is the just the final nail in the coffin of the Emerald viewer—since I last wrote, the Emerald development team has abandoned its plans for a brand new fully transparent organization and scattered to the winds. Some of the former Emerald team have grouped together to launch new third-party viewers based on apparently-legit versions of Emerald itself—more on that below. Some other Emerald team members have apparently gone back to whatever they did in Second Life before they became players in the virtual world's biggest soap opera, and some of them—maybe, hopefully—have maybe gone away for good.

But don't bet on it.

How Did We Get Here?

Linden Lab removed Emerald from its Third-Party Viewer Directory for repeated violations of Linden Lab's third-party viewer policy, and also for violating the GPL, or GNU General Public License (v2).

I detailed Emerald's privacy violations earlier: the Emerald viewer baked personal information into user's avatar textures, and used its login page to hijack users' Internet connections to launch a distributed denial-of-service attack against a third party. It's not clear whether Linden Lab considers the infamous "datamine" database the Emerald development team constructed earlier this year to be a privacy violation, but certainly many Second Life users did.

Violating GPL means that the Emerald development team included proprietary, commercial software in the applications: the now-infamous emkdu image processing library. All third-party viewers are based on source code from Linden Lab released as open source under the GPL license, which requires all derivative software must, in turn, be licensed under the GPL. Since a commercial software component cannot be released legally as open source, it cannot be included in an open source GPL product.

Linden Lab acknowledges being "in communication" with the Emerald development team over these issues, and says it requested "several changes" to Emerald. According to Linden Lab, Emerald is being banned from the Second Life grid for not being able to meet those requests by September 3.

So what were those "requests?"

According to Jessica Lyons—a former member of the Emerald development team and coordinator of a follow-up viewer—Linden Lab demanded the following:

  • A fully transparent development process with open mailing list, online forums, and a publicly accessible source repository with public notices whenever code was committed to Emerald;
  • Publish a privacy policy that detailed all user data collected or stored by any version of Emerald that has ever been released;
  • Everyone with commit privileges to Emerald would have to be a Second Life user in good standing and a signatory to Linden Lab's third-party viewer policy, which means disclosing their real-life identities to Linden Lab;
  • Emerald would have to remove the commercial emkdu library; it also could not ship Linden Lab's own (similarly commercial) llkdu with Emerald;
  • Emerald developers Lonely Bluebird (aka Phox), Discrete Dreamscape, and Skills Hak must be severed from the project.

Ye Gentle Readers will notice that last request is not like the others.

Why Those Three

The Emerald development team has put out the notion that the denial of service attack embedded in the viewer's login screen was the work of one developer—the Emerald project lead, Fractured Crystal, aka JCool—and he resigned from the Emerald project as a result. So why was Linden Lab intent on getting three more Emerald developers off the project? In the world of anonymous avatar names—and where creating a new account and a new name is the matter of a few minutes' work—it's hard to be precise. But all three appear to be (or have been) involved in the creation of Second Life viewers capable of downloading and copying in-world content in violation of copyright, and which likely contained griefing tools and other exploits that could crash user's client, crash sims, and even getting users to connect to rogue sims.

Linden Lab's beef with the person behind Discrete Dreamscape is long-standing: Discrete posted copybot code to Linden Lab's own JIRA issue tracker system on multiple occasions—another Emerald developer, LordGregGreg Back, lauded it. Skills Hak is the mastermind behind the popular Second Life cyberpunk roleplaying community Insilico, but is also the main face beyond the Gemini CDS (Copybot Protection System), which purports to protect private sims from users with content-ripping viewers. And Lonely Bluebird—aka Phox—has reportedly been permabanned from Second Life on at least one occasion.

In addition to creating Emerald, several of the Emerald developers were also working on a viewer called Onyx, which Fractured Crystal positioned as a private viewer—not available to anybody!—that focussed on identifying vulnerabilities in Second Life so they could be reported to Linden Lab to be fixed…and, of course, detected for commercial purposes by Gemini CDS.

In May of this year, a snapshot of the Onyx code base from October 2009 leaked to the broader Internet. The code archive revealed two things:

  1. Onyx was merely an elaboration of the content-ripping client Vlife.
  2. Developers who had checked in code to Onyx at that time included Fractured Crystal, Lonely Bluebird, Luminous Luminos, Thomas Shikami, Tyken Hightower, Zwagoth Klaar, and Discrete Dreamscape. (At a later date, Skills Hak stated she was working on Onyx.)

By most (not all) accounts I've been able to gather—and, again, avatar names and online handles are slippery things—the VLife client was the child of JCool—aka Fractured Crystal, the former head of the Emerald development team. And VLife is apparently one thing that got his JCool persona permabanned from Second Life. (There is some evidence JCool was banned more than once, or at least commited multiple serious violations of Second Life terms of service, including accessing "god mode" administrative features reserved for Linden Lab employees.)

The list of programmers who checked code into Onyx is notable for three names: Lonely Bluebird, Discrete Dreamscape, and Skills Hak. Those are the only three (known) Onyx developers who were still on the Emerald team last month when Linden Lab removed Emerald from the third-party viewer directory. All the others had, by that time, apparently left the project. Maybe, anyway. Tyken Hightower was definitely hanging around with the Emerald development team at the time of the denial-of-service attack.

I could easily be missing something, but Linden Lab's "request" that Lonely, Discrete, and Skills leave the Emerald development team makes sense in this context: Linden Lab won't permit a third-party viewer in its directory that has developers who have worked/are working on content-ripping and griefing viewers.

According to Jessica Lyon, Discrete Dreamscape and Skills Hak withdrew from the Emerald project in response to Linden Lab's "request." Lonely Bluebird, however, refused, then singlehandly released a new version of the Emerald viewer (build 2600) with the ability to spoof its version and client ID. That version of the Emerald viewer was not vetted by whatever QA or release procedures the Emerald team had in place.

So what about those slippery avatar names—couldn't these just create new accounts and get back on board? Yes, they could. And that seems to be why Linden Lab is now requiring every developer who can contribute to a third-party viewer project be a signatory to Linden Lab's third-party viewer policy…and that includes handing over real-life identity information. This is a significant policy change for Linden Lab, which had previously permitted Emerald to be listed in the third-party viewer directory with only the project lead as a signatory to the policy.

Viewer Options

So what now? For all the variously illegal, copyright-infringing, and TOS-violating acts seemingly committed by substantial number of Emerald developers in the last year, there's not denying the Emerald viewer garnered broad support in the Second Life user community for its advanced features and capabilities.

For now, Emerald devotees aren't without options:

The most direct beneficiary of the Emerald debacle is probably Imprudence, which has been around for two years now. When Linden Lab initially announced its third-party viewer policy earlier this year, Imprudence announced it would cease supporting Second Life and continue on as an OpenSim-only viewer; however, they quickly reversed course and created a version that complied with the policy. Imprudence says they're still primarily focused on OpenSim, but the viewer does pack a lot of power-user features and, to my sniffing anyway, seems to have few or no ties to the Emerald development effort.
Phoenix: The Phoenix Viewer is currently the most direct inheritor of Emerald, and is available for Windows, Mac OS X, and Linux. Phoenix is spearheaded by Jessica Lyon, the dev lead is Dimentox Travanti (the creator of the Dark Combat System (DCS) widely used in Second Life, and includes former Emerald developer LordGregGreg Back as the current Windows development lead. Former Linden Lab employee Vortex Saito is on board as well. The current builds of Phoenix are essentially the last "legitimate" version of Emerald, minus the emkdu library.
Emergence is a Windows-only viewer, based on the final "legit" Emerald code base, released by LordGregGreg Back who initially characterized it as a stopgap measure to tide Emerald users over until the brouhaha resolved. It's not clear whether LordGregGreg intends to sustain Emergence now that Phoenix is available.
Ascent aims to be a lighter client with features specifically aimed at content creators.

Of these viewers, Imprudence has the longest pedigree as a standalone project. I know almost nothing about Ascent; however, it—along with Emergence and Phoenix—only managed to get listed in the Third-Party Viewer Directory today.

Note that most of these third-party viewers swap code around—that's how open source works. For instance, Ascent contains features borrowed from Emerald, and features from Imprudence found their way into Linden Lab's SnowGlobe and from there to Emerald and other viewers—there are many other examples. Folks who want to be entirely free of code contributed by the Emerald development effort would be best advised to stick with Linden Lab's official viewers—and, even then, there's a possibility code contributed from Emerald via open source could make it in…particularly since Linden Lab is knuckling down on rapid viewer development with its new Project SnowStorm.

Who Do You Trust?

Some folks will shrug and think "Second Life is only a game, none of this really matters to me." And, for some portion of Second Life's user base, that's undoubtedly true.

However, let's remember that many people run real businesses in Second Life with real money. so the notion of who you trust with your Second Life account information—which, in turn might be connected to things like PayPal accounts, credit cards, and bank accounts—is less trivial.

And then there's identity. Just because you might around Second Life as a giant robot or a cartoon character of a 2m-tall vampire something doesn't mean there's no consequence if your privacy is compromised. Collecting IP addresses, associating accounts with particular computers and locations, and paying attention to how avatars behave and what they reveal about themselves, it's possible to track down many Second Life users in real life—and that creates a possibility for real harassment. How many Second Life users would be comfortable with their employers, co-workers, colleagues, family, or friends knowing everything they do in Second Life?

And, of course, if someone has your real life information, they might decide to break into your house. Or worse.