SL Content: King or Curse?

I’ve been following a Reuters blog thread for a few days now. Even though it’s an older story, the thread is still going somewhat. The Reuters story can be found here.

The story is Adam Reuters’ report on Meta Lindens blog post of SL Metrics.

The story can be summarized as follows (my own paraphrasing):

‘Linden Lab reports improving performance at the server side, but declining performance at the client side.’

In other words, Linden Lab is improving that performance and stability of Second Life on the server side – their machines that actually host the virtual world – making them better. While at the same time, the clients – or the viewer software used by residents on their local computers to connect to the virtual world – are experiencing degraded performance and crashing.

There are many reasons for this and people will be more than happy to throw-in their two-cents. And so am I. >:)

I have been in the IT and media business for longer than I care to admit. Suffice it to say I have plenty of experience in computers and how they work, especially in the media, graphic design and 3D Raytracing and rendering arenas.

Now, I’m not claiming that my explanations are the cold, hard, end-all definitive explanation to what’s going on here. Rather, I am simply providing one of many explanations that we all know to be true in the back of our minds, but never really looked at straight in the eye.

First, there is the technical side of things. After all, SL is a marvel of technical prowess. We are interacting in 3D over wires with other people from, in some cases, the other side of the planet… instantaneously.

Stop and think for a few seconds about what is really happening here. There is a lot of really technical, complicated, and yes – fragile code being thrown around the internet that enables us to see and feel like we are in a real world inside the computer screen.

I personally have no doubt the employees and engineers at Linden Lab are working frantically to fix any outstanding issues at both server and client ends of this precarious tightrope we are all really running along.

However, there are some things that are just out of Linden’s control. Specifically, the hardware and associated driver software variety that is out there. I use both Microsoft Windows and OS-X based systems.

No flame wars, please. But if we all were using Macintosh, the Second Life experience would be exponentially better for everyone. Not because it’s Macintosh, but because the Mac is created by Apple, Inc.

Here is what I mean…

All Macs are designed, engineered, and for all intents and purposes, created by Apple, Inc. In other words: everything is designed and built by one company. It’s one of the reasons Mac users love their Macs so much. One company, one vision, one complete process from inception to delivery using one set of rules and definitions.

Apple has full control over everything that goes into a Mac. The hardware, the software, the associated support drivers… everything.

What that means is that every Macintosh works and functions like every other Macintosh. If I write software for a Macintosh, it’s easier and smaller and will always work as designed and expected because every Mac is a known quantity.

On the Windows platform, however, it’s another story altogether. There are only a few CPU processor types available to be sure. But hundreds of different video cards, and each manufacturer of those have dozens of different configurations and in many cases, each configuration requiring a different set of drivers. The same is true for many other components of a Windows-based PC.

It’s the reason why MS Windows requires so much more hard disk space than OS-X for example. Because Microsoft doesn’t know what you have, they just throw everything in there to be sure whatever your system needs is in there already. The rest of it just sits idle, never used, wasting hard disk space.

As far as SL is concerned, the video card is probably one of the more crucial components in your system. Now, imagine writing the SL Viewer to work with as many different video cards as possible. And even of the three major brands (Intel, ATi and Nvidia) – there are many, many variations, all requiring different drivers and each card and driver set supporting different features. Then create the SL viewer to give the biggest awe-striking bang for those high-end cards, yet also be able to tell the difference in the card you happen to have and adjust itself appropriately.

Then, on top of that, realize the drivers are not always up-to-snuff, also supporting different features based on the card you have. And, in some cases, not even completely supporting their own card features.

On top of that, add-in that Microsoft sends updates to Windows almost weekly – sometimes really changing how drivers work. So the client user downloads and installs updated drivers – which may or may not work properly or fully with their existing hardware. Or, which happens often, they aren’t sure which driver set to download and install – and grab the ‘wrong’ one.

Often, it will still work. Wonderfully… until you push the capabilities of your hardware to their upper limits. This is when those wrong drivers will show their true colors.

And don’t forget how corrupted MS Windows becomes over time. Any experienced Windows user will tell you to wipe-out your hard disk and reinstall everything from scratch every few months to keep your system operating smoothly. But most consumers don’t even consider this and are running 3 and 4-year-old systems that have never been ‘cleaned’ – making them already unstable and slow.

Again, the computer will sing along wonderfully, until you push it hard. After all, how much computing and graphic power do you need to type a letter? But when you push hard, the cracks show. And SL pushes your system hard.

Now – on top of all this, take into consideration the content of the Second Life landscape. Everything is user-created. That doesn’t mean all the users know what they’re doing or are very good at it.

When you create a web site, your will usually optimize your images for a fast download. At least you did in the old days. But with so many on broadband connections these days, most of us don’t try as hard as we used to.

However, the amount of data that is being downloaded in SL to draw the SL world in the SL viewer is ridiculous. It can easily be compared to being back on a 56k modem in terms of performance.

Except that now, instead of just pictures, we also are all downloading three-dimensional geometry instructions that we expect our computers to be able to decipher, construct and shade… and 30-times per second, if not faster!

Now – if the ‘pictures’ are not optimized for fast download, that’s going to slow-down the image drawing as the entire picture must be fetched. Then there’s the 3D geometry information. Then your computer CPU must calculate the math and pass that information on to your video card drivers, which in turn tell your video card how to draw the picture. The drivers will decide whether to add glows, shiny reflections, shadows, colors, patterns, bumpiness… Then those video drivers have to tell the card what to do with each and every pixel of the picture sitting in memory and make it look like the picture (a texture for example) should look against the 3D geometry so that it has three-dimensional perspective distortion.

On top of all that, my original installation of MS Windows that has never been maintained or cleaned over the last three years and is already unstable is also dealing with all these video drivers. Everything throwing data back and forth at ridiculous speed… somethings got to give.

When it does ‘give’ – we call that a ‘crash’.

But it’s all Linden Lab’s fault, right?

The way I see it, the majority of resident problems have to do with the content in SL itself. Visit Kayliwulf Kingdom sometime. OMFG! She must be using 22×48 pixel images @ 300 dpi textures in her vendors. It’s almost best to teleport into that store and then go to bed. Hopefully, when you wake up the next morning most of the vendors will have rezzed for you. It’s not only ridiculous, it’s stupid ridiculous.

I don’t mean to pick on Kayliwulf, but it’s an excellent example of how NOT to set-up a retail store in SL, and there are a lot of locations in SL that are exactly the same way.

Then there are the builders who will use ten different textures to decorate a coffee table. Hello? A good texture can decorate an entire coffee table without looking like the same texture and thereby increasing the download speed and lessening the overhead on the client CPU. The content creators simply need to try a bit harder and learn to use the software properly. But, I won’t hold my breath. I know better.

Then there are those places with a gazillion ‘prims’ in all sorts of shapes. Your computer has to calculate and draw all those shapes – and add those horrendously large textures as well.

On top of that, if your computer is three years old and you’ve never reinstalled your system from scratch, you’ve got three years of Microsoft corruption and ‘garbage’ all through the thing. And, possibly, older drivers and system software. So, when your computer ‘lags’ and then the SL viewer crashes constantly, it’s LL’s fault, right?

If I were forced to break it all down, I’d probably do it like this: Instability, crashing and overall piss-poor user experience in SL can be blamed the following way: I figure about 50% of it has to do with the lousy builds.  Have you ever noticed how some locations are a lot more pleasant (user experience-wise) than other places? A lot less ‘lag’? That’s the difference in the content you have being forced down your computer’s throat.

Next would be the user’s own system. Microsoft Windows slowly corrupts itself over time. It’s no secret. That, along with internet garbage strewn all throughout the system and lousy or old drivers make the system a touch unstable to begin with. It just doesn’t become so unstable until the system is pushed hard. Which the SL system of viewer and server will do. There’s another 25% easily.

The next culprits to blame are the graphic card manufacturers and their lousy drivers. Constantly being updated and reconfigured and all that. ATi drivers don’t even fully support the kick-ass features their cards are capable of. There’s another 5% of the problem.

The remaining 20% is owned by Linden Lab. I know they are working hard to fix everything. I have no doubt about it. The problem is uncle Philly pushed so hard for features over stability for so long that now the code is a tangled mess of spaghetti. It’s near impossible to fix one bug without creating another. The engineers at LL have their jobs cut-out for them and they have my pity and condolences.

With all this said, the next time Second Life blows-up or you’re stuck in a sim that takes 20-minutes to rezz for you and you are experiencing the dreaded lag-monster – try to remember: you own part of the problem. So does the creator of the world you are trying to rezz. And then there’s your video card manufacturer. Finally, LL is in there, too.

But in the end, we the users – the ones who created the content and we the ones trying to see it are more the problem than Linden Lab when it comes to all these stability issues everyone is so happy to bitch about on the Linden blog.

So, when was the last time you completely wiped out your hard disk drive and reinstalled everything from scratch? You’d be amazed how fast and sweet your computer runs after doing all that work.

But, if you don’t know what you’re missing…


About this entry