Archive for the 'Scripting' Category

Mono Beta Refresh

Monday, February 4th, 2008 by: babbagelinden

 The Mono regions on the beta grid were updated with a new simulator binary on Friday that resolved the following issues:

* SVC-1325 Negation of vector or rotation no longer causes a runtime error.
* SVC-1342 Boolean && and || now correctly produce boolean results.
* SVC-1327 Added support for llHTTPRequest.
* SVC-1319 Added support for http_response.
* SVC-1325 int *= float now works correctly.
* SVC-1361 Corrected erroneous sleep values for some library calls.
* SVC-1324 Fixed problem with vector and quaternion being incorrectly handled by the UThread Injector.
* SVC-1344 Fixed problem with type casting of return statements.
* SVC-1353 Limited length of concatenated lists and strings.
* SVC-1326 Changed llGetFreeMemory() reporting for Mono scripts to return 0-64K and handle script reset correctly.
* SVC-1312 Fixed support for old scripts on the LSL2 VM.

Unfortunately the redeploy took longer than expected and so the grid wasn’t available for the office hours at 3PM on Friday. We still plan to hold office hours in Sandbox Goguen MONO on the beta grid at 8AM on Wednesdays and 3PM on Fridays. The chat log from last Wednesday’s meeting is here.

Thanks to everyone for the great response to the Mono beta test.

Posted in Preview Grid, Scripting |

There have always been limits on the length of the “Name” and “Description” fields on objects. The name field is limited to 63 characters, and the description field is limited to 127 characters.

With the new 1.19.0 server, these limits are enforced when the fields are set using the llSetObjectDesc() and llSetObjectName() LSL functions. Previously, these functions would let you set longer names and descriptions for objects rezzed in-world. However, the names and descriptions would then be truncated if the object were taken into inventory, or in some cases if you edited the object. A couple of weeks ago, residents identified as having objects with long names or descriptions were contacted through e-mail to let them know that this change was coming.

Similarly, the object name and description can no longer be set to include the pipe (|) character. Previously, this was possible, but once again these characters would be lost if the object were taken into inventory.

We are aware that some scripts have used the name and description fields as a way of storing state information, and that the 1.19.0 server may break some scripts in some circumstances. The reason for the changes in 1.19.0 is to make the behavior consistent and predictable at all times, whether the object is rezzed, in-world, taken into inventory or given away. These changes also fix an exploit where a script could use excessively long object names to overflow the memory of other scripts that listened for chat messages.

As part of the rolling restart we implemented a fix for an issue on the Public Issues Tracker, SVC-674.

This fix may cause problems for scripts relying on long object names and descriptions.  Should you experience any difficulties please contact us via the support portal.

Mono Beta Launch

Tuesday, January 29th, 2008 by: babbagelinden

We’re very pleased to announce the beta testing of Mono in Second Life. Mono is a technology which will increase the speed of scripts running in Second Life. The goal is that everyone will experience reduced lag and improved stability and that it will be possible to script complex behaviours that were not previously feasible in Second Life.

With a mono viewer on a Mono region, normal LSL scripts can optionally be compiled and run on Mono. If you are a scripter we would love you to download the Mono viewer, connect to the beta grid, teleport to a Mono-enabled region and test your scripts on both the Mono and LSL virtual machines side by side. If you notice any differences in your script’s behaviour when running on Mono, please check this meta JIRA (SVC-1276). Someone may have already submitted a JIRA on your problem. If not, create a new JIRA report (SVC project), including a detailed description and a minimal LSL script that demonstrates the differing behaviour.

More information on Mono in Second Life can be found here. Note that we are sharing the beta grid with Havok4. You should download a viewer here; it will work for both Havok4 and Mono (previous beta viewers will not work with Mono, you need to download this one). Once you connect you will need to teleport to one of the Mono regions which are specified in the step-by-step instructions.  We will be holding office hours in Sandbox Goguen MONO on the beta grid on Wednesdays at 8AM and Fridays at 3PM where you can ask questions and report issues.

SLorpedo!

Monday, June 18th, 2007 by: babbagelinden

I’m currently recovering from a very intense, but enjoyable weekend at Hack Day London which Christopher Linden and I attended to help hackers mashup Second Life.

Paul Johnston and Nigel Crawley had brought a webcam, markers and reactivision software they were looking to put to use, so, as we were playing IceTowers with IBM at the time, we thought it might be fun to build a mixed reality version of the IceHouse game Torpedo.

It turns out that Torpedo is particularly well suited to a reactivision implementation as it relies on the position and orientation of pieces placed freely on a playing field, but judging torpedo hits in real life is difficult. It’s also a very simple game, so there was a slim chance that we could build it in 24 hours.

Our plan was to play the game in real life then publish the position and orientation data from reactivision to the web, then use LSL to pull the data in to SL where we could rez the pieces, launch the torpedoes and calculate the results. At the same time a second web cam would stream video of the board in to SL, so that we could watch the game play out in RL then see the results calculated in SL.

Working on the hack was loads of fun and team Supernova did a great job with help from Timeless Prototype in world. The software came together amazingly well but it wasn’t until we started running around scavenging tripods, glue guns, gaffer tape and white boards to nail together the hardware side that we started getting lots of interest from the other hackers.

In the end the lightning strikes, storms, leaks and lack of wifi meant that we didn’t complete all of the gameplay, but we managed to demo all of the technical aspects of the hack live in our 90 second presentation.

Everything we used was open source, so anyone will be able to finish off our work or build some other interesting computer vision application in SL. Nigel thought mixed reality spin the bottle would be good fun. Andy Piper has another SLorpedo write up here and a selection of pictures here. Chris took a video of the presentation, so hopefully we’ll be able to make that available soon too.

I’m already back working on the SL infrastructure, but it’s great to be able to hack on interesting SL applications once in a while and hopefully we’ll see some of the hackers at Linden Lab Brighton in the near future.

UPDATE: Team Supernova finished the game last week and ran it at SL.UK on Saturday, some SL footage of the finished game here: http://www.youtube.com/watch?v=bd-MoN9d_Nw

Last Thursday, we announced that we would host a Second Life Speech Gestures Contest in conjunction with the Voice Stress Test Extravaganza. We have since decided to postpone the Voice Stress Test Extravaganza, previously planned for this Wednesday, May 9. Fear not – the Stress Test will return, watch this blog for more information!

As such, we have extended the deadline for the Second Life Speech Gestures Contest entries until May 14 at 3pm PDT, providing Residents with an additional week to create and submit speech gestures. Please see last weeks blog post for submission guidelines and more information about the Second Life Speech Gestures Contest.

For those of you who have not been following the progress of the First Look: Render Pipeline Improvements project, we will no longer be supporting the old deprecated particle system after the next Viewer update. This includes llMakeExplosion, llMakeFire, llMakeFountain, and llMakeSmoke. This was not an arbitrary decision, but was made to improve Viewer frame rates (the deprecated functions are very inefficient), and to keep developers focused on improving the rest of the render engine instead of maintaining deprecated functions.

(more…)

Posted in Development, Scripting |

Around 2 PM PST I deployed a change to our inbound email processing system to reduce database load. It broke delivery of outside email to scripts. Email would be silently dropped without a bounce message. Email sent from one scripted object to another should not have been affected. I fixed the problem around 8 PM PST. I’m sorry if I broke your scripts.

The problem was an error in our “mailglue” script that links email from sources outside the Second Life Grid to in-world scripts. It is not related to the postfix configuration problem yesterday. Frankly, it got lost in the shuffle of our network outage earlier today.

Also, you may notice that the reply address for offline IM to email has changed. This is expected - details are in last month’s blog post IM to e-mail return addresses changing. This change allows us to significantly reduce the database load related to IM processing.

Thanks for your patience as we work to improve Second Life’s performance. Thanks also to Temporal Mitra and the folks at rpgstats.com for their help in diagnosing this.

Augmented Virtual Reality

Tuesday, February 20th, 2007 by: babbagelinden

At a very interesting session at Euro FOO last year on using Second Life in real life, Claus Dahl commented that Second Life is potentially a great platform for prototyping networked augmented reality applications. Everything in Second Life has an Id, everyone has a HUD and scripts in Second Life can use llSensor to scan the local area to read the Ids and llHTTPRequest to retrieve information from the web associated with those Ids. Second Life is a world in which everything has an embedded RFID tag and everyone can have an RFID reader, internet connection and augmented reality display for free. We can start prototyping very large scale augmented reality applications in Second Life today.

I’ve been meaning to experiment with these ideas ever since Euro FOOCamp, so it seemed appropriate to finally start hacking some LSL about when I needed a presentation for BarCampLondon2 last weekend.

(more…)

Thanks For The Memory

Sunday, January 21st, 2007 by: babbagelinden

As Cory announced at SLCC last year, work on embedding Mono in to Second Life as a next generation scripting engine has been on the back burner while we concentrate on stability, scalability and capabilities. However, the work on Mono took a significant step forward last week.

(more…)