We just pushed out a new beta release. There are a lot of small bug fixes and incremental changes in addition to integration with OpenSSL. The latter turned out to be a bit more involved than anticipated and wound up taking up a good chunk out of last week. There's more coming soon: we've been putting the framework through its paces with both internal and external projects. Of course, bug reports and feature requests are welcome as always.

Some notes on the latest additions and changes:

OpenSSL We've verified the build on vs2008, vs2010 and xCode (iPhone only; OSX uses the system's OpenSSL) and Windows NDK. We'll fix NDK on OSX this coming week; just didn't have time to get to it last. This is a stripped down version of OpenSSL used to support HTTPS via libcurl. We've removed a lot of the additional algorithms. If you need them, they should be straightforward to add back in.

Box2D Fixed a bug causing props attached to sleeping Box2D bodies to not update if the body is moved (via setTransform). Added destruction queues and changed the 'destroy' methods. It is now possible/legal to call 'destroy' on any Box2D primitive from inside a collision handler. The system will queue the request and destroy the fixture/body/join on the next update. Updated MOAIBox2DArbiter to expose normal and tangent impulses. Added 'setContactEnabled' to MOAIBox2DArbiter. This may be used from inside collision handlers to ignore specific contacts. Added more granular control for collision callbacks - now possible to associate a category mask with a collision listener so that undesired collision events may be ignored.

Particles Another revamp - our apologies. This version should be close to final. The particle commands are back to being assembly-like, but the overall size of the instruction set was reduced by specifying particle register addressing through parameter manipulation instead of by creating alternate API methods. Updating your particle systems to use the new API should be straightforward - the latest API can do anything the previous version did and more.

MOAIImage Added 'bleedRect' and 'copyBits' to MOAIImage. 'bleedRect' copies a border of pixels from inside a rectangle to outside. You can use this to preprocess packed textures to avoid seams when rendering them as tiles. 'copyBits' simply copies a rectangle from one image to another. Added 'writePng' to MOAIImage. The png writer is still limited and will not handle all formats - it's only been tested with truecolor 24 and 32 bit images.

JSFL Flash Exporter There was a bug in the Flash exporter causing screen rectangles to be 2 pixels wider than they should be. We also improved layout in the texture packer. We've been using this exporter a lot for both Wolf Toss and Chronosaur. It still has a way to go, but should continue to get attention as the project develops.

MOAIGrid MOAIGrid now differentiates between 'tile size' and 'cell size.' A grid's cell size controls the spacing of each cell in the overall grid. It's tile size controls the dimensions of tiles inside cells. The new MOAIGrid.setSize is overloaded to accept an offset for tiles as well as tile and cell dimensions. MOAIGrid serialization was also updated to account for these new fields. We're using MOAIGrid and tile maps from Tiled extensively in Chronosaur. Will share a tutorial on this soon.

MOAITimer Keyframe Listener MOAITimer now supports event listeners on individual keyframes. This may be used to trigger custom actions from within a keyframed animation. One of our partner studios is using this to time game logic and sound effects.