Monkey 2 is a great new free and open source language by the author of Blitzbasic, Blitzmax and Monkey. It has many features and I can’t tell you how much fun I’ve had coding with it since it’s release. It’s still a relatively new language but I think it has a lot of potential if it can get enough support behind it.
At usual with Mark Sibly (the author), he’s managed to keep his trend of implementing an intuitive syntax that makes it very easy to use and in Monkey 2 you have the combined features of Monkey which could compile to many platforms including iOS, Android and HTML5, with the power of Blitzmax which allows you to easily link to and make use of c and c++ libraries. On top of that in my tests so far it’s shown to be at least 5 times faster than Blitzmax.
It works by translating all of the Monkey 2 code into C++ and compiling that into an ultra fast executable. For HTML5 it makes use of emscriptem so you can run your code on the web.
Some of the language features include:
- Generic classes and methods.
- ‘First class’ functions.
- Lambda functions.
- Struct type that provides value semantics.
- Fibers for easy asynchronous programming
- Operator overloading
- Class extensions
- Fully garbage collected
- Multi-target: Windows, Macos, Linux, Emscripten, Android and iOS.
For more info about those features and more head on over to http://monkey2.monkey-x.com/about-monkey-2/
Of course it also comes with a powerful 2D graphics framework Mojo 2 which is perfect for creating your next game with, and if you want it even easier Playniax have developed their game framework for Monkey 2 as well which is also free to use.
The TimelineFX library for Monkey 2 includes all the same features as the Blitzmax and Monkey versions, and is based on the code I wrote for Monkey. It also includes a handy collision and quadtree system if you need something like that. Everything is fully documented within the code but hit me up by email or on the forums if you get stuck. If you find a bug then create an issue on GitHub and I’ll squash it as soon as I can.