One of the great things about being a self-employed software developer is that you get to do the wide range of activities that comprise the designing, building, testing, deploying and marketing of a new software application. It's simply impossible to get bored and it's certainly been a great ride creating MiceOnABeam and being able to announce it's general release.
Free and Professional Versions of MiceOnABeam
With the general release MiceOnABeam is now provided in Free and Professional versions. A Free version will always be made available with each new release as I feel strongly that's it's important to get the program out there and make it available to everyone regardless of their ability to pay.
Aside from a couple of restrictions (code generation is limited to a maximum of five states and the new Performance Analysis feature is disabled) the free version is otherwise fully functional and can be used to create scripts for the Second Life world.
At the same time I'd like to defray some of the expenses involved in developing the program so I've created a Professional version which has no restrictions. A license for this version can be purchased for $L3000 at Second Life's XStreet Marketplace.
The Model IS the Implemention
One of the key benefits developing a MiceOnABeam model for a script is that the script's architecture not only becomes clearer to understand, but is actually represented by concrete design components that are automatically translated to LSL code. In other words, the model is the implementation!
This enables the development of a whole range of features that can operate at the abstraction level of the model itself and provide higher-level insights into the design than would otherwise be available through a similar analysis of a script coded directly.
The new Performance Analysis feature is an initial step in this direction. Read on below for full details.
Delays and lag are significant issues to be considered when developing scripts for the Second Life world. As a result scripters must pay careful attention to the execution times of processing intensive activities or algorithms.
To address this need, MiceOnABeam models can now be automatically instrumented with LSL code to measure and report execution timings for selected components within a script model. This is a powerful new feature that can help users identify performance bottlenecks in their designs.
Each model component type can be configured to monitor either all usages (e.g., monitor all States in the model) or only particular instances of that type.
For monitored components users can select to output the number of times a component's code has been executed, it's cumulative execution time and it's average execution time.
STATS>> *** PERFORMANCE STATS *** Count Tot Time Avg Time
[09:14] Object: STATS>> EVENT_listen: 3 2.940365 0.980122
[09:14] Object: STATS>> EVENT_sensor: 0 0.000000 0.000000
[09:14] Object: STATS>> EVENT_timer: 8 0.719490 0.089936
[09:14] Object: STATS>> EVENT_touch_end: 2 0.789647 0.394824
Down the Road
Next up is the development of a library of free re-usable MiceOnABeam script models. Given that visual scripting is new for many scripters (or perhaps they used modeling techniques for analysis and design- but not for implementation), I recognize that it is essential to have a set of reusable building-blocks to help new users get started.
The availability of building-blocks together with MiceOnABeam will also hopefully encourage and enable Second Life members who have been intimidated by the complexity of programming to augment their SL experience by being able to add behavior to their SL creations.
An open library will also be made available on the MiceOnABeam website where contributions by users will be made available for anyone to download and use.
Later in the year and contingent upon Linden Lab plans, MiceOnABeam will support the use of the C# language for use within a script model and will generate a complete C#-based script.
For full details on the release please check out the Release Notes.