TL;DR
I’m releasing a lot of product updates due to a changed workflow. Skip to the bottom of the article to see which ones. Most products will see small or no functional changes that won’t effect your use of the product. If you’re really paying attention, you might see the memory footprints of the objects go down. Products that have significant functional changes are highlighted and link to articles covering their changes.
What’s going on?
During the time I’ve been creating content for Second Life, I’ve actively tried to make my customers happy by making support a priority. This means that I’ll drop what I’m doing and come and help you solve whatever problem you’re having, until you’re a happy camper. This attitude has sometimes left me confused about which script is where and in what object.
Tracking script versions in SL is hard, far harder than it should be. I should know, I’ve been a software developer for my entire career (although I now run the team instead of actively code) and I track software changes all the time. SL doesn’t make it easy, there’s not even a supported way to insert a version number into a script! You have to hand code it, and that previously meant hand coding it in every copy of the script in-world.
So, I’ve decided that I’m going to rigidly standardize my workflow, and I’m going to standardize it around a build system that includes running code through LSL PyOptimizer.
As the optimizer is not part of Firestorm, input (the script) and output all happen on my computer and not in-world. To save myself copying and pasting the processed script into multiple copies of objects in-world, my in-world scripts now consist of just an #include directive to include the optimizer’s output. There are two sides to this.
Firstly, I get the benefit of far less confusion over which in-world script I changed to fix your problem. I can no longer change a script in-world, I have to edit it on my computer and run it through the workflow. There is only one place the script resides, and it’s right there on my computer in a version controlled repository.
Secondly, you get the benefit of far more memory miserly scripts due to the optimizer. The less memory used in a region, the faster it’s going to go.
And lastly, there’s a downside (there’s always a downside). The downside is that it might take me a few more minutes/hours/days to solve a problem if you experience one, because I can’t get instant gratification by editing the script in-world right there in front of you. I have to run the workflow. And as that takes my focus off the viewer, I won’t try and fix a problem on the spot like I have in the past.
As you might imagine, after creating for over eight years, I have a lot of script to change over to this new system, and you’d be right. I’ve been working on it in all my free time in SL since just after the New Year, and I’m happy to say I’ve finally completed the work for all the scripted products I sell. I won’t mention the dozens and dozens of scripted objects I’ve created that I don’t sell. They’re next!.
Changed Products
In the next few days, I plan to redeliver the following products to customers that have purchased them in the past (if you can see this article, marketplace and my store vendors have already been updated, so you can request a redelivery, or wait until I send you the update):
Product name | Old Version | New Version |
---|
BF Build Platform | V1.0 | V1.1 |
BF Wind Chimes | V1.2 | V1.3 |
BF Wind Sculpt | V1.1 | V1.2 |
BF Globe on Stand | V1.1 | V1.2 |
BF Paper Fan | V1.0 | V1.1 |
BF Simple Skate HUD | V1.0 | V1.1 |
BF “Swingin’ on the moon” Clock | V1.0 | V1.1 |
BF Paper Lamp | V1.0 | V1.1 |
BF Rain of Stars | V1.0 | V1.1 |
BF Pose HUD | V1.0 | V1.1 |
BF Music box | V1.1 | V1.2 |
BF Love Note | V1.0 | V1.1 |
BF Word Scrambles | V1.2 | V1.3 |
BF Bird Box Demo | X02-031 | V3.0 |
BF Bird Box | X02-031 | V3.0 |
BF Coffee Tin Bird Box | X02-031 | V3.0 |
BF Telescope | V3.10 | V4.0 |
BF Carbon Truss Telescope | V1.32 | V4.0 |
BF SDSS Display | V1.22 | V4.0 |
The version numbers are listed so you can see if you have the latest delivery. The new version number is in the description of each box containing the product, and those boxes are no modify, so there should be less confusion as to which box is which version too!
There are a few footnotes to explain things you may find strange in the table. And if the name is a link, it links to a post explaining exactly what has changed with the product because you might have to change your configuration, or the way you use the product (hopefully for the better!).
Questions?
If you have any questions about any of this, please don’t hesitate to contact me either in-world by IMing me or dropping me a notecard, or you can use the contact form on this website or email my support email address, and I’ll get right back to you.
[1] This version number format is a holdover from days when I used to program in assembler. I’m not sure how I managed to go a number of years without noticing that it was formatted like this. A number like V3.0 is far easier for you to understand.
[2] There’s a large jump in the version number here. Don’t worry, you didn’t miss out on anything! As the scripts that make up the telescope system are now shared between all three systems, it was getting tedious to maintain multiple version numbers that were in effect, meaningless. So I decided to jump all three systems to a common version number.