I think I must have bad karma or something. I spent several weeks looking at what technology to use for my upcoming game project. After much research and community feedback, I decided to use Haxe with NME using the Awe6 framework. Well, that plan didn’t last long, dying with this statement:
OpenFL is an advancement of everything there is to love about NME, and NME is taking a backseat so it can focus on being a stable, powerful C++ backend for native platform support
You see Joshua Granick, the creator of NME just recently announced OpenFL a replacement of sorts for NME, or more accurately I suppose, a replacement built on top of NME. Here is a blurb from the OpenFL announcement:
OpenFL combines years of work to provide for the industry-standard Flash API without the Flash plugin.
In order to succeed on mobile, it is important to take of advantage of device hardware, and to be as native as possible. That is why OpenFL allows direct access to device features using extensions, why OpenFL makes it possible to target iOS, Android and BlackBerry as fully native applications, and to accelerate the Flash API using OpenGL for a fast, productive development environment.
OpenFL is free, hosted on Github under the permissive MIT open-source license. We invite to join as we build the best 2D development platform for the next 5-10 years.
Though Flash is a popular API, we believe in allowing the community to innovate in new ways to build games and applications. That is why OpenFL seeks to also provide an open platform, including OpenGLView, an accelerated way to build content for Windows, Mac, Linux, iOS, Android, BlackBerry and HTML5 using the WebGL API.
Elsewhere in the comments he says:
NME is going to become a “native media engine” that can enable Haxe frameworks to run on native platforms. It is used as an internal dependency for openfl-native
On one handed, this could be simply looked at as a rebranding of sorts of the NME project as well as a port to the (just released) Haxe 3 language. That said, I personally think its a really stupid move.
Moving closer to the Flash branding seems… dumb. Perhaps I am in the minority in that my interest in NME had nothing to do with it’s Flash roots ( I have zero prior Flash experience ). To say nothing of the fact the Flash brand isn’t exactly thriving at the moment. With some people it’s an outright swear word! Another thing I really didn’t like about the above comment was:
and HTML5 using the WebGL API.
Suddenly it sounds like the HTML5 target just became HTML supporting WebGL. Basically meaning Internet Explorer and 95% of mobile browsers just got dropped from the supported list.
Back to OpenFL and NME, even if it is a simple rebrand, that has dire side effects, especially as many of the library names are being changed. Suddenly there isn’t just one place to go for information, or one source of documentation. Now you have the NME version and the OpenFL version. If it is not just a simple rebrand, that is even worse. I love shiny and new, but no way in hell I am going to start a new project on such a bleeding edge technology, especially coupled with the fact it is also tied to a new Haxe version. As we have seen with Lua and Python, new versions don’t always take!
So why not simply use Haxe/NME as it exists today? Well frankly, one of the biggest downsides to NME was the bugs that crop up. I encountered a couple during my evaluation and often this would have been a deal breaker. That said, the NME folks moved fast, released fixes often the same day, so I had faith that any problems I might have encountered would be quickly fixed. Now that NME support is “taking a back seat”, I no longer have that confidence.
Don’t get me wrong, I am not saying OpenFL is a bad thing, it’s really too early to tell that. In a few months/years time, OpenFL might be vastly superior to NME. That said, I can’t hitch my boat to a technology that is that young, nor can I hitch my boat to a technology that has been basically retired. Maybe for my next project I will be able to use Haxe and NME…. er OpenFL. Just not today.
Guess it’s time to take a closer look at libGDX?