I’m already writing some sort of “cookbook” with small examples on how to do the most common things with the new Lua API. I hope that this will help to build stuff that actually works.
The new API is actually just a bunch of glue code to pass the C++ API down to Lua. You can use the C++ documentation because both APIs are basically the same with the exception of namespaces. The API is completely native and split up in three parts for now: NeoCore, NeoEngine and NeoGui. You can load them as you wish by using the “require” function and it will just work.
Granted, the old API makes some things insanely simple. But it also hides loads of features that you can’t access even if you need to. The new API needs some work to become even better with the benefit that all changes are also reflected in C++.
There is one thing to be aware of: You now can have NULL pointers in Lua. That means: If you destroy an object, keep in mind to not use it any more!
Neo is in principle production ready. There won’t be any dealbreakers any more until 1.0 that make all your projects unusable like this release does. The API will be refined but not completely changed and all “under the hood” changes won’t show in your games at all (in form of incompatibilities).
The 2D engine needs some work to get to the top and the 3D rendering engine needs a rewrite for Vulcan/OpenGL 4. But that is nothing you should worry about when creating your game. They will just work when they arrive.