Monday, January 12, 2009

Animating Your Second Life

In the last post, I mentioned that what Second Life does give you is the ability to modify the virtual world as opposed to playing in a virtual world that some else (usually a game designer) created. This is not an entirely new idea. Perhaps one of the most notable earlier examples would be the various versions and varieties of Sims. Nonetheless, one of the ways in which Second Life allows you to modify the virtual world is through the use of scripts. Scripts are little programs written in a C-like language called Linden Scripting Language. And here we see a great example of a good idea poorly executed.

Linden Scripting Language, for those who are unfamiliar with it, allows you to animate objects in Second Life. This includes simple examples such as doors that open, visitor counters, and teleporters. It also includes more complex objects such as guns, vehicles, and security systems. Most 'activity' in Second Life other than that cause by keyboard directed avatars is driven, in some way, by Linden Scripting Language.

Thinking of LSL purely as a program language, it is about as bad of an example as one can find. If there is a theoretical model behind the language design it has been successfully disguised. The functions are named in such a way that nobody would ever guess what a function they need might be called. And, if you wish to learn the language, your only option is to learn it one tedious function at a time and hope you remember it for next time.

Thinking of LSL as a development tool, it is, once again, about as bad of an example as one can find. Their is virtually no support for developers. You write the LSL script in a notepad like editor and compile it by hitting the "Save" button. Who would ever guess that? If there is an error, it will tell you the line on which the error occurred and give you message that no normal person could possibly understand.

Unlike Visual Basic that provides extensive help to the non programmer, LSL leaves you to your own resources to sweat through script development. And unlike Java or C# that reward your effort by teaching you how a properly constructed language might look, LSL rewards you with nothing but frustration.

This language is not targeted at the casual user. It is not targeted at the advanced programmer. It is not really targeted at anyone. It is a horrible hodgepodge of scripting functions developed in what appears to be a laundry list fashion and all it shares with other languages is that it seem to incorporate almost every bad idea found in any other language.

The problem here, and this will become a repeating theme with LL, is that LL does not seem to know what they are trying to do. If LSL were developed for the casual programmer it should have been done entirely differently. If it were done for the advanced programmer, it should have been done entirely differently. Once cannot say that LSL fails to meet its design goals because there do not appear to be any design goals. And thus the user is left with a very difficult to learn and very difficult use programming language that deters nearly everyone who is not in SL on a mission.
It was a terrific idea gone horribly wrong due to a total lack of vision and direction. And that statement may well sum up Second Life as well.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.