Monday, January 30, 2006

Physics bridge collapse

Physics bridge collapse 2
Physics bridge collapse 2,
originally uploaded by Ordinal Malaprop.
As an quick experiment I tried to build a bridge over the stream on my land that was supported purely physically. The only non-physical elements were the two top bars you can see in the pictures, and the top rings connected to them - apart from that, each individual ring was a separate object, and the bridge itself the four rings at its corners was as well.

It didn't work very well. As soon as I enabled physics on the objects concerned, it started to behave a bit oddly. Two corners of the bridge began to swing downwards. The sim began to run like treacle. And then the whole thing began to break apart, very slowly, with rings passing through each other and shooting off in a rather interesting but utterly unproductive way.

At the end of it I was left with the base bridge board half through the stream bank, with the departing links scattered across my land. Though I don't have much land, so it wasn't hard to track them down and delete them.

I suspect that non-physical objects may be the way to go in future, but I'm determined to get something interesting working on a permanent basis. Earlier on I built a small installation with similar links chaining a scripted physical "creature" to a post, which constantly tried to get away. A similar thing happened there, with breaking chains. Perhaps SL was just concerned about cruelty to scripts.

Sunday, January 29, 2006

Further observations and a moral dilemma

This post does actually have some scripting content in it - I promise.

Further to previous posts, vandalism has continued, with flames being placed around the Black History Month exhibit, and I have produced what appears to me to be a weapon that is hard or impossible to shield against. I would call it a defensive weapon, but in truth, any weapon can be used offensively, so that would be a misnomer.

BHM burning 0

I have been playing with push scripts recently and it seems to me at the moment that an effective push weapon has two elements - firstly, the targetting script, which identifies a target and sends instructions to the second group, the push scripts themselves. One link message will activate an arbitrary number of other scripts. So one can simply have

llMessageLinked(LINK_THIS, 1, (string)(llVecNorm(dir) * 2147483647), id);

(where dir is the direction to the target and id the target's key) in the targetting script when contact is established, either by collision or by sensor or however one wishes to do it, and then have a number of other scripts in the same object that are merely

default
{
link_message(integer s, integer n, string str, key id)
{
llPushObject(id, (vector)str, <0,0,0>, FALSE);
}
}


The above can be duplicated an arbitrary number of times. I am not aware of a limit on the number of scripts in one object but it's certainly rather high.

Apart from sitting on something, which protects one from any push, I am not aware of a defence against pushes apart from the threat of legal action - and it appears that this is not sufficient to deter a sufficiently keen griefer, given that punishment is going to be limited to a few days' suspension for an alt account. Setting a land parcel to ban all foreign scripts from activating is possible and has some effect, but it is inconvenient for visitors and also does not protect against pushes launched from outside the parcel. I have established that it is quite possible to set one off of sufficient magnitude to seriously annoy whoever is on the receiving end. The stupidest griefer can set off a C4 script from just outside.

So what is one to do? I can't sit around in group areas all day waiting to catch vandals at it. Banning them from the area is pointless as they can just use alts or build vandalising objects outside the parcel and move them in. Abuse reports are filed each time, but there seems to be little reaction to them, and I don't have much confidence in the deterrant effect of any sanctions applied. We've identified a lot of names of people who are likely to cause trouble - all of the vandalism so far has been by two of them. I built an early-warning system that sets off an alert whenever any of those names come within 96m, but it would be so easy to add the object that automatically fires unstoppable phantom missiles that push once they come within range. Except that that would be against the rules.

I suppose that sometimes, one must be the grown-up.

I hope to get away from this more martial theme in the near future.

Friday, January 27, 2006

Nazi grief

Last night, more Nazi Drama occurred, with one and then three shaven-headed fellows hovering just outside the SPSL headquarters and basically saying very little, just being there. This exposes a problem with small or narrow plots of land in Second Life, which is that anyone can sit on neighbouring land quite happily, listen in to conversations, make contributions of their own, and there is nothing (legal) that you can do, apart from convince your neighbours to ban the folk concerned.

If one is attempting to construct a case with Linden Labs against an individual or group one can hardly go around pushing them into orbit - even if it doesn't lead to your own suspension, it is the sort of thing that confuses and annoys arbitrators, who prefer clear-cut cases and do not like dealing with mutually warring parties. Confusing arbitrators means that your case gets dealt with more slowly and any decision is likely to be more lenient and "even-handed" - "you both stay off each other's land, and if any of you see members of the other group on your land, report it" rather than "you, you there, stay off these guys' land and never bother them again or we'll send you all to the Cornfield in an instant".

So all that is left is to engage in an awful lot of verbal abuse. It may seem a little out of character, but I have to confess that I can be somewhat offensive at times. Also, one can posture with weaponry, pull out bananaphones or other noisemaking devices, bombard people with copies of the Communist Manifesto, build signs, attempt to put hats on their heads with rude messages on them and so on.

It doesn't actually get you anywhere, though, and while I rather got caught up with righteous anger at being invaded and group loyalty at the time, I feel rather embarrassed about the whole thing now. This is a bunch of toy soldiers who are bored and want to have a fight. In Jessie, you can only fight other people who come into Jessie, and clearly that's been a bit dull for them. Some of them may have some unpleasant views, but it's not like they're actually going to get anywhere promoting them on SL - it makes no difference to me if they sit there muttering to each other about race mixing in the trenches in Jessie, and taking it outside of that is a good way to get LL to react much more quickly. Others, I'm sure, are just playing at it in order to provoke other people, something which I've so much of in other contexts that if I ever take it seriously I should kick myself.

Being the sort of person I am I immediately started thinking of automatic drones to place in Jessie that would seek out and kill selected targets, again and again and again (and I'm not sure how the one I designed could be easily stopped) but really, that is rather childish. I'm interested to see if it would work now but it's not actually going to help anything.

Thursday, January 26, 2006

If you're going to vandalise a place...

...either do it properly, or do it so garishly and tackily that it's unbearable to look at. This is neither.

Last night the headquarters of the SPSL, the Red Star Lounge, were vandalised by a bunch of Nazis with whom there has been some conflict. (They call themselves "anti-Communist" but they're keen on eugenics and so on as well, it appears from having chatted a bit.) I won't go into that because it's a bit tedious. However, really, if one is going to vandalise a place, at least take some care with the objects.

(full gallery)

Monday, January 23, 2006

Ad Builds In Second Life

A collection of signs One thing I did forget to do is mention my Ad Builds In Second Life gallery. This is a selection of the best, worst and ugliest pieces of advertising that I have seen around the virtual world, with an emphasis on the worst - but please do note that simply being in there doesn't mean I'm necessarily saying that your ad is terrible. On the other hand, if the caption says "this ad is terrible", yes, I am saying that.

If you are reading this (and there are the odd few people apart from myself who do read this, I'm told) and you know of a really appalling or otherwise notable ad or area, please get in touch with a comment or in-world with the location and I will go and check it out, giving you credit if you like. One thing I'm finding annoying at the moment is areas which are utterly flooded with ad builds, which might be fine individually but together make you want to turn your draw distance down to 2m.

N.B. This isn't just about Bush signs, though obviously they count as well. That's old news, okay?

Tuesday, January 17, 2006

Automatic Writing

Oh goodness me, so many things that I've been building recently, I just don't know where to start, but I'll begin with my growing interest in the production of automata. I think of it as my way of giving something back to Second Life when I'm not there to "entertain" people with my "sparkling" personality and "ready wit".

--

First of all I continued work on Delilah, my "obedient proxy". Delilah is a mostly conical creation whose main purpose is to allow me to explore SL to an extremely limited extent while I'm not even there. Over email, she can be told target positions to go to, a height to hover at, a speed to move at, and also to say or shout messages from me - this uses similar code to the Touring Vehicle that I have mentioned previously, just with a different interface. She will feed back information about any speech that she has heard and, if asked, data on which avatars have entered or left her local area. I have set her to travel across the grid in my absence and hover around listening to people's irrelevant chat, which was not particularly enlightening.

The problem with Delilah is latency. llEmail (for her to feed back) has a twenty second timeout, and I don't really want to have my inbox filled with every event that occurs around her in any case, so responding to any chat in a timely manner is practically impossible. Some sort of XMLRPC interface might work, with a web page that I could log into and see updates whenever I felt like it, but that's rather a lot of effort for someone who knows only the basics of how XMLRPC works. At the moment, poor Delilah must be considered a flawed creation.

My next automaton was an aerial mobile guardian - a spherical machine with two main modes, "watching" and "chasing". In "watching" mode the guardian waits, spinning slowly, until someone approaches within a set distance. At that point it enters "chasing" mode, moving to a set distance away from that person and opening fire with the two cannon mounted on its sides. The guardian uses llSetPos rather than moving physically so is immune to pushing effects, though I should really fix this to make it work physically - I'm afraid that I was lazy, and llSetPos is so less fraught with problems than real physical movement.

However, through my contact with other members of the steampunk movement, for example Professor Jefferson Gould, I have learnt to take more care with the appearance and animation of my creations, and I am quite proud not only of the actual structure but also of the action of the cannon, which eject brass shell casings and the barrels of which recoil. Pictures to follow.

--

I have been doing other things but frankly, I'm getting so behind on this that it's not worth me trying to remember everything. As well as that I am not logged in anyway. This blog was originally intended to be a proper scripting diary, and I should post more frequently, bad Ordinal. I'll mention things if I they come to mind in future.

Thursday, January 12, 2006

A space, not an oddity

I'm in New World Notes! Well, two sentences of mine are, in the recent post about the MTV avatar fashion show:
But under that objection lurked a larger one, perhaps: feeling imposed upon by a media giant that didn't seem to appreciate the essence of Second Life culture. As Brodie put it, "MTV is about what is popular, not creativity." And why a fashion show, when there was so much more to the world? "I wouldn't want SL to get any more of a reputation as basically being computer dress-up," Ordinal Malaprop worried, "That's only a small part of what goes on, fun as it might be."
One thing that does interest me about the MTV event is that, shallow as it might be (and I don't think I'm exactly taking a huge risk in thinking that could be the case) it's about something within SL rather than SL itself. Coverage outside of gaming and futurist media has mostly been along the lines of the Newsnight program linked to previously - events were used to illustrate things that could happen, but the subject was Second Life.

In this case the subject is a virtual event rather than the concept of virtual events, and I think that marks something of a step in the direction of considering virtual space as a valid environment for things to happen in, as when the BBC reported an outbreak of plague in World Of Warcraft. I also think that it's a step forward. Introductory "what is this thing?" articles are all very well, particularly considering that SL is an unusual online environment, not an easier-to-explain "game", but I think that illustrating interesting things happening within SL, and treating them seriously rather than just as a gimmick, is a better tactic to raise interest. Not only are you showcasing SL, you're implying that what goes on in there has value in itself.

If this leads to an immense flood of new bling, though, I will be demanding compensation.

(Democracy Island post coming soon, but my screenshots are at home.)

Monday, January 09, 2006

"Impeach" in a crowded sim

Unfortunately, during testing of the Kinetic Metaphor Propagator, it emerged that people were hearing the shouts of the Political Statements and thinking that the Impeach Bush ads had started actually shouting now, a terrifying spectre. So the Statements will have their volume reduced somewhat, to "say" level (20m) rather than "shout" (100m).

I would also like to point out that Ordinal Laboratories takes no responsibility for:

* any free speech used on unappreciative targets (don't blame me, there are a million push guns out there already anyway);
* any bannings that may occur from the exercise of free speech in this manner.

Sunday, January 08, 2006

Freedom of Speech, automated

I was at some of the speeches and demonstrations at Democracy Island yesterday, and I'll make a few comments about that, but I'd first of all like to announce a great step forward for political speech in Second Life - the Ordinal Laboratories Kinetic Metaphor Propagator v0.1.

bush gun closeup

In patriotic red, white and blue, it enables high-speed, targeted message distribution - when a Political Statement hits a free-speech recipient...

* it shouts "IMPEACH BUSH! U.S. OUT OF IRAQ! NO BLOOD FOR OIL!";
* it explodes in a shower of IMPEACH BUSH signs;
* it plays "Stars And Stripes Forever";
* it sends whoever it is flying some considerable distance. This is an important part of the message, as being pushed out of the sim is a metaphor for Bush being ejected from office. Do you see?

explosion of bushes

Now, some readers may be thinking that this sounds like a push gun and it might be in some way annoying to those people affected by it, but what harm is being done to you? You can just ignore the effects if you want, just like you can just ignore telemarketers or enormous multiple multicoloured signs floating in menacing clusters around your property 24-7. I tell you, if you find this annoying it's really because you can't accept the truth of the message. The irritation you feel is merely cognitive dissonance.

---

Post Scriptum: You might be interested in watching the excellent piece from BBC1's Newsnight called "Do avatars dream of electric racoons?" See Jeremy Paxman as an avatar! A general overview of MMO... well, Massively Multiplayer Online Things, I suppose, with a long section about Second Life.

Friday, January 06, 2006

The Punitive Boringness of Agriculture

I'd heard about the Cornfield on the SL forums before, but I always thought it was a joke, until a few days ago...
Nimrod Yaffle, a resident of the virtual world Second Life, has revealed details of a bizarre and dark prison Second Life's maker Linden Lab is now using to lock up criminal avatars. Dubbed the "The Corn Field," the moonlit environment contains only rows of corn, two television sets, an aging tractor and a one-way teleport terminal allowing no escape. It exists as an alternative to standard disciplinary measures, which traditionally prevent access to Second Life completely.

After breaking Second Life's rules, Yaffle was informed via email by Linden Lab that he was being sent to The Corn Field. "I thought it was a joke," Yaffle told me in-world. "I never even knew it existed before I went there, and by the looks of it, a lot of other people didn't either." Rumour and speculation about the prison has been running amok in the Second Life community since word of The Corn Field spread, but until recently the prison simulator hadn't been officially confirmed. (Clickable Culture)
This was even mentioned in the Guardian, or at least on their games blog. The thing is, it makes me want to visit, and I'm too much of a wuss to actually do something that could get me banned. Perhaps we could have tours organised, invisible to the criminals themselves.

Thursday, January 05, 2006

In which the Safety of Vehicle Passengers is Discussed

One thing I've always found annoying in SL is the number of times people fall out of vehicles. I've been on a few newbie tours with the SPSL, where we descend on a Welcome Area, grab a couple of newbies and whisk them off, and without fail at least one of them jumps out. (Perhaps that says something about our conversation.) Similarly, when I was attending a building session on Tuesday, held on a platform high above the ground, people seemed unable to stay seated.

One of the problems is that you often don't realise that whoever it is has fallen out until another passenger looks around and says "oops, we just lost X". In a vehicle, that means they're back somewhere on the ground, one of many possible green dots, and sometimes you can't find them at all. I therefore decided to create a script that would at least inform the occupants when this happened.

I shall be putting it in my showroom later on, as it now works, but it is based around the fact that when somebody sits on or gets off an object, the number of linked primitives in that object changes. The avatar is treated as a prim itself. This triggers an event which can be detected by a script.

Scripts can also obtain a list of the prims that make them up, as well as the names and keys of those prims. It is quite easy to find out the name of somebody who has just got on board, as they will simply be the last one on the current list. (The event actually tells you what their key is so if you were only concerned with people getting on board, you wouldn't need to bother with prim lists at all - you could just get their name straight from that.) If they've departed, though, clearly they're not on the list any more, so you have a slight problem.

The pseudocode for my script looks something like this:

On startup
Get a list of prims in the object (we assume that nobody is sitting on the object). This is the "base list". Any more prims will be treated as passengers.
Also save this as the "old list" to start with - see below.

When a prim is linked or delinked
Get the current list of prims in the object ("new list").
If linked (more prims than previously i.e. someone has gotten on):
* Say "hello" to the last name on the "new list".
If delinked (fewer prims than previously i.e. someone has gotten off):
* Go through all the names on the "old list" that aren't on the "base list".
* For each of these, check whether they are still on the "new list".
* If not, you've found who's gotten off. Say "goodbye" to them.
Either way, after you've finished, set the "old list" to the "new list".


In practice you don't actually need to save the "base list" since you don't care what's on it - all you need to do is save the size, and only check items on the old and new lists that have an index greater than that size. If there are 18 objects on the base list you know you only need to check objects 19+ to see who's left, because those are the only ones who will be passengers.

The effect of this is that the object you drop the script into whispers "Hello, X! I now have Y passengers" or "Goodbye, X! I now have Y passengers" on sitting or unsitting, which can be heard by everyone. One could also add any other functions that one wished to activate on boarding or disembarking, giving notecards, rezzing a platform underneath them etc. Because it also has the key of anyone who's left, I thought that a possible enhancement might be to then set up a sensor to find out where they'd actually got to - say whispering every few seconds "X is 25m north-east" or something - which would help you find them.

Monday, January 02, 2006

A live demonstration

Should anyone wish to experience the automated vehicle touring thing that I have been talking about, there's a demonstration available at my home area (see sidebar). Sit on the vehicle, touch it, it will go.

One thing is that you should remove all hovering or other flight attachments that you might have, because they will also hover the vehicle itself and interfere with its movement. I don't think that there's any way around this.

The wave of an alternate future

After all of my complaints here and the addition of several "lovely" new ad blocks in my local area, finally, someone has actually created one that looks nice - see right.

It's tasteful, it doesn't glow or spin or bob up and down, and it's actually useful as well - go inside and click on the computer screen and you get an up-to-date list of other property for sale in the local area. I hope that it will be the wave of the future, only a lot of people seem to think "the future" means "glows and moves around and has the design quality of a home page circa 1996".

Clockwork and balloons and an actual building

So what have I been making and doing?

A clockwork blunderbuss: I decided that it was time to prove at least some retrotech credentials given that I claim them, and I have long had a gun that shoots any object loaded into it (for physics testing - a terrific euphemism for "blowing stuff up") so after a meeting with the Victorian Retrotech Society I made one out of good old-fashioned wood, polished brass and iron.

clockwork blunderbuss

Yes, I know, it's a very nice hat. See the little key at the top of the magazine mechanism? No, look closer. It's not a sight, it's a key.

clockwork blunderbuss closeup

Every time one fires the gun, that key turns an eighth of the way anti-clockwise with a tick, until the magazine is emptied - at which point, through the miracle of self-winding, it winds itself all the way back up again. I have, you see, developed a mechanism for postponing the input of all of the energy required until an undefined point in the future - at that time there will have to be some sort of high powered steam plant involved, but I'll be long gone.

Nobody will ever notice this key turning, of course, unless they suddenly become confused at the fact that they can't fire and look down to try to find where the "tick tick tick" noise is coming from. But it's the little touches, you know. There is also a flurry of sparks when one fires a "bullet". (My favourite is the anarchist bomb, which bounces around until the fuse expires and then explodes in a shower of shrapnel.)

A mechanism for the production of touring vehicles: It seems that many groups in Second Life are now interested in hosting tours, for fun and/or profit. I spent a very long time trying to use such functions as llMoveToTarget to construct objects that one could sit on and which would propel one towards a destination.

I ran afoul of a concept known as "energy", which is not the same as the energy that we all know and love from physics classes, but instead is a concept dreamt up by Linden Labs with the intention of confounding scripters and making their projects throw up inexplicable errors. Simply put, objects use up "energy" when moving themselves and other objects around, and only get energy back at a rate inversely proportional to their mass. No, this doesn't make sense, I'm quite aware of that. Yes, tiny objects end up being more efficient propulsion than larger ones.

In the end I simply modified my autopilot balloon script (see previous) to read destinations sequentially from a notecard instead of requiring a pilot, as "vehicles" (i.e. any object designated thusly by the scripter) are not subject to energy restrictions, though require somewhat more fiddly techniques to move around. And now I have a script which, when dropped onto an object along with a notecard specifying waypoints in global format, will cause said object and anything linked to it to fly in a reasonably realistic manner between all the points in order. Lines which are not global co-ordinates are either special commands (change height, pause etc) or are commentary to be read out to the passengers.

I've tested this fairly thoroughly and it works. All that's needed are vehicles to attach it to and courses to follow. The Socialist Party of Second Life and the Victorian Retrotech Society are both interested in this particular piece of difference engine trickery, and I am happy to oblige them both, though the last thing one would wish to see would be advertising blimps using the same technology, so I'm afraid that direct access to the script will be restricted to certain trustworthy groups and individuals only for the moment. I am quite happy to discuss the principles behind it, though, should anyone be interested.

And finally...

A showroom, of sorts: My home area has long been a rather desolate place, but now contains a small building filled with a selection of my creations, either for purchase for a nominal fee (nothing over L$50) or simply for free copy. Everything is modifiable by the purchase. I'm not running a business here. That would be trade. It is simply an area for intellectually curious gentlefolk to explore the details of my humble creations.