25 December 2011

The game has changed

It's been quite a while since I've written a post. I've been keeping my head down working on Firestorm. But, as before, I'm annoyed to the point of feeling it's time I spoke out again.

There's been a lot of words, a lot of arguments, and a lot of hate and discontent over the Phoenix team's announcement that, with the mesh release, we have ended major development efforts on the Phoenix viewer.

Come on, people. This should be a surprise to exactly nobody.

We've been saying ever since the release of Phoenix 1185, months ago, that we were concentrating on Firestorm. We haven't changed our tune one bit, and we're not going to. The reasons haven't changed. The only thing that has changed is that we thought it wasn't going to be possible to put a mesh renderer in a version 1 codebase...and Henri Beauchamp proved us wrong.

I think Henri Beauchamp is a great guy, and an outstanding programmer. The same goes for Siana Gearz and Shyotl Kuhr of the Singularity viewer. They are clearly dedicated to keeping version 1 viewers alive, but I think they've bitten off more than they can chew, long-term.

All Second Life graphical viewers are based on one of the official Second Life viewers. Emerald 1632 was based on 1.23. Phoenix is based on Snowglobe 1.5, as are CoolVL and Singularity. Imprudence is based on Snowglobe 1.4. Firestorm is based, currently, on Second Life 3.1; we'll rebase it on 3.2 as part of the next release, most likely.

The problem here is that, as Linden Lab updates the viewer, and updates Second Life to add or change features, they're only updating one code base: the one Firestorm is built on. That means that anyone maintaining a viewer based on something else has to do a lot more work to incorporate those new changes, or else do without entirely. Since those changes often mean the difference between the viewer being able to do something critical - like load inventory from the server - and not, that means that the maintainer has to do that extra work.

Meanwhile, the Firestorm team can just import the code and update those parts of it that it's modified, a much easier task. Henri and Shyotl and Siana took the same amount of time to put mesh in their viewers as it took the Firestorm team to update from 2.5.2 to 3.1.

This problem will only get worse as time goes on, and the result can only be that the version 1-based viewers become more and more a tissue of hacks and scar tissue and duct tape and chewing gum.

Quite frankly, I've got better things to do with my time. I'm a Second Life user. Yes, I'm a viewer developer, and I've sunk an immense amount of time into the code. But the main reason I do it, as satisfying as it is to help the SL user community, is that I want a viewer that fails to suck.

Firestorm is that viewer. It will continue to be that viewer. At some point, version 1-based viewers will not be.

Make no mistake. At some point, sooner rather than later, LL will start turning off the services that version 1 viewers depend on. The version 1 search, profile, texture, and inventory interfaces all run on separate systems, with separate services behind them, and there's nothing in it for LL to provide those services forever. They soak up resources: administrator resources, power, network bandwidth, computer servers. LL has every reason in the world to want to turn them off.

Not only that, but LL wants - needs - to add function to the platform. They're not telling us about their plans. (A serious mistake; we can't adopt their new shiny if we don't know about it.) Even so, it's obvious that there's new stuff coming that will need viewer support. We have limited resources, and Henri, Siana, and Shyotl even more so. We can either dedicate those limited resources to moving with the platform and fixing those things that continue to annoy users, or else we can dedicate them to wrapping more duct tape and baling wire around the version 1 codebase.

I choose to concentrate on making the viewer fail to suck even more, rather than propping up a dying codebase.

If you use and enjoy Firestorm, great! We put an immense amount of work into it, and that's really all the thanks we need.

If you haven't tried Firestorm, all I ask is that you give it an honest evaluation. Put your (quite understandable; I share it too) loathing for the Viewer 2/3 interface aside. We've spent a year de-sucking it. Give it a good, honest try. Then, if you can't stick with it, tell us why - specifically, in detail.

If you refuse to consider using Firestorm because it's based on Viewer 2...well, quite frankly, I've got no more time for you. I'm busy making Firestorm even better, and I'm getting to the point where telling me that there's no way that Firestorm will ever be usable is nothing more to me than uninformed insulting blather. I know better. Compare Firestorm to Viewer 3.1 and you'll see just how much we've done. I can't stand Viewer 3 either. You know what? When I run Phoenix these days, it feels old and clunky.

Here it is. You'll have a choice at some point in the not too distant future. You can either switch to Viewer 3, switch to Firestorm, or get off of Second Life. You won't have the option of sticking to a version 1-based viewer.

As for us, we'll keep working on making Firestorm something you'll want to switch to when that day comes. That means we don't have resources to spend on Phoenix any more.

Phoenix was the best viewer on the grid for quite a while. Those days are past. Lead, follow, or get flattened by the stampede. Your choice.