Thursday, February 28, 2013

Why Second Life Fails

 I love Second Life, I wouldn't write about it so much, or spend so much time playing around in it, if I didn't. Of course, loving something doesn't mean blindly dismissing it's flaws, and Second Life has many, many flaws.

 So, I recently rebuilt Milk & Cream with a focus on making it as efficient as possible. I cut down severely on sculpted prims, used tonnes of mesh content, separated the mall and club area from the more detailed play area so that they wouldn't be sapping each other's framerates, etcetera.

 However, there is one tiny spot in the Milk & Cream play area where framerates drop through the floor.

 Inside an enclosed building furnished almost entirely in mesh, precisely where framerates ought to have been the highest, I found my framerates dropping to their lowest point. Where everywhere else I was achieving 30-40fps pretty consistently, inside this building my framerates dropped to an abysmal 5fps.

Why was that?

I began removing elements from inside the furnished tavern and watched my framerates. As I began to remove mesh furniture my framerate began to climb far more substantially than I'd have expected. I selected all of the items from one particular mesh set and removed them all. My framerates soared to 50fps.

Why was that?!

It wasn't the model work, which was fairly efficient, for the most part. Enough that the land impact cost was satisfactorily low.

I had a thought. I checked the texture sizes on the furniture pieces. Almost every single furnishing and decoration in this set used 1024x1024 textures. And not just a single such texture, no, even where only one texture could have, and should have, been used, the creator had broken the items into multiple textures, each 1024x1024.

 There was a wooden cup with some coins inside and a "tip jar" sign leaning against it. The wood of the cup was a 1024x1024 texture. The sign was a separate such texture. The cup had three tiny metal rings around it, sure enough the creator had textured these with a separate 1024x1024 texture.

 Every single item in the set was like this. The furnishings used in the tavern took up more texture memory alone than the entire rest of the island combined.

I kept the furniture in place and removed the textures, using the default plywood texture instead. Sure enough, my framerates jumped from 5fps to 50.

 This illustrates the most obvious, and yet somehow most overlooked, issue in Second Life. Texture maps eat up resources. Larger textures eat more resources. Most of the lag and framerate issues in Second Life are, in fact, due to use of excessively large textures.

 I contacted the creator and tried to explain the issue.

 They replied that they are a gamer and therefore knowledgeable about how videogames are made. With complete certainty they assured me that it was thelimits of SL's technology that were to blame, that all videogames use texture maps the size of the ones they used AND LARGER. They sympathized with my problem but they simply couldn't bear the thought of sacrificing quality for framerates. They hoped someday that technology would progress enough that everyone could run SL as well as gamers run Crysis 3 and Skyrim.

 That disconnect from reality is why Second Life fails to catch on.

 Many content creators cling to this delusion that all of SL's problems are due to either people using underpowered computers or LL's own failings in crafting the code upon which SL runs. This mistaken, entirely unfounded idea that SL itself is so bleeding edge technology, when it's really not and never has been!

 To be sure, many people do try to run SL on underpowered computers and there is a lot of issues with the code upon which SL runs. However, my computer has an i7 core, 12GB of RAM and a high end video card. I run Skyrim at full settings with the HD texture set add on. My computer is more powerful than the average gamer's.

 Why can I run Skyrim so well?

 Well, one reason is that the artists who created the art assets for Skyrim did not, in fact, use 1024x1024 textures on the 3cm wide metal rings of a cup that textured with five other 1024x1024 texture maps! Let alone larger!

 That simply does not happen!

Now, before you slip into the trap of dismissing all of SL's problems as simply a fact of allowing user created content, I say to you that Linden Lab bears the brunt of the responsibility here. They do absolutely nothing to prevent people from creating content this way, or providing people like you or I the ability to avoid such amateurishly made content.

What can they do? Plenty!

First of all, texture maps should count towards Land Impact costs. There is no reason whatsoever why content using so many obscenely large textures should have such low LI cost. This sort of hit to performance is precisely what LI exists to prevent. That it doesn't even take it into consideration shows just how poorly LL understands their own product.

 Second, textures always cost 10l to upload, regardless of pixel or file size. That's ridiculous. Larger texture files should cost more to upload. Costs should be balanced in such a way where smaller files cost less, however a single large texture costs less than multiple smaller textures, encouraging people to combine textures.

 Third, SL's building tools should be designed with the fact that they're mostly used by amateurs. There should be many helpful tips and tutorials that are entirely absent. When someone is uploading a 1024x1024 texture, they should receive a notice popping up asking them if they understand what that means. If they're importing a model with many such textures, another pop-up should appear pointing out the issues they will run into.

 Hell, this kind of information should be in the text people need to take before they can upload mesh models.

 In addition, LL could seriously enforce truth in advertising. The spot where we list prim counts for items on the marketplace needs to be updated to Land Impact. People are listing 100LI mesh models as costing 1 prim. Some of them are just confused and don't understand what "prim" means as opposed to object. Other people are simply being deliberately dishonest. Combine texture use with LI cost and allow customers to flag content which does not provide an honest LI cost for their product.

 Most of Second Life's problems can be blamed entirely on this disconnect between Linden Lab's development teams and the realities of how Second Life works. Everything from poor framerates and lag, to how expensive land appears to be are all a direct result of this problem.

 LL has struggled for years to address these issues and make SL more relevant. This, right here, illustrates where the change need to happen if they ever want to succeed.

 Rodvik, hire an art director. Make sure your management team listens to them when assigning priorities to developers like Oz. It is not the responsibility of your programmers to understand these things, which is why they need direction from well informed management. Management cannot be well informed unless they have a good art director explaining these things to them.


It is really that simple.

Saturday, February 23, 2013

More Vitruvian Shapes!

1.2 of the free Vitruvian Shapes set is now out and I've added two new shapes.

5'6"/171cm African Woman's shape.

4'11"/150cm Japanese Woman's shape.

This brings the total up to 12 shapes, 6 male and 6 female. I've also added a screenshot showing several full avatars using these shapes, compared to two of the Linden Starters.

The tallest Vitrvian avatar here is my remake of the SL "Action Male" starter at 6'3"/192cm. The original Linden "Action Male" on the left is 7'1". The fantasy style dwarf on the right is 5' even.

Just to reiterate, the Japanese woman shape, which is the second from the right, is 4'11"/150cm. She is 7 and 1/4 heads tall with wholly adult proportions. I kept with realistic, if idealized, proportions here, but I could reduce her head size and increase her leg length if I wanted to give her a 6' tall person's proportions while keeping her at a Japanese woman's height of 5-5'5" tall. I could probably cut several more inches while maintaining adult proportions before I ran into issues.

Just to entirely put to rest this common notion that you can't make good looking adult avatars shorter than 6' tall.

 A lot more is possible with the avatar than people realize, it seems so limited mostly due to the poor/broken interface. It's actually easier to accomplish attractive/realistic proportions in the 5-6' range than at the oversized heights people tend to use, because the limitations of the shape sliders are skewed against the sizes LL themselves encourage people to use.

 The difficult part is getting down to the smaller sizes in the first place. When you start with a 7' tall shape you need to adjust EVERYTHING, essentially creating a new shape from scratch, just to get down to the 5' range. And Linden Lab insists on forcing everyone to start with a 7' shape.

 Once you have a well proportioned 5' shape to start with, it's much easier to customize it within that range. This is why the appearance editor should provide multiple body types, all in different height ranges, for users to start with. That tiny, easily implemented change would make creating a custom shape much easier for users of all skill levels.


Thursday, February 21, 2013

Mesh Content Creators, You're Doing It Wrong!

Mesh is filling SL, which is great! I've recently redone Milk & Cream using as much mesh as possible and already people are telling me how great their framerates are despite the detail and sheer amount of content around the island!

I get an average of 30FPS around the new island with these graphics settings.
Shadows, Ambient occlusion, depth of field, etcetera.

I got 5-16FPS around the old island, which was mostly sculpts.
However, in building this I noticed one common thread in mesh content being sold in SL. Mesh content creators are building at the same sizes as they did with sculpts and prims prior to the introduction of mesh import and using that size as the basis for their advertised Land Impact costs. (When they're not outright lying to their customers by stating the number of mesh objects rather than the prim/LI cost, but that's another rant.)

 "Well, of course they would! Avatars are still 8' tall on average, and the SL default camera is still stuck in the 90's! They have to work around that!"

 Sure, to a point. You have to remember, mesh content gains Land Impact cost the larger you make it. I've literally cut the LI cost of mesh buildings in half by shrinking them down to a realistic size as opposed to the size the creator sold them at.

I was able to cut the LI cost of most of the mesh content down anywhere from 1/3 to 1/2!
This means more content around the island, which is still occupying only 1/4th of a sim!

 Lower Land  Impact costs are a boon to content creators because customers are often looking for the most bang for their buck in terms of detail versus LI cost. Higher LI means people can't fit as much in their land, and land is expensive!

 Before people point out many SL users can't even resize a prim I'm going to agree and counter that it is simplicity itself for a content creator to include both an "efficiently sized" version, the LI cost of which is what they advertise, and a scaled up version for more typical SL users. This takes, literally, seconds to do and costs the creator nothing.

 I'd add that content creators should make it clear in their listings that all LI costs are of the efficiently scaled version, and that a larger version is included with a higher LI cost. Most mesh sellers already note how SL changes LI costs based on size so this is a minor addition to what they're doing already.

 Ideally, Linden Lab themselves should be pushing more efficiently made content by improving the starter avatars, default camera settings and Linden maintained environments such as the infohubs, but since LL seems intent on driving customers away it would benefit content creators to encourage the trend towards efficient scale because it allows them to do so much more, and allows for an SL that is more appealing to new users, who in turn become new customers of the content creators.

Don't you wish all of SL was this detailed? It could be!
 In providing both the efficiently scaled version and the large version of their mesh content (as well as an explanation of why they are doing this and instructions on how to improve the SL camera), content creators ensure that their customers have the choice to use what better suits their needs, and and customers get exposed to how they can get more for their tier just by scaling down.

"I want less land and fewer prims, for the same amount of money!"
 - Nobody, Ever

Most people are simply unaware of the issue. It's in every content creator's best interest to make them aware of how size does matter in affecting their SL experience.

Sunday, February 10, 2013

Linden Lab Strikes Back Follow-Up

So, a week ago in my previous post I talked about LL's practices in dealing with reported SL bugs, and how they tended to ignore or dismiss many very valid complaints.

With this particular issue, the person who reported it was urged by Oz Linden to create a patch and submit it to the Jira, after which Oz turned around and closed the Jira telling the person not to re-open it or they would be banned from the Jira.

 Well, the reporter did not open it again. To the contrary, they decided to back out of SL development entirely.

However, another concerned resident did re-open the issue, probably because it is an issue worth being fixed. Or, perhaps because residents are simply increasingly tired of and agitated by LL closing bug reports and leaving the bugs unfixed with no explanation. In either case, a third party reopened the Jira with a plea that LL deal with the problem.

 Less than half an hour later, Alexa Linden closed the issue "Won't Finish".

 That evening, the reporter found they had been slapped with a two day ban.

 Yes, you read that right.

If you have ever submitted an issue to the Jira, or do so in the future, Linden Lab may ban you for it regardless of any actions you do or do not take after the fact.

Sunday, February 3, 2013

Linden Lab Strikes Again

 Apparently the creator of my favourite SL viewer, the one I take all my best looking SL screenshots with, is bowing out. Niran will be releasing one more viewer once materials are ready and then backing away from SL viewer development for the foreseeable future.

 Why?

 Well, the straw that broke the camel's back would be Jira issue Open-162, where Niran pointed out that the attachment coordinates for the SL avatar asymmetrical.

 What's this mean?

 Well, it means that when you wear identical attachments to both of your upper arms (or shoulders, or upper legs, or lower legs...) and give them the mirroring attachment positions, they should align symmetrically....but they don't. They're just noticeably off.

Screenshot from Open-162
 Now, this is no big deal to the average user, but it is a significant workflow disruption for content creators, giving us extra math to deal with, and making it difficult to automate things like mirroring newly created attachments.

 Niran brought this up to Oz Linden, who told him to submit a patch to fix it via the Jira. So Niran put in the work to create just such a patch and submit it, then Linden Lab immediately closed it. The first Linden to close it at least provided a reason, although the reason they gave made no sense as they were mistaking the actual problem with the symmetry of the avatar mesh.

 Seeing the misunderstanding, Niran opened it again, and several people provided comments trying to explain to the Linden how they misunderstood the issue.

Linden Lab concerned about realistic bodies?
Also, what does this have to do with attachment points?
 A few people did voice concerns that fixing this would break content, but these fears are largely unfounded. Yes, existing attachments would be shifted. Most users would never notice. Those who did notice would be able to adjust their attachments back into place in seconds, with very little effort.

 Niran even posted some scripts for automating such adjustments, but I'd say that's overkill.

  Even so, a second Linden closed the issue, with no explanation. Niran opened it again and so Oz, who originally told Niran to open the Jira and put in all this work, closed it with a message to Niran telling him he would lose Jira privileges if he opened it again.

 Wow.

 Hey, Rodvik, remember again how you asked why SL had so much trouble retaining users?

This should be a pretty strong clue for you. It's not specifically due to this single isolated issue of asymmetrical attachments, this is just a symptom of the overarching problem here. A problem that has repeated itself across the Jira time and time again.

 Our inability to make avatar arms long enough was reported, patches provided, only for the Lindens to close them with either no explanation, or with an explanation which did nothing but reveal that the person making the decision was not qualified to do so.

 How about our inability to increase female torso muscle sliders past 50? That was reported in a Jira the moment the bug crept into the viewer, several years ago. It was also handwaved away despite the fact that community devs took the time to report the issue and provide fixes.

 In fact, pretty much every single aspect of SL content creation is broken in some way, often multiple ways, and when the problems are reported, the response is almost always identical to this case here.

 All of this contributes, greatly, to how ugly SL is compared to contemporary expectations of 3D game-like environments. Contributes to how kludgy and difficult content creation within SL is. All of these problems compound on one another to negatively affect the performance, visual quality and ease of use new users experience when they log into SL for that all important first impression.

 And that right there is a large part (not the only part, but a large one) of why SL has so much difficulty retaining users.

Nothing works, it looks awful, and it runs like crap. And LL refuses to fix the underlying causes for that.