Sunday, June 23, 2019

Just How Much Does Unoptimized Content Affect You?

I often talk about the need to optimize content in Second Life, and frequently I find people underestimate just how much that would improve SL for everyone. People seem to think that because SL is so old it must just have a badly aged engine and optimizing content would only improve things a little.

 They are mistaken.

Here is the reality:

If your computer was made in the last 10 years and includes a videocard, you should be able to run SL at around the max settings, never experience texture thrashing (when textures in SL are constantly going blurry), never experience stuttering (when SL freezes up for a moment), and if you have a reasonably decent net connection then everything in Second Life should load lightning fast.

 Second Life should look this good for you at all times:

And I'm not just talking you, by yourself, in a sim that looks as good as these screenshots, I'm saying you should be able to hang out in a sim with that level of detail, surrounded by about a dozen friends, and still keep your framerate around 30 FPS, if not better.

 That's with deferred rendering, depth of field, shadows, and all the shiny features turned on.

If you have a computer made within the last 10 years that includes a videocard, what would today be a low to mid range videocard it doesn't matter, and that is not what Second Life is like for you, it is 100% the fault of unoptimized content.

 Here are the specs for the computer all of the above screenshots were taken on:

  • Operating System: Windows 7 Ultimate 64-bit
  • Processor: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (8 CPUs), ~3.4GHz
  • System Memory: 12GB RAM
  • Card name: NVIDIA GeForce GTX 960
  • Video Memory: 4GB RAM

In sims I made myself, or the handful of other locations in SL created by people who put in the same amount of effort to optimize their work, that is my SL experience. In terms of graphics, SL runs like a dream on my 10 year old computer.

If you have a computer with equal or better specs than this, and Second Life does not look like this for you ALL THE TIME, with no "visual lag" whatsoever, no long rez times at all, no blurry textures or any other graphical issues, all with 30-60FPS or better, then compare what you do experience to this because that is how much you, personally, are being affected by unoptimized content.

What about people running on much less powerful computers?

What about people running SL on laptops or other computers with no dedicated graphics card?

For some reason, a lot of people seem to draw the crazy conclusion that optimizing content won't help people running SL on a toaster. I shouldn't have to point this out, it really should be obvious to anyone, that the less powerful your computer, the more you are affected by unoptimized content.

So, I tested each of those sims on a Microsoft Surface Book from 2015. The version without the optional graphics card, so it's running Intel onboard graphics.

At low graphics settings I got a comfortable 30-40fps in all of the pictured sims. No texture thrashing. The only stuttering I noticed was when scenes were still loading, which did not take long even on a wireless connection.

I was able to turn on everything short of deferred rendering (Advanced Lighting Model) and my fps still remained in the 20's. Turning on deferred caused my FPS to tank down to 8fps.But I was still able to run SL with shiny, glow, bump mapping, local lighting, everything short of deferred rendering at a comfortable 20fps. No texture thrashing. No stuttering except during the (very brief) times it took each sim to load.

 I had a Toshiba Portege from 2007 that I used before the Surface Book. I actually kept SL installed on that laptop because it actually ran SL better than the Surface. If I can find the power cord and spare batteries, maybe next I'll dust that off and give SL a go, but I think I've made my point.

 If SL content creators put in the minimal effort to optimize their work, everyone would be enjoying the substantial benefits. That is a hard fact.

Aren't you expecting too much from hobbyist creators?

No. Full stop. If you're asking that question I can only assume you are not a content creator. Optimizing content is easy. Extremely easy. Anyone who has the skills necessary to create content in the first place already knows enough that optimizing their content would be simple for them. It adds a couple extra steps, and may cause a project to take a little bit longer to finish, but it won't be difficult for them at all.

Here's my guide for creating your own LOD models so you can have fantastic looking content with a low Land Impact cost, without telling people to murder their framerates by forcing everything to full LOD by cranking object detail way up.

Here's my guide featuring a few simple optimization tricks anyone can do, regardless of your skill level.

If you're a content creator who already has a basic grasp of Blender, here are a couple of guide series I highly recommend you check out. They will teach you all you need to know to create better, more optimized models.

For Beginnings: The Donut Tutorial!

For Intermediate Blender Users: The Anvil Tutorial!

The Donut Tutorial gives a brief introduction to UV unwrapping, but the Anvil Tutorial goes in-depth on how you can create models with no wasted texture memory. You want to fit all the details you can onto as few texture maps as possible. Always.

Both tutorials are super easy to follow, Blender Guru doesn't skip or gloss over important steps, but he also doesn't drag things out, so the tutorials move along at a quick, but not too quick, pace. I highly recommend them to anyone creating mesh content for Second Life.

Optimization Benefits Everyone

In short, everyone would benefit if content creators optimized their work. You would. I would. All of the content creators would. There is literally no downside. We'd all get higher framerates. Most of us would be able to run SL at higher graphics settings and still get higher framerates than we do now. Stuttering and texture thrashing would be a thing of the past.

 Linden Lab would benefit probably the most, because it would be a lot easier for them to draw many new Second Life users into the fold. And that would mean healthy growth, and LL would be able to afford to put even more resources into making SL even better for everyone.

Monday, June 17, 2019

Why Anticipated Second Life Features Go Unused Once Released

Linden Lab as a usability problem.

They cater Second Life towards a general audience of hobbyists, but then make the tools more difficult to figure out than similar tools found in programs aimed at professionals. For a good example of this, let's compare creating an NPC in Bethesda's creation engine compared to creating an Animesh NPC in Second Life.

 To create an NPC in Skyrim or Fallout 4, you open up the creation kit and you're met with an interface like this:

From this interface you can easily and quickly set up the NPC's skin, bodytype and other physical features. You can assign them to a specific cell in the game, choose the actions they can use, the equipment they're carrying, create dialog trees, their voice type and much more. Once all that is set up, all through the simple interface pictured above, adding the NPC to the world is as simple as click and drag. You've finished setting up an NPC that will wander around, interact with furniture, has all their animations, audio clips, everything.

 This is a tool used by professionals, and serious hobbyists, and yet to do the same thing in Second Life takes substantially more work. To keep things simple, let's focus on just one aspect, creating your NPC's appearance. Now, as of this writing, you are unable to change the appearance of an animesh NPC. Shape support is coming, and apparently soon, but to apply a shape to an NPC you will need to write a script. That's right, no sliders, no preview, just you and a text editor. You need to apply the script. Height, bodyfat, head size, arm length, hand size, each of these is a line of code in the script you'll have to write.

 Imagine for a moment you were making a character for a videogame, the character you're playing, one that gives you a lot of freedom with regards to your character's appearance. You'd get something like one of these interfaces:

Imagine if in any of these games, instead of the appearance editor you were met with this:

No appearance editor. No sliders. No preview so you could see your changes in real time. Just a text window in which you would have to use C++ or some other script language to write a program to determine your character's appearance. How far do you think you'd get?

THAT is what Second Life expects of you, when you want to create an NPC. According to the lead developer on this project, there are no plans to ever provide an interface. They expect it to all be done via script, and they think that's good enough.

 I don't mean to single them out, it's not a decision they should be in a position to make. The problem is that Linden Lab has plenty of programmers, but no designers. At least not when it comes to developing SL and its tool set. That is why it's not just this one feature. Everything in Second Life is this overly complicated. Want to apply an animated texture to the face of an object? You write a script to do that. Want to have a boat sail around in a circle? Get ready to write some code! Want to make a chair people can sit on? You need to write a program that will play the animation, and position the sitting avatar with the correct position and rotation.

 It is because of this complete lack of end user accessibility that many of Second Life's features go entirely ignored. Years ago we got the ability to create paths for objects to move around, as well as behaviour patterns and interactions, but you'll probably never see anyone in SL using these features. If you tried, you'd likely find it easier to boot up Unity and make your own videogame.

 This is Second Life's usability gap, and it has consistently been one of SL's biggest obstacles to success.

 Look, Linden Lab. Ebbe. If on the off chance this blog ever catches your eye, you need to hire some design people. I'm not talking programmers, you have plenty of those and I'm not disparaging their talents, but what you need to compliment those programmers are people who understand what the end users need to actually make use of Second Life's features and tools. People who can communicate those needs to the programmers. People who can write a design doc, then work with the programmers to make it a reality.

 Maybe you already have people like that but don't put them in a position where their expertise makes a difference. Maybe you don't and you need to look elsewhere to bring that kind of experience and talent to the table. Whatever the case, until you recognize your company's blind spots and hire the right people to shine light on SL's real problems, you won't be able to substantially turn around SL's decline, and you won't be able to create a next generation platform that people will actually embrace. You'll just keep tripping over the same problems Linden Lab has been blindly stumbling over for decades.