A History of Half-Assed Features

Rainbow Puke
This is how excited I got for llCastRay()

Linden Lab has a lot of new features in the pipeline right now, and I am very excited for them. Reading this post over at  Dwell On It is a very sobering experience. It’s explaining the new Direct Delivery features coming to SL, when suddenly Linden Lab interjects and clarifies how the newest upcoming feature Direct Delivery isn’t being developed as planned. So I started to wonder if this was ‘on par’ because it seems like every new (or old) feature developed was half done when it implemented. Is LL setting us up for another let down?  Lets examine some of the things LL has done in the past…

llCastRay

For me, llCastRay was the biggest high and crash in SL functionality. Just take a look at the notes section of the function itself. In a rather bland and dumbed down virtual world, llCastRay was the gateway drug to amazing LSL code. I had so many amazing plans for llCastRay use, because during beta spamming the hell out of it on a region didn’t put a dent in region performance.  For the first time as a user we could ‘render’ a scene in SL and see what our avatars really looked like to the physics engine.  I started playing around in the beta developing smarter AIs that could navigate a region better.  This one dude made this amazing spider mech.  Everything was on course to really awesome stuff.  But then the function got nerfed, and it’s usage tied into parcel size, instead of prim counts. So now that if you’re using more than your fair share of a very VERY tiny pool of allocation the function fails. With all of the things we were promised it could be used for, we can’t use the function to do those things without hitting the cap. I use it on occasion for some things, but it will never live up to it’s intended glory unless the usage caps are removed.

Mesh

Mesh in it’s current state is still half assed. It certainly is a great improvement over sculpt maps that we use in SL for non-primitive shapes.  But there’s one giant flaw with the whole mesh system — it’s static. The closest thing we have is avatar mesh weighting, which you can do with ONLY the standard SL skeleton. You can’t create custom skeletons, or skeletons for objects. Currently, there is development for an avatar mesh-deformer for ‘clothing’; but only because of community outcry and funding. Even then, that is in danger of never being added because of LLs new viewer policies. It may never see the light of day, but if it does it still needs to be more dynamic with object skeletons and animations, or even the ability to swap out mesh assets with scripts.

Group Chat Fixes

After 2006 Group chat in SL has always been problematic. About one year ago, there was a very short time when group chat was working. A partial fix had been put into the works, but  someone noticed things running smoothly and bumped group limits from 25 to 42. We’re not allowed to have nice things.

Before all that there was a time when LL was looking to add XMPP (formerly Jabber) to SL, and replace the group chat they had. I don’t think it ever got beyond an alpha. What I do know is that everything still breaks down anytime SL has any good amount of online concurrency going on. I can only assume that XMPP is STILL not on the grid. It’s never too late to return to this project, if any Linden is reading this please give it some thought.

Viewer 2 and 3

I have to say I like viewer 3 a lot. Viewer 2 was a fucking train-wreck, and I am sure there are plenty of vocal opinions on the net that mirror my own. V3 had to be re-branded as v3 and shipped with Mesh in order for people to try it — that’s how bad v2 was. Point being, it took a LOT of work for it to get adopted, and even then a great deal of death-grippers won’t let go of their v1s. The primary reason being that v2 was so terrible, no one even trusts LL to run their own viewers. I would say v2 was half-assed, but since it was several evolutionary steps backwards, it’s full assed.

Mono

I myself think it’s a bit unfair to include mono in the half-assed category, because it did what it was intended to do. It’s better and faster than old LSL. There was only one slight overlook in that all mono scripts automatically took up 64kb of memory, and it was a while before we had the options to control our script memory. It’s still on the half-assed list for three primary reasons.

  1. Mono initially promised we’d have more control over our script memory than we did at the time, it took a year but we can create smaller scripts now. When mono was announced it was also hinted that we could have scripts bigger than the initial 64kb that we’d get with mono — but it would have to be developed. 64kb is a lot for most SL applications, and I bet 95% of the scripts in SL could be compiled in less than 1kb still work. However all the BIG and amazing projects in SL still need to link-message thread between each other because 64kb isn’t enough. And if you’re threading between other scripts, you have that much more overhead in each script, and need to use more scripts just because you have that threading overhead. Eventually you become a manic memory miser. We want big scripts back on the table for development!
  2. C#. Before Babbage Linden was canned, C# was in the works for the future of SL. A real programming language! OH GOD ARRAYS!  Do you know how much I want arrays?! And LSL versioning! Personal libraries of functions to be called from other scripts?! RAINBOW VOMIT EVERYWHERE!
  3. It’s time to disable compiling in LSL2. There was talk about disabling the old compiler back in the day after mono had been around the block. There’s little to no reason to keep the LSL2 compiler around, especially since all new default scripts are defaulted to mono.  Let’s take the next step and turn it off!

Voice Chat

Very much like group chat, voice chat has ALWAYS been problematic since it was rolled out.  There’s always updates on the servers in regards to voice chat, and whenever I’m with anyone using voice we’re always restarting/toggling voice in order to coax it into working.  Don’t get me wrong, I appreciate the feature.. when it works. When you’re trying to use it in a professional environment, it’s pretty embarrassing when everyone wastes the first 15 minutes of whatever they’re doing just trying to connect — if they connect.

Windlight

Windlight is the name of the project that Second Life uses to render lighting and atmospheric effects in SL. In all fairness windlight did get completed, but it took 4+ years to finish implementing the estate level of control initially promised.

Those are just some of the major things to come to SL in the past few years.  Here are some of the things coming soon, and what I’ve heard and seen.

Advanced Experience Tools

Word on the grapevine is that some of the advanced experience tools are getting heavily nerfed, so much so that they’re almost worthless in comparison with the current tools we have now. Being fair, the newest video about the new features makes me hopeful.  As you can see from the majority of this blog post, hope is a precursor to inevitable letdown. Only time will tell if LL can follow through and stick to their guns.

Pathfinding and Character AI

The pathfinding JIRAs are a chaotic mess. A good deal of the bugs on there are mis-filed, some have the kiss of death from WorkingOnIt Linden, things are being marked as resolved when they’re not. The chaos of communication doesn’t instill any hope. In all honesty I should be on the beta grid testing these features, but I haven’t had the time due to work constraints.  From what I see pathfinding can be cool, but it looks like it was hastily bolted on to the current grid, not taking account some of the regular SL limitations already in place. From my testing pathfinding can bring a regions physical FPS down pretty badly if something goes wrong. This one is going to take a lot of work.

Direct Delivery

Initially Direct Delivery was supposed to replace the inworld Second Life Marketplace Boxes, by having special folders in your inventory where you could list items on the marketplace. But it seems like LL got lazy and just put all incoming things into one folder, and that makes me wonder if direct delivery is going to actually do what it intended to do at all. They should really just take the time to do it right rather than rush it and shit out a sloppy turd. (Oh man so many land barons are gunna be pissed when this feature goes through!)

Finally, have some quotes from important people:

I’d rather fail at doing something really, really, hard, than do something that was really easy. — Jesse James

Anything worth doing, is worth doing right. — Hunter S. Thompson