Whats New in 1.5

halfnelson edited this page Feb 26, 2014 · 7 revisions

It has been a little bit since the last MOAI release, and the main branch has had a lot of work done.

First the big things:

Feature merge from Zipline

  • Massive rework of the garbage collection system to simplify object tracking. This solved one of the few remaining moai crashes
  • Reworking of the AKU Modules API. All of the modules (box2d,chipmunk,untz) are using the same api and are linked with the host-modules project instead of the host. This allows people to create custom hosts without having to generate an #ifdef soup. The #ifdef soup is all tucked away in aku-modules and a host developer only needs to link against it and call the 4 methods it needs.
  • Patrick got sick of working with GLUT and created a SDL host in host-sdl folder
  • A flag to MOAIAction to disable its auto-stop on no children

A New Build System

The gc changes and massive merge from zipline broke a lot of the build files (ios, osx projects, android make files, vs solutions). Turns out merging xcodeproj and sln files is a royal pain. The solution files and project files were ditched and the following added:

  • The CMake build system that was in place for the linux and blackberry hosts was extened to include all hosts
  • Luajit support was added to all platforms (via cmake scripts)
  • create-project-* scripts were created that allows you to generate vs2008->vs2013 and xcode project files.
  • Changes to a project can be recorded once in the relevant cmake script and all platforms should work instead of maintaining 6+ build configs
  • Plugin support was added for installing modules which are outside the moai sdk (other repos) More
  • Custom host support was added for compiling a host outside of the moai sdk repo. More
  • Support for compiling with Ming-w64 for a completely open source experience on windows (no more vcruntime to distribute)

Additional Features

  • Vector Pathfinding (MOAIVecPathGraph)
  • Box2D Closest Raycast Exposure
  • Twitter support in android
  • MOAIShader was enhanced with the 4x4 matrix and given access to UNIFORM_WORLD_VIEW
  • A faster and smoother android host with working keyboard support.
  • MOAISafariIOS is now MOAIBrowserIOS and MOAIBrowserAndroid added
  • Visibility can now be inherited!
  • Google Play Services
  • Updated Tapjoy and Vungle
  • MOAISim showCursor and hideCursor support
  • Documentation improvements
  • Chartboost for IOS and android
  • You can now EnqueueJoystickEvent from the host.
  • New HTML/JS host based on emscripten


  • Android logging support repaired
  • VFS works correctly on all platforms
  • A heap of lua stack overflows
  • Fixes to JSON parser and encoder
  • Textbox string bounds calculations fixed
  • PVR support working now

What didn't make it

  • Blackberry support is untested with all the changes
  • NaCL support is untested with all the fixes. Maybe this should be ported to PNacl or just use the HTML/JS host if possible

Breaking changes

  • [C++] The AKU Module interface is different and as a result any custom host will need to be updated to link against aku-modules.cpp and remove calls to modules from the host.
  • setInterface() set a metatable for the membertable, not an index as previous. So when using set interface a small shim might be needed:
        function setInterfaceLikeOldWay = function(self, newInterface)
          local interface = { }
          interface.__index = newInterface

This means that the flower library will not work without a small mod like above to the class implementation.

  • [C++] MOAILuaRef is now split into MOAILuaStrongRef and MOAILuaWeakRef. So calls to MOAILuaRef->getStrongRef etc need to be replaced with a MOAILuaStrongRef member and a getRef call
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.