This Week in OpenSim Dev – week ending Saturday 8th November 2008 November 10, 2008Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, twiod.
Hello everybody. This is a short summary of OpenSim development for the past week up until the end of last Saturday, as culled from our source code repository logs. After any general news there are two sections. The first section – “Features and bug fixes”, contains prominent new functionality and bug fixes visible to users of OpenSim. The numbers in brackets in this section are the final svn revision numbers in which the work was completed for this week. This is right at the cutting edge so there is no guarantee that this functionality is stable.
The second section contains information about the infrastructure changes happening within the project. This is going to be a little more impressionistic than the features/bug fixes list, but hopefully it will give a picture of how OpenSim is evolving from week to week.
This week in OpenSim ( r7057 – r7202 )
- r7176 was tagged as the base for the 0.6 OpenSimulator release. An official announcement and binaries on the OpenSimulator website should follow in due course. If you need a stable revision you may well want to stick with this for the coming week, as fairly significant code changes are being made in OpenSim immediately after this tag.
Features & bug fixes
- Melanie made a change that may allow inventory items to be given to users that are not in the immediate vincinity or are offline (r7058).
- Homer improved the closing down of child agents on teleport (r7073).
- Rob Smart contributed a patch that implements osMessageObject(). This function allows an object to message another object with a known UUID through the LSL dataserver event (r7096).
- I exposed a client_throttle_multipler setting in OpenSim.ini, and set the default to x2 rather than x8 (it was effectively x8 before). This means that if the client has a throttle setting of, say, 250 kilobits per second, then OpenSim will actually send down data at 500 kilobits per second. This may improve performance in regions with high avatar numbers, though many other unrelated performance issues remain. This change should also reduce the incidence of terrain ‘craters’ and invisible objects (which are both a result of packets being dropped due to an overloaded link). If you still experience these symptoms you may want to try decreasing the multipler further. If you want ultra-fast texture downloads you may want to try increasing the multipler. A better solution for all this would be to allow higher network settings in Second Life environment clients (r7118).
- Sean added an e-mail field for users in the SQLite and MySQL database adapters. StrawberryFride then contributed a patch to also added this to MSSQL (r7105).
- StrawberryFride patches that implemented llGetAnimation() (r7109).
- Thomas contributed a patch that attempt to fix problems with creating avatar attachment records when first attaching objects (r7121).
- Thomas contributed a patch that addresses problems with incorrect attachment offsets (r7121).
- Christopher Yeoh contributed a patch that implements an osMakeNotecard() function, subseqently improved by Melanie. This function allows a new notecard to be created in the prim’s inventory containing a list of strings (r7124).
- Homer fixed bugs in llTeleportAgentHome() and osTeleportAgent() (r7139).
- idb contributed a patch that fixes the jump function in LSL (r7146).
- idb contributed a patch that fixes problems with setting the physics, tempory and phantom prim attributes (r7156).
- Homer added better locking to the land management module (this handles parcels in OpenSim). This may fix occasional, hard-to-reproduce parcel related bugs (r7182).
- idb contributed a patch that properly persists prim attribute changes (e.g. phantom) in the database (r7193).
- Adam Frisby made a change such that packet queues are cleared when a client connection is terminated. This may resolve a memory leak where agents were closed that still had many packets in their queues (texture packets would be a major culprit here) (r7197).
- idb contributed a patch that implements PRIM_TEMP_ON_REZ and PRIM_MATERIAL in llSetPrimitiveParams() (r7199).
- Homer worked on friends interoperability between the 1.20 and 1.21 Linden Labs Second Life viewers on OpenSim.
- diva contributed patches that make it easier to implement alternative grid schemes, such as the Hypergrid.
- Dr Scofield and Alan Webb worked on refactoring the IRC module. The new code also has a number of improvements, such as the ability to send chat in different regions to different IRC channels. More details in the documentation.
- Sean continued work on database layer oriented unit tests.
- I continued work on Second Life UDP session stack unit tests.
- I continued work on unit test infrastructure for scene testing.
- I made various stability improvements by not allowing exceptions on various threads to terminate the program. In principle this may stop some functionality working but allow other activities to carry on before the server is rebooted (e.g. a crash of a texture serving thread would stop clients receiving new textures, but would allow existing clients to continue chatting).
- Dahlia continued work on the meshmerizer.
- MW moved OpenSim configuration fields (those that don’t go to their own modules) to a separate ConfigSettings class.
- Melanie started writing infrastructure code for region crossing scripts.
- Adam started decomposing the massive IClientAPI class which contains all the signatures for methods that deal with the client protocol (send chat packet, receive object select packet, etc) into separate interfaces. This will make it much easier to implement alternative clients and virtual world protocols in the future.
- Tedd continued work on the Script Engine Component System. More details at his blog.