Tuesday, September 13, 2016

Virtual Space/Infinite Space

Virtual Space/Infinite Space
How to never run out of prims or space on any sized parcel or sim.

Over the years I’ve tried to help shed light on tips and techniques to allow anyone to get the most value out of their SL land, from shrinking oversized builds and altering your viewer camera settings to make your parcel larger, to squeezing out the most from your prim allotments by optimizing prim and mesh builds. Still, there’s one aspect of virtual land that is long overdue for a discussion.

That is the nature of land in SL itself.

Most people see their virtual land in Second Life as finite. You have your prim limit and your land area and that’s it. If you want a bigger house, a bigger RP area, more content to play with then obviously you need more land, right? Everyone knows this, it’s the typical understanding of how SL works.

It's also wrong.

Land in Second Life is virtual. Bolded and underscored. Everything about it, from the terrain to the content you fill it up with, is nothing more than a collection of 1’s and 0’s. What’s more, Second Life gives users an infinite amount of storage space for those 1’s and 0’s. You have an infinite inventory and can store as much content as you like in rezzed, in-world containers. What’s more, you can script those containers into what we call “rezzers” or “Holodecks”, after the famous virtual reality room from Star Trek.

Chances are, you’ve used one of these already. Ever bought a house or other large SL object which came in a scripted package? One that would allow you to rez and position the item just by clicking on and moving the package around? Or a skybox that lets you choose from a selection of pre-made scenes it can rez for you? These work in the exact same way and you can use the same sort of scripts to make any size land into an infinite space for all the content you could ever want.

And this works for any sized land, from tiny 512sq.m. parcel homes to full sim RP builds. The size of the land you own only limits the amount of content which can be rezzed at any one time.

Let me illustrate using my own home as an example. I have a 64x64 square parcel of mainland.

This is considered a mid-sized piece of land. It supports about 1000 prims. Most of the neighboring 64x64 parcels have a single house with maybe a quarter of the space left over for a tiny yard.Most of these parcels devote all of their prims to said house and the furniture inside. Possibly a single skybox for the illusion of privacy.

 We can do better than that.

Paying for Land

Now, before I continue, let’s look at the cost involved here. If you decide to upgrade your tier to purchase a mainland parcel this size, it’s going to cost you $25 a month on top of your Premium Membership. That’s $372 a year, a little more than a sim owner pays for one month. However, as I pointed out in a previous article, there’s cheaper ways to buy land. You can check out that article by clicking this link, but here’s a quick recap:

  • If you have multiple accounts, upgrade them to Premium with an annual membership. This will cost you $72 per account up front, but if you save the stipend and cash it out to put towards your annual payment, each account will only cost you $14/year afterwards.
  • If you have accounts made before LL lowered the stipend in 2006, then the tier will more than cover the annual payments.
  • Lump their 512sq.m. tier into a landowner group, giving you a 10% boost, and use that to purchase the land.

To buy a 4096sq.m. parce like mine you’d have to upgrade 7 accounts to Premium. That’s a lot of money up front but also look at it this way:

  • If you pay tier annually that’s costing you $372 up front and $372 every year after if you upgrade your tier and buy the land directly.
  • If you upgrade 7 accounts that’s $504 the first year then only $98 a year every year after.

On top of that, you don’t NEED to upgrade all those accounts at once. If you can afford the monthly tier costs, but not the up-front expense, upgrade the accounts with a monthly payment, then upgrade each to a yearly as you can afford to.

I’m Not Very Neighborly

I didn’t buy land in SL to experience mainland neighbors, so I ignore the ground level entirely and built my house as a skybox, complete with self-contained yard. Seen here:

Of course, no one wanders around SL with their camera pulled out that far and when you live on a 64x64 parcel there’s no reason to have your draw distance any higher than 88m while home. To anyone visiting my house, the yard looks like this:

As you can see, 64x64m is actually pretty spacious if you build efficiently. What’s more, the yard only uses about 300 prims and acts as a hub area for the rest of the build. Remember, we’re taking advantage of the infinite space virtual land affords. This yard, and the 200 prim barn interior, are the closest my home has to “permanent” structures.

Pick a Door

Spread around the yard are doors. Most of these doors, when clicked, will play a sound effect and give you a dialog message saying “This door appears to be locked but maybe there's a way to unlock it?” And there is!

Underneath the bridge people arrive at there is a terminal labled “Door Lock Terminal”.

Click the terminal and you get a menu asking “Unlock which door?” and a selection of doors to open. Choosing one will “lock” the currently “unlocked” area and “unlock” the newly selected area. If someone is in the currently “unlocked” area, you will instead get a message saying “The lock controls are overridden from the other side.” and nothing will change.

My liberal use of quotation marks is because this terminal is really the rezzer controls for the parcel. When you “unlock” a room, you’re derezzing the currently selected room and rezzing another. In addition, the rezzer replaces the locked door with a door that acts as a teleporter. The teleporters use the (as of this writing) recently added Experience Features so you just click the door and walk into it to teleport to the room interior.

Since I have nearly 500 prims free, and all of the rezzable areas are connected via teleporters, each rezzed area can be anywhere from a small room using only about 200 prims:

Or a 64x64m outdoor area bigger than the yard:

And I can add as many of these additional areas as I want! There’s no limit. Already my 64x64m parcel has more content, more places to go, than any homestead on the grid. Eventually, as long as I keep adding new areas, it will be larger than many RP sims.

Affordable RP Sims

That’s right, if you ever wanted your own RP sim but can’t afford, or justify the cost of, a sim, this is a great alternative. Sure, people can’t spread out to the four corners of the world, but unless you’re building a sim like Doomed Ship, where most of the experience is in exploring a twisting maze of corridors and secret passages, there’s RP benefits to keeping people restricted to a few locations at a time.

Not to mention, RP sims are rarely self sustaining. That’s why they’re always shutting down. Rather than spending hundreds of dollars a month on a brand new RP sim, the best bet has always been to start with a small, affordable RP area and expand only as your growing player base allows for it.

On top of that, as long as you expand in a modular fashion, an RP area that finds itself facing a dropoff in support can easily scale back during tighter times  without a whole lot of work, or permanently sacrificing content. That kind of flexibility means a greater ability to whether the ups and downs every RP area in SL faces.

Keep it Simple!

You don’t even have to get as fancy as I have. Have a 512sq.m. parcel for your house and want to take advantage of this to have infinite rooms? Keep the home furnishings to a minimum and put a door inside to act as your teleporter. Make the rezzer a lightswitch next to the door and use it to select the room the door will take you to.

Or, even simpler, a holodeck skybox where you just change the scene around you, without the need for a HUD. Setting up and packing your own scenes is super simple, and you can get free holodeck scripts off the marketplace to set up your own right now!

Thinking Big

The larger your land, the more you can do with a system like this. Have a full sim and you want to make the most of it for an RP area? Then taking advantage of the virtual nature of SL land will let you turn a single sim into an entire world of environments. Where my previous examples each used a single rezzer, a full sim build could use multiple rezzers spread across the sim.

You could have entire sim-sized environments accessible via rezzers, as well as multiple, smaller rezzers for individual areas. And since each of these rezzers can have an infinite number of rezzable environments, your RP sim can keep growing as long as you keep coming up with ideas.

Using Doomed Ship as an example again, using a rezzer the sim could be set up so that all of the core decks act as the permanent hub area, with rezzers built into various controls and locking mechanisms on each deck to open up further areas for exploration, separate from the main, twisty maze of rooms and corridors that make the sim so much fun to explore.

No-Mod/No-Copy Costs You More Than You Know

There is a catch. Rezzers only work with copy/mod content. So any no-mod/no-copy content you own will either have to be retired or limited to the hub areas. The best policy, of course, is to avoid no-copy/no-mod content altogether and encourage your favourite content creators to abandon bad, anti-consumer business practices which prevent you from getting the full value out of your virtual land.

Not all content creators sell no-mod/no-copy content to intentionally screw you over like this, most are simply unaware. Luckily, there are solutions for content creators who've been selling no-mod/no-copy content which could allow customers to update their content with more sensible perms, such as using this handy Item Exchanger/Updater from DesolateStudios.


SL has it’s share of problems, but the cost of land has always been overstated. Every landowner in SL has, at one time or another, wished for more space or more prims and I hope this article shows how you can achieve that easily, without breaking the bank.

Friday, February 6, 2015

Draw Weight

Draw Weight
A Tale of Two Avatars

 Remember Avatar Draw Weight? That feature LL added many years ago (I think it was around 2008-2009 or so) which put a number on how much work it was for your computer to render each avatar onscreen. With green numbers being in the "acceptable" range, and red numbers being, well, pretty much everyone if you ever turned it on.

 It seems as if no one can get their avatars "into the green". As recently as the last year or so I've read people complaining over on the SL forums that the colour range denoting avatar resource use was unrealistic, that we'd all have to wander around naked to get ourselves down into the green, or even the orange.

 I can understand the frustration. Here, LL provided a tool that was supposed to help people manage their avatar's resource use, but the goals it sets seem far out of reach without drastically reducing the quality of our avatars, and to most people it seemed unreasonable.

 They blamed the tool, but the truth is, the rendering levels displayed by Draw Weight are not unreasonable at all, it's just that content creators are making no effort to produce reasonably optimized content for avatars.

A picture is worth a thousand words.

Here is my avatar. On the left is my avatar how it appeared about two weeks ago. The right is my avatar at the time of this writing. The numbers are, of course, the draw weight of my avatar. And no, that is not a typo. Although my more current avatar appears to have even more detail, it is actually about 1/4th the draw weight it was a week earlier.

 How did I achieve this drastic reduction in rendering weight?

 Pretty easily, actually.
  •  Many attachments, including new mesh attachments, tend to have a prim hidden inside of them which serves no purpose other than to clog VRAM up with a huge texture nobody sees. I ripped out every single one of those "root prims".
  •   My mesh body has several clothing/tattoo layers. I don't use those, or any of the scripted functions of the body. So I ripped out every unused layer, plus the scripts.
  • I replaced every sculpted prim I could with a mesh attachment.
  • I removed every single attachment which was covered up by other attachments. My eyes, for example, have sphere prims over them with a texture adding a glistening effect. It looks great, but with my mask no one can see them. So off they went!
  • I discovered my mask had an ungodly amount of polygons, many of which aren't even visible because they're buried inside other pieces of the mask. So I replaced it with a low-poly alternative. The new mask looks every bit as detailed, just different.
  • Textures count towards your draw weight, too. I reduced every texture I could down to a quarter or less of its original size. Can you tell which textures I did that to? I doubt it. Unless you zoom in far closer than anyone ever would, you cannot see the difference between a 1024x1024 texture and a 512x512 texture on an avatar attachment. In many cases, you can even go down to 256 or 128 without a noticeable loss in quality.
Here's the SL Wiki page which explains everything SL factors into calculating Draw Weight.

 Now, I did this all over a couple of weeks, but I didn't actually spend all that much time on it. A few minutes here. A few minutes there. I don't get on SL nearly as much as I used to, which is why it was spread out over all that time.

Still not "In the Green".

 Now, if you've been paying attention, you might say "this is a big drop in draw weight, yes, but you're still not in the green!" And you'd be right!

 The problem is, no matter how much I optimize through modding, unless I create all my own content from scratch, I'm at the mercy of content creators.  I want my avatar to look a certain way and I'm only willing to make so many compromises for efficiency.

 Here's my avatar in wireframe.
 Notice how even in wireframe, large chunks of my avatar appear to be solid, or nearly solid? Yeah. That's obscenely wasteful. You could cut the polygon count of this avatar down to a quarter of what you see here and not be able to tell the difference when viewing it normally. Hell, adding simple material maps can make the attachments look even more detailed than they appear out of the box, even with the reduction in polygons.

 But without changing the style I want for my avatar, I',m at the mercy of content creators. Take the hair for example. It's got way more polygons and textures than it needs, but I have yet to find a hair style that matches the idea in my head as close as this does. I have a couple alternate hair styles which drop me down to around 38,000-39,000, but they're completely different than the look I'm going for.

 Ever notice how it's easy to find mesh furniture that is only 1-5 Land Impact points these days? Even when mesh first came out you were usually looking at 10-20LI This is because we are all beholden to Land Impact. If you want to get the most out of your land, you avoid high LI content and buy the content that looks the best while managing to keep a low LI cost. Content creators realize this, and to get you to spend your hard earned L$ in their shops, they try to make their content cost as few Land Impact points as possible.

 Avatars have no such limits. You can wear 38 attachments, each of which can be up to the equivalent of 256 LI. That means you can wear the equivalent of 9,728 LI on your avatar. That is far more than half a sim. TWO avatars can put more strain on your computer than a fully detailed sim can with your draw distance cranked to the maximum.

 If avatars had a similarly limited pool of points, you can bet your low-poly behind that every single content creator would be tripping over themselves to try and outdo everyone else in delivering high detail at a low rendering cost and it would be EASY for anyone to look as good, or better, than they do now, while keeping their avatar firmly "in the green" with regards to draw weight.

For an example of how much a single attachment can add to your draw weight, I swapped my hair. I went from 50,328 down to 40,625. Despite the fact that this new hair is arguably more detailed. That's before optimizing the hair's textures, too. I was even able to add that crown/tiara and still come in at only 41,160.

 I also replaced my shield, got rid of a couple of the smaller details people might not notice if removed and replaced a couple more sculpts with mesh alternatives, bringing my total draw weight from 207,884 down to 35,827.

 That's right! Keeping the same amount of detail and (aside from the hair) the same basic look, I was able to educe my draw weight to less than a quarter of what it was when I started.

 I'm still leaning towards the dreadlocks, but this illustrates that I can still lose a lot of draw weight if necessary while still being happy with my avatar's appearance. Reasonable limits are not a bad thing. Done well, limits can bolster creativity and imagination, rather than stifle it as some people fear.

 So what good does it do?

 What good is it, optimizing my avatar like this, when I'm just going to be surrounded by avatars so bloated and overtextured that my videocard is going to be overwhelmed anyways?

 That's a fair point. When I'm out and about in the world, it doesn't make a huge difference. Maybe a few FPS here and there. Afterall, my avatar is usually the largest object on my screen and always displayed at the highest LOD level unless I go camming around the sim, so there's at least a little gain. The biggest benefit is that my avatar always loads lightning fast now.

 The real difference is when I go to my own builds. Hanging out in one of my skyboxes or sims with a few friends, I have seen a framerate improvement of up to 10FPS between now and a week ago. That's not too shabby. For maybe an hour of work spread out over a week or two, I have gained the equivalent of what I might see spending $250 on a slightly better videocard.

 Food for thought.

Tuesday, April 1, 2014

The Cost of Land vs. The Perception of Value

The Cost of Land vs. The Perception of Value
Land in SL is Cheap!

 Since I first joined SL in 2005, right up to today, one of the most common complaints I've heard from SL users is that land is too expensive in Second Life. What's more, this is considered to be one of the biggest obstacles to SL's mainstream success.

 I disagree.

 Now, don't get me wrong, if LL dropped the price of land then I'm sure they'd see a huge uptick in landowners. My position is simply that land is not as expensive as people realize because pretty much nobody is enjoying the full value of the land they're paying for and I see this as a much bigger issue than the actual cost of land.

 Let me show you something.

This is a small skybox I threw together recently. To give you an idea of the size of this skybox, my 6' tall avatar is present in both screenshots, can you find me?

 How much land impact do you think this skybox uses? How much land area? Most importantly, how much do you think this skybox costs me in tier?

At the time these screenshots were taken, I was using a grand total of 481 land impact points. This skybx could fit on a parcel only slightly larger than 2048sq.m. In other words, you could own a piece of SL like this for a mere $3.71 a month.

"Wait!", you tell me, "A 2048sq.m. parcel costs $15 a month in tier!"

 Here's the thing, if you set up a premium account you get 512sq.m. of tier with that. A premium account costs $72 a year, but if you cash out the L$300 a week stipend you're only paying $11.13 a year for the account. If you set up four premium accounts, that amounts to $44.52 a year (which is only $3.71 a month)  for all four accounts and 2048sq.m. of tier between them.

 In addition to that, if you lump their combined tier into a group you get an extra 10% bonus tier, so you're actually getting 2253sq.m. of tier for $3.71 a month.

 Of course, this still leaves the issue of how did I cram so much into only 2048sq.m. and less than 500 prims?

 That just boils down to building to scale and being smart about what you want to rez on your land.

 A 30LI Greco-Roman statue just isn't worth the prims when you can get statues just as good looking for 1-10LI. The same goes for chairs, beds, and everything else.

 All my usual points about building to scale stand, especially in the age of mesh. When you have a mesh house that is double scale, when you shrink it down to 1=1 size you also reduce its land impact cost down to 1/2 or even 1/4th of its original impact cost. Almost all mesh content can have its LI cost reduced in this way, from chairs and statues to castles and space stations.

 This is what I see as the big problem for land in SL. Very, very few people realize they can get this kind of value for their money, or even if they realize it's possible they often wouldn't know how to do it themselves. How many people would rush to own land in SL if they realized they could get all this for a few dollars a month and it was easy for them to do so?

 From LL's perspective, 2048sq.m. costs them just as much to host no matter what you rez on it.So LL gains nothing from this situation. Worse yet, those who are unwilling to spend more than $5-10 a month on SL land yet feel what you get for that is not enough because of this deflated sense of value ultimately opt not to purchase land at all, so LL has lost all of those potential landowners. People willing to spend $5 a month on land vastly outnumber those willing to spend $300. If LL could show people just how much they could get for that, they would see a huge increase in landowners.

 Of course, LL being LL, I'm not going to hold my breath on that. However, you, dear reader, now know how to get crazy amounts of value for your monthly tier.

Sunday, June 2, 2013

Building a Better Second Life

Building a Better Second Life
Tips for squeezing both better performance and more detail
out of SL through efficiently made content.

 We all have our complaints about SL. The lag. The lack of visual fidelity. Poor framerates. The unreliable scripts. The lag. The expensive land. The lag!

 I'm sorry to say there is no "silver bullet" to solve these problems. There is no single problem LL can fix that will magic the lag away. That's reality, and it applies to the virtual world no matter how hard you click the heels of your no-mod ruby red slippers, with 600 resize/texture change/colour change scripts in each, together.

 However, there are little things you can do to alleviate these issues somewhat. They add up, so the more people who follow these tips, the better SL looks and runs for everyone.

Use fewer (and smaller) texture maps!

 This is a big one that few seem to consider.

 Textures eat up bandwidth to download, processing power for the sim to retrieve them from the asset server and deliver them to your viewer, and then your videocard needs to store them in memory and render them. Too many large textures are one of the biggest reasons SL gets such poor framerates and why everything takes so long to rez.

Here's some numbers for you, to help illustrate why slapping 1024x1024 textures on everything is bad;

64x64 : 16kb
128x128: 65kb
256x256: 262kb
512x512: 1MB!
1204x1024: 4MB!

 Most people only have 512MB of VRAM and Second Life refuses to use more than that for textures regardless.

 There is a really bad trend with mesh content. People using 1024x1024 textures on every surface, large and small. Often only utilizing small sections of these textures, the rest being unused data that you never see when looking at the object in-world. This is usually the result of applying the same texture to every surface in the 3D modelling program, using offsets for smaller surfaces, then baking shadows and exporting the full 1024x1024 textures even though the model only uses a small visible area.

 What you wind up with is something like this;
 A tiny bit of texture detail, huge area of unused black space. Additional texture detail is then added via multiple similar textures, usually at 1024x1024 resolution

 I've seen this on everything from houses to drinking cups. I bought a bar counter, basically a wooden box, which turned out to have eight unique 1024x1024 textures. In the same bar set was a tip jar, a small drinking cup with a sign reading "Tips" leaning against it. It used three 1024x1024 textures, a 1024x512 texture and a 512x512 texture. Everything in the set was like that. When I rezzed the set in an otherwise empty sim, my framerate dropped from 75fps to 5fps and remained that way until I removed all of the textures. With the geometry alone, my framerate shot straight back up to 75+.

 From another store I purchased a simple, one room house. Not counting the two windows and the single door, the house uses eighteen 1024x1024 textures. Realistically, this house could have been textured with no more than three 512x512 textures and looked more or less identical.

 Outside of the "Daikatana arrow" you never see texturing that inefficient in a videogame, and that is a part of why much prettier videgames run much more smoothly than SL. The performance impact of so many huge textures cannot be understated. This is why so many people experience poor performance in mesh-heavy environments. Mesh is great, low-poly builds allow for better performance than we could get from sculpts and prims, but overloading builds with too many huge textures extinguishes any performance gain.

 So how should texturing be done? More like this;

 Notice how the artist has combined as many elements as possible into a single texture, leaving very little unused black space. This reduces the amount of texture memory your creation eats up while also allowing you to maintain higher resolutions for your textures. The texture detail in the upper right corner is no less a resolution, but now we're using a single texture map instead of, potentially, upwards of six.

 Combine textures, use ALL the space in a texture map and wrap it around the visible surfaces of your mesh. There is no reason not to do this!

 And don't think this only applies to mesh! Those of you who work in prims and sculpts should also consider using fewer, smaller textures and wrapping textures around surfaces using texture offsets.

 A good rule of thumb, if a surface is smaller than 10x10m, use a 512x512 texture or smaller!   I'll get more into avatar textures when I get to draw weight but avatar attachments almost never need textures larger than 512x512 and rarely need textures even that large unless you're using a single texture on a mesh that covers your entire torso or lower body.

I've cut all the 1024x1024 textures and all but one or two of the
512x512 textures from my own avatar's attachments.
 Do you lose detail? Sure, but it's barely noticeable. The increased performance you gain, on the other hand, is substantial.

I've moved things around a bit and changes the trees to mesh since this screenshot.

 At my own fantasy build in Aleph (warning, it is an adult sim so you may encounter NSFW content there) I have used a variety of tricks to remove over sixty 1024x1024's worth of textures and saw my framerates jump from single digits to over 30fps in the worst areas. With shadows on. I'm seeing around 50-60fps in the best areas of the island, up from about 20 before I went gung-ho on texture use.

Use fewer, more efficient scripts!

 Full disclosure, I am not a scripter. I go cross-eyed when trying to cobble scripts together from code on the LSL wiki. If I'm wrong about anything, it will be in this section, but this is my understanding from years of managing sims and working extensively with very skilled scripters in SL. I've run these same recommendations past some of SL's top scripters and they agree with my assessment.

 Every script is a virtual machine which uses memory and processor time.

 Every sim in SL has a set amount of memory set aside for scripts. Now, relatively recently, LL did some things which give sims more memory for scripts, but it is still not an infinite amount!

 While there is memory available, scripts compete with each other for resources so a lot of scripts will, at first, only result in scripts themselves running slower. When the scripts running in that sim exceeds the amount of memory the sim has available, the server has to start using the swap file and that slows the sim down drastically.

 There are tricks to manage the amount of memory each script uses, but generally speaking the more scripts you use, the more memory you're using. This is why single script resizers are encouraged over putting a resize script in every prim of an object.

 Memory isn't the only thing. There's also processor time to consider. This is how much of the CPU resources scripts are using. Believe it or not, sims in SL do not have infinite processing power. So the more of a server's CPU time scripts are eating up, the less CPU there is for other scripts in the sim. This can make scripts run slowly, or not at all.

 So, if you can combine scripts, that's generally a good idea. If you have the option of using multiple scripts or one single script to do the exact same thing, use one single script even if it's more work to write.
You'd be amazed at how many features you can cram into a single avatar without exceeding 500k of script memory.

 Granted, we don't all script. I know my own avatar uses WAY more script memory and time than it should, but just being conscious of your script use, whether for your avatar or for things you build in the environment, can help you see ways to reduce your scripting footprint.

  A good idea is to check new purchases for scripts you don't need. I'm primarily talking items that may have scripted features for resizing, retexturing, etcetera, not scripted features you would use in regular, every day use of the item.

 Make a copy to wear around SL, and a copy to keep in your inventory in case you need the scripts later. Delete all of the unneeded scripts inside the attachment. Some TPVs make this easier. I believe Firestorm has a "delete all scripts in selection" feature which makes this as easy as a single click. Now use the script-free version as the copy you wear and you'll be sparing yourself, and everyone around you, potential lag.

Build small!

 "Oh, Penny! You're such a broken record! Why do you always go on about this?"

Because it works!

 The call for "realistic scale" isn't some irrational desire for everything to be "realistic", this is about design and it is about resource management.

 Constantly people complain about the cost of land! "Land is too expensive! LL should reduce tier!" Maybe so, but STOP BUILDING SO HUGE AND YOU CAN DO MORE WITH THE LAND YOU HAVE NOW!

 You cannot resize land. You want more? You gotta pay!

 If you know that much then it is crazy to blow things up to the sizes most people build at in SL. Larger objects eat up more space! That's not rocket science, that's 7th grade geometry. You can fit four times as many 10x10m squares as you can 20x20m in a given area.

 Most people build to around double scale (give or take), far exceeding the scale of most avatars contrary to the belief that everything is consistently scaled to the "average" avatar size). This is partially due to the default SL camera, partially due to people just eyeballing things and not even thinking about scale. This means your average SL sim holds only 1/4th a sim's worth of content. Or, to put it another way, if you build to scale you can fit about four times more content into a given space.

 "That's not true, Penny! What about prims? When you shrink stuff it uses the same amount of prims! You'll just wind up with an empty looking sim!"

 If you ONLY use prim content made after the release of mesh, then you kinda, almost, have a point. However, that describes almost nobody.

 Before mesh arrived along with the prim size increase to 64, prims were restricted to 10m to a side. Because of that, legacy content made before mesh is often bloated with redundant prims, far more than this content would have needed were it made to scale. Sometimes as much as four times as many prims.

 Now that we have mesh this isn't an issue, provided you're building your own content or have the skills to cull redundant prims from old prefabs. However, mesh itself increases in land impact cost the larger it is.
When working with mesh, whether it's furniture or full buildings, you can substantially reduce the LI cost simply by shrinking it down closer to 1=1 scale. This makes it easy for anyone, regardless of skill level, to reduce their LI footprint simply by reducing the size of their mesh objects.

 "Enough to make up for the 3/4 land area you free up in the process?"

  You tell me.

 Again, here is an SLURL to my M&C fantasy themed build in Second Life.

 I'll post some screenshots below, but I encourage you to go visit the island in person. It's an adult sim, so there's likely to be NSFW content and avatars around, but still, it's probably the best example of building a large, detailed environment while increasing framerates and reducing Land Impact via scale that you're likely to see in Second Life.

 Wander around. Don't just look with your camera. Building interiors are all done as skyboxes, there's tonnes of secret areas. A lot you can't see just by using your camera to snoop from afar. You are able to walk from the arrival point all the way up to the mountain at the far end of the sim.

 Try to do that. Walk all the way up there from the starting point, see the sim firsthand, then open the Land Information window and see how many prims are still available.

 That's right. That entire build is (at the time of this writing) using less than 1/3 of the sim's "prims". I could copy the whole thing twice over and still have LI free to add a bit more. I didn't have to mod anything, aside from resizing, to reduce it's LI, either. Thanks to mesh, you can reap all the LI savings of scaling down just by reducing the size of mesh content.

 I freed up so much LI this way that if I increased everything in the sim to it's original size, I'd not only fill up the sim's LI pool, but I'd exceed it and be forced to remove some of the content I currently have out.

 On top of that, at it's current scale, the island only uses about 2/3 of the sim's area. The entire 1/3 of the sim on the north side is empty. Meaning I could put more islands there on the same level as the rest of the floating island structure.

  The issue a lot of people worry about in building to a more reasonable scale is that many of SL's avatars are huge and may not be able to squeeze into such small environments. This worry is exaggerated somewhat, again people tend to build to a much larger scale than even SL's avatars tend to be. I've not had one single person complain to me that the island has been too small for them.

   You can design buildings so that larger avatars can squeeze through smaller doors by making doorframes phantom, making doors into teleporters, etcetera.

  The only real issue is the SL camera. The default camera placement is just plain bad. It was set up in 2002 or earlier, and LL has never updated it despite the strides the videogame industry has made in third person camera placement.

  Thankfully, it's a problem that is easily solved. Here are simple instructions for getting a much improved camera placement, with explanations which make it easy for you to tweak the camera to your personal liking.

  Also, third party viewers have begun adopting better camera placement, starting with the popular Nirans Viewer, known for it's visual improvements to the SL experience.

 If you're concerned about having traffic rates affected, the example I give here has very respectable traffic, then there are also Doomed Ship and 1920's Berlin. Both popular RP sims which have featured being built to scale for years.

 Now, if you're selling stuff there is an understandable concern about people being able to use your content right out of the box. If you're worried, I'd recommend including large and small copies of your items and letting the customer decide which to use. Give them information to let them make an informed decision. Such as the LI savings.

  The up side is, since the LI of mesh is reduced at smaller scales you can use that as a selling point.

 Selling smaller attachments is less of a problem. You should always, always, design attachments around the smallest possible size simply to make it usable by the largest potential market. It is easy, especially with resize scripts, to make an attachment larger, but it can be incredibly difficult to squeeze an attachment smaller when it was built around a larger size initially. Rigged mesh is a different issue, but rigged mesh is less affected by scale and more affected by body proportions due to its less than perfect implementation.

Draw Weight.

 Now, I just want to wrap this up with a few words on Draw Weight.

 Draw weight is by no means a perfect metric for how much of a burden your avatar is on anyone's hardware, but generally speaking if you can get your draw weight down you increase the framerates for yourself and those around you.

  The average SL user is often at the mercy of content creators as far as their ability to do so, and a lot of content creators do not provide much in the way of options.

 I'm going to pick on a couple of examples here but these are items I use myself, I think the creators did great work, I'm just trying to draw attention to efficiency issues very, very few people in SL ever even think to consider.

I am the prettiest princess!
 There's me, out on adventures. I love this hair, I purchased it at Wasabi Pills, great shop. I've bought a tonne of stuff there. I do have a couple issues with it, though.

  See the dark hair band? That originally had a 1024x1024 texture. That's pretty ridiculous. It's just a shaded cloth texture. I replaced it with a 64x64 texture that looks more or less the same unless you zoom in so close it fills your screen.

  Credit where due, the base hair texture is only 256x256, which is reasonable. Most people use 512x512 or 1024x1024 which is horrendously excessive. The alpha layer on this hair, however, is 512x512 and that's not really necessary at all.

 Then there's one more texture! Inside my head is a box with a 512x512 Wasabi Pills store logo on it.
Neither the prim nor the texture are necessary, both are entirely hidden yet place just as much extra rendering burden on the videocards of everyone who can see me as if it were a giant box on my head.
 People love those store logo root prims. I'm guilty of it, too. back when I was making avatar accessories before I got all efficiency conscious. They're unnecessary and just add to the pile of things SL is trying to make your hardware render.

  One prim and one 512x512 texture might seem small, but my hair doesn't exist in a vacuum. Every avatar you see has probably at least one attachment like that. If you're in a sim with thirty avatars, that's thirty 512x512 textures dumped into your video RAM and thirty extra cubes your videocard is processing.

  Chances are, those avatars have multiple attachments like that. A pair of sunglasses, each shoe! Maybe a hat, or even the root prim of their shirt or any prim/mesh body parts they're wearing. Suddenly, in a sim of thirty avatars you're already exceeding your texture memory just on textures you never even see! That's before getting into the textures they're wearing that you can see! Let alone the sim itself!
Content creators can help by ditching this bad habit!

  Alright, now look lower! Not that far! See the metal chain on the leather weapon harness I'm wearing? (Great looking work, by the way, I got it at Dark Prophet Designs.)

  The chain is a set of sculpts. Each link is a separate prim. Not great, considering you could do multiple links in a single sculpt, but what really shocked me was examining it to find that each link in the chain uses a separate, yet nearly identical 256x256 texture for each half of the chain (mirrored on the other half). That's a total of thirteen unique 256x256 textures, which look identical. Even worse, each of those thirteen prims also uses a separate sculpt map.

  Now, I took the time to remake that chain using just one of the prims, and replaced the texture with a 64x64 texture that looks identical unless you zoom in so close the chain fills the screen. Later, I replaced the chain entirely with a single sculpt.

  What's more, the rest of the harness is loaded with 1024x512 textures. Nothing in the harness needs a texture that large to look good, especially with the quality of the design.

 Now, being someone who can do graphics reasonably well, I can make my own replacement textures, I can rip apart prims and put them back together more efficiently. The average consumer cannot. Most of them don't even think about these things, nor should they ever need to!

  The people who make these things can, and I'm hoping that by making these issues more widely discussed, more content creators will make a point of working more efficiently.

  Make it a selling point! Advertise how little your work adds to avatar draw weight! (LL really should have made draw weight marketplace searchable information.) When it's pointed out to people as a feature like that, it is likely to influence their buying habits in a positive way and we all benefit with the performance boost that comes with more efficient content and avatars.

 Another tip for reducing draw weight is replacing sculpts with mesh. Sculpts are horribly inefficient with polygons and content creators are generally able to create far more detailed attachments using far fewer rendering resources just by using mesh. So, if you ever have the choice between similar attachments, one mesh and one sculpted, consider going with the mesh version.

I have, by far, the lowest Draw Weight in this screenshot.
 At the time of this writing, my draw weight is 68,445, down from about 210,000 in January. I've managed to do this without anyone being able to see much if any difference in my appearance. I've cut out every hidden prim, every invisible root prim, every unseen texture, every redundant texture, every too-large texture and by replacing sculpts with mesh where possible. I'm sure if I replaced my remaining sculpts with mesh then I could cut my draw weight in half.

 My goal is to eventually reduce my draw weight out of the red (I think it turns to orange around 35,000), at which point I'll see if I can squeeze down to green.

 With mesh, if content creators start taking efficiency seriously, we can reach a point where there is no reason for anyone's draw weight to be over 35,000 and we can do that without sacrificing the quality of our avatars.

Saturday, March 16, 2013

Recent Profile Pictures

Just because, a couple of my recent profile pictures. Both taken at Milk & Cream using my "Fantasy Overworld" windlight settings.

Both apparently taken in the ancient ruins area, too.

Speaking of my windlight settings, good news for Firestorm users. I recently spoke with one of the devs and they agreed to include my day cycle as one of the viewer's presets. It doesn't appear to have been added yet, but should be there in the next release I imagine.

My settings are already included with Nirans viewer and I've offered the settings to a couple other TPVs as well.

I'm still trying to convince other TPVs to adopt my camera settings, preferably as a new default but at least as an included preset, but so far only Nirans has added similar settings. I offer these settings for everyone to use, so if you'd like your favourite TPV to include them so you don't have to manually set them up every install, be sure to let the developers know!

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.