Introduction to Linden Scripting Language 139
prostoalex writes "Dr. Dobb's Journal runs a lengthy introduction to Linden Scripting Language, the language behind avatars and their interaction in Second Life: "LSL is a scripting language that runs server-side, on a piece of software called the simulator. The simulator does just what it's name implies — it simulates the virtual world of Second Life. Each simulator runs everything for 16 acres of virtual land — buildings, physics, and of course, scripts. While you manipulate the script text in a form that is somewhat easy to read, the actual code that runs on the simulator is compiled. A compiler is a piece of software that takes the text version of the script and converts it into something that can actually run. In the case of LSL, the compiler exists within the Second Life viewer itself. In the future, it is likely that the compiler will move from the viewer into the Second Life simulators, but where the code is compiled isn't very important. What matters is that the text is converted into a form that can run on the simulators.""
A Way For Closed Source Scripts? (Score:5, Interesting)
What if someone only made available a compiled copy of something? It'd be scary if you can't tell what's really going on with all the stuff.
Re: (Score:1, Insightful)
Re: (Score:3, Insightful)
Re: (Score:2, Informative)
Re: (Score:3, Interesting)
In fact, he can't even see the object code. (Actually, SL doesn't let you obtain the object code for scripts even if you do have the right to modify them. Combine this with the fact that compilation is currently client-side, and just inspecting the source of a script someone gave you isn't sufficient to ensure it's not malicious - you need to reco
Re: (Score:2)
If by open source you mean having access to the code, enabling you to fix or change the code then there is no problem with disallowing redistribution of it.
If by open source you mean that the code is free (as in beer), then you'd need more rights.
Open source != GPL
(GPL is just one flavor of open source)
Re: (Score:2)
Re: (Score:1)
MIcrosoft is gonna be jazzed! The'll want to go this route when releasing a virtual copy of Windows for use within the SecondLife game...
Re: (Score:1)
Python and Perl Can Compile (Score:1)
Re: (Score:1)
They create independently executable files, but they aren't compiled in the same sense as C or whatever.
JIT do? (Score:2)
Re:and more (Score:1)
http://mark.dufour.googlepages.com/ [googlepages.com]
are also among the many python->machine code projects.
Re: (Score:2, Interesting)
Re: (Score:2)
You're too easily scared. Open or not, the script runs on the server, so that script kiddies can't tweak it on their clients.
Also they are migrating to
Credit where credit is due (Score:5, Funny)
Arf (Score:1, Funny)
Re:Credit where credit is due (Score:5, Interesting)
it's funny, i just checked out 2nd life last night -- first time since a year or two ago -- and i was pretty amazed -- the place is one big car lot or sex club. really. i guess there are two kinds of people in 2nd life now -- the people selling "sex", and the people trying to sell their objects to buy the "sex".
it really was a cool online social experiment -- it only ultimately confirmed what we knew all along -- the internet is good only for porn and consumerism.
now, think about this for a second. first, it's not real sex that is drawing people. it's not even imagery of real people having sex. it's interaction of poorly-rendered avatars in a virtual world. this is a testament to the power of the sexual drive in humans, and what we decide to do with our best technology..... just a friendly reminder that yes, we are doomed.
mr c
Re: (Score:2)
Even Linden Labs now admits (after the taxman commeth ... and the online gambling investigators ...) that Linden$$$ are just play tokens, with no relation to real-world currency.
Re: (Score:2)
https://secure-web7.secondlife.com/currency/sell.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
You don't have to - the servers are there, and if the feds say "no refund or exchange of Linden$" the credit card companies will do as they're told, same as the rest of the online gambling sites.
Re: (Score:2)
Moving the servers doesn't solve the problem of the credit card companies not allowing their US customers to make charges.
Then there's also the problem of being arrested ... if they were willing to arrest a British citizen (who ran gambling servers that were NOT in the US) who flew into the US, how much easier will it be to prosecute the higher-ups at Linden?
Re: (Score:2)
Re:Credit where credit is due (Score:4, Insightful)
It is in the best interest of any online world to convince the government that their money is fake, since that means they won't have to subject their servers and source code to government oversight, which would ultimately make the game much harder to implement. Most games are content to let it rest at that, since they see their money as play tokens themselves.
Linden Labs is one of the first companies to realize that there is a value in allowing the public, if not regulators, to think otherwise. All L$ cashouts are probably, technically, at LL's discretion; to give players a true, real-world legal right to convert money would mean the government would ultimately start taking a hard look at them, since from a real-world standpoint they would start looking like a bank at best, and a potential tax dodge at worst.
It is important to note, though, that Linden Labs' business requires that the illusion be maintained. If they actually did refuse to cash out L$, it would shake user faith in the system. Trading between real-and-virtual money may be ultimately by permission only, but to exercise that authority would be dangerous to their business, and they seem like they're in this some degree of foresight instead of hoping to make a quick buck, so L$ are still, practically, safe to buy and sell. Mostly.
Re: (Score:2)
Re: (Score:2)
It just reminds me of one thing; the "end-game scenario" for Second Life.
No doubt that someday, Second Life will be replaced by something bigger and better. It may not be soon but it is inevitable. Second Life is a platform based on networking technology of several years ago, at some point they will be surpassed.
Then what happens? At that point, when Second Life's demise is inevitable and predic
Re: (Score:2)
In fact, if the illusion is shattered for Second Life, it would harm confidence in all VWs that seek to be anything more than MUDs or graphical MUDs. Linden Labs still has a fairly positive reputation, so for them to suddenly turn evil, it'd do more than wreck confidence in that one company, but in the idea th
Re: (Score:2)
I agree with your above post except that I would insert 'not' before 'doomed' in the last line.
If we were incapable of finding channels for commerce and amusement in new environments, then yeah, we'd be doomed.
Having said that, if people really buy sex on 2nd life, that's kind of sad. Not because buying sex is sad but because it suggests it's a less positive environment than, say, FurryMUCK was in the last decade.
Re: (Score:2)
Re: (Score:2, Interesting)
I don't have or do anything porn-related in there, and don't spend any significant amounts of money either. So far I'm getting more out of it than I spend.
Re: (Score:2)
Paul
Re: (Score:2)
Re: (Score:1)
If it is a cool online social experiment, then it is such regardless of what the evidence produced by that experiment is. A serious argument could be made that the division between sex and the rest of our lives has only arisen since the onset of Christianity, and that SL's focus on sex is part of a natural "repaganizing" of civilization.
Well, it's a thou
Re: (Score:2)
Re:Credit where credit is due (Score:5, Informative)
All that is easy to find is sex.
There is a lot more out there, it is just hard to find. I've spent a lot of time sailboat racing in SL. I no longer have access to a boat and I really missed it. It it the same? Certainly not. Is it better, than nothing. You bet! When I raced sailboats I was on a big boat with others, now I'm at the helm. I couldn't afford to do that in the real world.
I hate to sound like spam but if you think sex is all that there is to SecondLife, just check out my web site, you might find something to do there that interests you. (Note, the site is supported by AdSense ads, if that offends you, please don't visit, or at least don't click on the ads!)
Paul aka Seeker Gray
Re: (Score:2)
If you do what you are created for with recognition of that fact, then you are filling the shoes of a Human.
Re: (Score:2)
I've often thought that the internet, in general, gives us something like a microscope into human sexuality.
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Makes me wonder where do the mature bits go when you have a tail, as there can be only one object attached to every point, but that's not something I intend to figure out.
Re: (Score:2)
My first thought was that you could make tails and penises joined as single objects.
My second that you could make pluggable objects with an open API to make it possible to switch tails and penises independently.
My third thought - "Hey, this could be a business idea!"
I've been on the Internet too long. The most frightening thought is tha
Re: (Score:2)
Re: (Score:2)
Sure, there's a lot of furries there, and a lot of furry content, but that's because.. hey, it's a virtual environment where you can be ANYTHING. Of course it's going to attract people who want to roleplay as a non-human.
If you're curious about the whole furry thing, come to Luskwood on Second Life. Not all furries are sex-crazed anti-social dumbasses-- just a very vocal few.
-Z
What happened to Mono? (Score:4, Interesting)
Re: (Score:2, Informative)
Re:What happened to Mono? (Score:4, Informative)
As clear as mud (Score:4, Funny)
Glad that's all cleared up!
Re: (Score:2, Funny)
*Done*
Run Forrest, Run!
what a strange summary (Score:2)
Re:what a strange summary (Score:5, Informative)
Re: (Score:2, Insightful)
Re: (Score:2)
I was hoping to see a langauge that really captured the concepts of virtual worlds and actors. LSL ain't it.
Re: (Score:2)
Re: (Score:2)
Anything I can look at to compare with?
Pretty sure. Most stack-based VMs (Smalltalk-80, Forth, Python, etc) are approximately equivalent (with a factor of 3
Re: (Score:2)
LUA is a pascal like imperative (procedural) language, while LSL is basically a state machine, aka special purpose programming language.
In an interactive object world, object states and their interaction events are far easier to map to a special purpose programming language, than it is, e.g. to register a LUA function for each event you are interested in.
And bottom line, except old fashioned
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Sorry. Surely you can use and surely there are games I'm not aware about that indeed use LUA as scripting language. The question is, if that is the language wise best solution. Implementation/problem wise it might be. After all its a free (as in money) language with a wide availability of interpreters/programmers and libraries.
Event handlers aren't hard to add in Lua in my opinion.
Arg, thats not what I said! Programming event handlers in LUA is an outdated programming model. And thats not bound to
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
First thing I did was make a listening bug to spy on people. Hope they've handled that problem since I left...
Re: (Score:2)
And furthermore I doubt that many
In short: LSL is a state machine and event based program language.
Events are what are methods in an OO language. In game objects have various standard states and standard events like "touch" and you can script the behavior for events and state changes.
Actually its a quite nice lang
Re: (Score:2)
Be careful what you wish for in wishing to add features to languages. Java, for example, already has an event model. It's not as succinct as in a language designed explicitly for it, but when you add to much to a language it makes it hard to read and hard to get started in. That didn't stop Perl, bu
Re: (Score:1)
Re: (Score:2)
The determiner of whether it is a scripting language is not its basis, but what it does, whether it orchestrates the behavior of other objects, things like files and programs, according to what looks like a "script."
Re:what a strange summary (Score:4, Informative)
The compiler sucks. For example, when you define a vector, it generates three "float literal" instructions rather than one "vector literal" instruction. This means that 2 instructions and 2 bytes more code than necessary are generated for each vector literal in the code (similarly with quaternons/rotations). (Remember, there's a 16Kb per script limit for code+data.) As a second example, there are two types of instruction for transferring data from the stack to local/global variables - store and pop (which is equivalent to a store, followed by a drop). For one, the compiler only ever seems to use the "pop" variant, whilst for the other it always uses a "store; pop" pair (despite this being inefficient) - I've never seen a lone "store".
Also, the goto is broken - due to a compiler bug/design error, only the last jump to a particualr label actually does anything. (The code for matching gotos to labels can only track one goto for each label.) This is a long-standing and well-known bug which I doubt would be difficult to fix, yet no-one's bothered.
There are also other useful instructions which are never used (such as various dups, an instruction for setting the instruction pointer directly - making jump tables/efficient switch statements possible - and an instruction for freeing arbitrary amounts of stack quickly). The compiler never optimises anything, either. It's why I don't hold out much hope for speed improvements from Mono (and indeed, the predicted improvements mostly vanished when they started running actual LSL scripts with it.)
Re: (Score:2)
At least this is one problem that can be addressed by hacking the open-source viewer; the compilation's done client-side, so you wouldn't need any LL co-operation to use and distribute an improved compiler.
I'm not so sure. (Score:2, Insightful)
Well, if it is running on the simulators, the simulated humans might be given access to it, and thus being able to script their own lifes!
Well, maybe I should try if those scripts already work on our world!
the summary: intro to computers (Score:4, Funny)
hello class, this is a COM-PU-TER. computers run a set of instructions called a PROOOGRAAAM. programs are nothing but 1's and 0's. heheheh, but we don't program in 1's and 0's, we program in a language, such as linden script. another computer program, called a com-pi-ler, compiles the script into a format the computer can understand. ok, class, this is a DISK DRIVE . . .
sheesh, i thought this was
(actually, it must be -- even *I* am complaining about the summaries...)
mr c
Who is this Dr. Dobb? (Score:1, Funny)
Re: (Score:2)
-Eric
Not a very good article... (Score:5, Funny)
SL scripting = teh suq (Score:2)
It is EASY for someone to write a script that bogs down the server. Also scripts can be automated and self replicating. There was a problem a while back (Not sure if it's still an issue) about someone writing scripts that fly around really high (higher than a normal user can go without scripting super powers into a worn object) scanning land blocks for land for sale. It then alerted the owner of the script if
I do a pretty good bit of LSL... (Score:3, Informative)
Re: (Score:2)
Re: (Score:3, Informative)
Actually, LSL's lists do have efficient random access. The main catches are that they're immutable, which means that every time you want to change anything you have to copy the list (which is, of course, limited by LSL's 16Kb memory limit), and that you can't have lists of lists. (Also, their implementation of lists isn't par
Re: (Score:2)
Re: (Score:2)
Yes, but that's not so much a list of lists as a list of pipe-deliminated strings. (BTW, I don't think it would be particularly difficult for them to implement lists-of-lists - they don't have to worry about circular references due to the aformentioned immutability, the design of lists makes it easy to add lists as an item data type, and the reference counting is probably mostly implemented already.)
Interregional physics (Score:2)
I've never done 2nd life. What happens if you stand at the border and throw a rock into the next region?
OK, I guess there's probably some handoff mechanism. But I have to say that I find the "physics" of 2nd life disappointing. In the real world, there's an enormous cost in time and energy in moving stuff from place to place. That's an important part of our economy. In 2nd life, they've gone to a lot
Re: (Score:2)
Re: (Score:2, Insightful)
SL has a service based economy. There isn't a shipping industry in SL because it isn't needed. But there are plenty services being offered. If you pay me enough L$ I could script something for you. There are people who will build custom objects, draw graphics, make custom avatars, etc.
RL physical constraints aren't needed in SL to have an economy. Time still is money. Skill still takes effort to develop.
The RL constraints gave us the RL economy, the SL constraints result in a slightly different one. Ther
Re: (Score:2)
The game is, in fact, a game. In many ways it's a simulation of real life, but not in all ways. Since there are no physical constraints, there are no 'essential' rules. Gravity? Optional. Shipping costs? There's nothing to ship, therefore no costs required.
Having a cost to move things in space and time DOES have economic impact. So does NOT having a cost to move things in time and space. You're deleting one real li
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Gee, thanks for clearing that up. BTW, do you know who's buried in Grant's Tomb? That's always confused me.
Games have rules, and the choice of rules is what makes the game interesting or boring. By leaving an important economic factor out of an economic game, Second Life has made itself rather less interesting.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Holy crap what happened to DDJ? (Score:2)
Re: (Score:2)
Using print publishing delays for web articles... (Score:2)
In its defense, it did say it was a "primer", targeted at beginners. Chances are, it was lifted from the SL book itself.
LSL has a lot of limitations, some of which can be gotten around. However, the biggest issue is that LL is constantly breaking crap in their futile effort to scale their unscalable grid design to support the
Re: (Score:2)
BTW, it is Linden Lab, not Linden Labs (Score:2)
It is Linden Lab not Linden Labs.
Pau aka Seeker Gray
Second Life employs Leisure Suit Larry? (Score:2)
Rob
Re: (Score:2)
Re: (Score:2, Interesting)
My perception is that there is a optimal balance between choice and usefulness. If we were
Re: (Score:2)
Re: (Score:2)
I'm not sure how exactly it works, but the InfoNet project provides a world-wide bulletin board of sorts that operates completely inside the virtual world. It's centralized, though. It'd be neat if someone could develop a proper decentralized network, but now that you can make arbitrary HTTP requests from LSL scripts there doesn't seem much point when you could just use the real Internet.