Monday, 3 August 2009

Hair Fair and other shows on SL - One method to combat Lag?

OK... this is going to be a little contravertial, but to be honest it's been grating on my mind for too long not to present it to you all for your comments and analysis. Now before I begin, I'm just going to add that these are not solely my own ideas. Alice and I talked about this for hours, throwing things into the pot - but seeing as I have two blogs, to her zero; it's up to me to post our consensus opinion.

Furthermore, let me stipulate that I have nothing but respect for all those involved in Hair Fair... I am merely using it as an example for two reasons:

1. It's got a reputation for being laggy as anything. You just have to read the blog posts on it

2. It's the event I have most experience of. Unlike many designers there, I solely make hair; so I'm not going to be in attendance at a skins or clothing fair. It's worth noting though that a hair show is particularly primmy and texture heavy, so others may not suffer quite so badly.

Alice and I spent a LOT of time working towards Hair Fair this year. I made the styles... she created and assembled the booth. So we both spent a lot of time going around the site itself, and seeing the handywork that others put in. Alice even went as far as to visit every store and collect demos... so spent HOURS wandering around the sims, being hit with the 'Lag' that such events are known for. Once the doors were open, I barely visited - which I think is the case with most designers.

But anyway, despite the cries of "travel light" - most people who visited hair fair did not. Lag was pretty bad, despite restrictions on scripts and so on. The night before I was talking to Treebie Withnail and Booperkit Moseley... who was standing outside Treebie's store for a full ten minutes commenting that she couldn't see a thing. yet she said she could see both Treebie and myself. This got me thinking...

Objects in SL only rez when certain things come about - parameters relating to size need to load in... then textures, sculpt maps and gods know what else. Basically Booperkit's problem was that due to the sheer weight of objects; each textured differently, sized differently, and in many cases with different sculpt maps.

In short, there was so much information being piped to her computer that in the end it held up its hands and said "screw it".

Now here's the thing. Damien Fate created as standard structure and set of sculpts, textures and alike for the booths, with the statement "stick to these as far as you can." Now... the set was pretty limited and the vast majority of designers, wanting to express themselves, bypassed a lot fo the supplied content in favour of their own. Well OK... great... but this meant that for every booth there were different textures and maps to load in.

OK Math time (for that is, after all what I'm known for...)

If I were to stand in the middle of the four Hair fair sims with a draw distance of around 364m EVERY booth in the park would be visible. If we make the assumption that each booth uses 3 512x512 textures for floor, walls and roof, a further five 512x512 textures for embellishments and 2 unique sculpt maps of 128x128 pixels, you already have 350Mb used up on your video card; before we even address the shops' contents.

Contents... vendors... hmm... well I have to admit, with my colorway selection I'm a pretty bad offender... but let's dissect shall we?

Ok here we go... you've got 36 128x128 textures for the double packs, six 256x128 textures for the hue packs, two 512x64 textures for the demo and complete bars. Add to this the three 512x512 images for the front fascia, side textures and the actual pic of the hair itself and you've got an additional 4Mb sat on your videocard for a single vendor of mine... although for secondary vendors, you just have a quarter meg overhead in the texture bank for the additional hair picture... so... five styles... five Mb.

Some obviously use fewer colors than I do, but in turn others... (mentioning no names) use 1024x1024 textures for hair pics and even vendors frontage. Either way... assuming 4 styles on average per shop, 125 shops and 1Mb requirement per vendor you're looking at 500Mb overall.. plus the 350Mb for the booths. 850Mb... and SL automatically limits graphics use to 512mb at once, even if you have a 2Gb videocard. In short with this texture density, to put it simply, what you're looking for ain't gonna load. What's worse, that's before we even consider avatars... freebie boxes... subscribeos... scenery and the rest.

In short, no matter what restrictions you put into place, you're rooted from square one.

Now... I hear what you're going to say next... "Yes, but who in their right mind attends an event of this magnitude with a massive draw disatance enabled?" or "Doesn't SL have some means of culling and occluding textures? Surely this helps?"... well yes... it does. BUT... even with a camera draw set to the minimum 64m, you're going to have a quarter sim (practically) within your draw range - which correlates to 10 stores insome format or another... plus with 50 avatars on the sim, assuming they're equally distributed across it, 12 are going to be close by. OK let's look at an avie... ;)

This is me, right now... packing an ARC of 2300 or therearound. Some have much higher... others much lower... but again, it comes down, in part, to textures. 3x1024x1024 for the skin, 1024x1024 for the undershirt, jacket and underpants and pants layers, 16 different 512x512 textures for jacket, buckles, bent loops, straps, hair (alpha and non-alphas) and boots (not seen) - and assorted sculpts - 8 of them, each 128x128 pixels - meaning that for my av to rez on your screen, the textures required account for 12Mb of your graphics card. OK... this is a pretty bad example, because to be honest, I am not going to a laggy sim kitted out like this... Although some people will. Furthermore it's certainly possible to create an ARC 1 avatar with eight or even ten 1024x1024 textures (plus eyes) in use... and all these textures will have to be downloaded somehow.

Regarding occlusion and the rest... avatars don't tend to stand still and for some reason seem (to me at least) take priority over downloading on surrounding prims... so ideally, the less of the surrounding, the better...

The trick would therefore be to reduce lag by limiting all these texture downloads as far as possible, while putting the onus on those participating to do what they can, rather than bullying visitors into de-primming... and sad to say,the simplest way I can see of doing thisis to use the central sims in little more than an indexing capacity. Get rid of the funny builds, cut back on the variety of texturs to a bare minimum and do away with any given theme. Working to an end with over 120 spoons in the mixing pot will result in lag.

So... Indexing area? Yeah... basically a bare sim, or group of sims, marked out at regular intervals with simple walls to create three sided display stands. Product photos (selling demos) and shop logos to be displayed ONLY, and MAYBE one or two freebie vendors. Also present, an inter-region teelporter, set in the floor that TPs those who sit on it straight to the main store of the designer, where the designers can go nuts embellishing their vendors to their own liking. Requisites at the store? Teleporter to the main index area and a TPer each the store prior to and following thiers. A 'Random' teleporter to another store could be included just to mix things up a bit.

Now... I know I've had trouble in the past with teleporters... so this would have to be checked, checked and triple checked ahead of time to determine whether it's a practical solution, but in the grand scheme, the benefits of a distributed system are enormous.

The four sims of Hair Fair 2009 could hold a maximum of 200 avatars simultaneously; as they were all required to be in the same place. The indexing area would have a limited accesibility, true, but each store could act as a starter point for the fair, allowing residents to take part, pick up from ANY location. In fact it would theoretically open a fair to one tenth of the active grid at present levels, if all sims were full.

There are of course pros and cons of this solution

- Faster download speeds for textures and less lag on the index sims
- Distributed server load for the event as a whole...which means
- Higher concurrency of participating residents
- Designers don't have to relocate styles after the event has finished
- Multitude of entry points into the events, catching those not already aware it's happening
- Less of a likely hood that a single region failing cound 'down' the experience for a large number of designers

- Dull sim (potentially) at the centre of it all
- Lack of theme throughout could make the event disjointed
- Harder for organisers to monitor vendors re: charity donations (more places to check)
- More disparate - overall experience for designers likely to be limited
- Smaller designers run more of a risk of being overlooked if people are capable of "doing the tour" without hitting the central location
- Central events may have to take place on a skybox above the venues (with their own textures)

OK... as is apparent the idea is not 100% bulletproof; but I offer it for discussion. Please tell me what you think...


1 comment:

Anonymous said...

I think two things need to be done, mainly: 1) Total ban on any avatar attachments. AOs, Huds, Mystitools, boots with 250 prims each. Its easy enough to check with Inspect to see what each av is wearing. There should be security staff booting people who don't play by the rules.
2) Booths to be plain and no-mod. No sculptys. Yes I know it will be plain and ugly, but a lot of the problem is texture download and every sculpty is 2 textures not 1.