So I’ve decided that it’s time to do another series about Haxe development here on GameFromScratch. I did a short five part tutorial series on using Haxe and NME a few years back before it was rebranded OpenFL, but haven’t really touched it much since. Before jumping in to a Haxe game engine, I had to decide which game engine to jump into! Part of my decision is going to be informed by a poll I’m currently running on Twitter. Of course, it’s useful to take a current look at the Haxe game engine landscape. I did a post entitled Choosing A Haxe/NME Game Engine three years ago, but simply put, a lot changes in 3 years! So what follows is a quick roundup of the most popular Haxe based game engines and a quick blurb about each. If I miss one, please be sure to let me know in comments below, on Twitter or via email!
Oh… and this is not a review in any sense of the word. I have very little working experience with the majority of engines I am about to cover and have no informed opinion to share as a result! They are also in no particular order unless you can consider “completely random” as a type of order!
Haxe Game Engines
Flash Engine Ports
HaxeFlixel
HaxeFlixel is an interesting story… it started life as a Haxe port of the popular Flash 2D game engine, Flixel. Then, well, Flixel basically died and HaxeFlixel lived on. In fact HaxeFlixel 4.0 was just released, while Flixel hasn’t been updated in years. It is a complete 2D game engine for Haxe.
HaxePunk
Wow, I could almost copy and paste the HaxeFlixel entry for HaxePunk. It also started life as a Flash library port, and since lives on while it’s inspiration is no longer updated. That said,FlashPunk is much less active than HaxeFlixel.
Haxeling(Starling Port)
https://github.com/Haxeling/haxe-starling
This one is more of a WIP than the prior two, and is a port of the popular Starling Flash library to the Haxe language. There are limits right now such as the lack of an HTML5 target and a few missing features. Starling is perhaps best known for being the framework Angry Birds was initially created in.
Away3D
https://github.com/away3d/away3d-core-openfl
A port of the Away3D 3D flash framework to the Haxe language. One of the few 3D libraries that has model loading support out of the box (oddly…). Obviously from the name, this is a 3D focused library.
Popular Haxe Frameworks
Kha
http://kha.tech/ || https://github.com/KTXSoftware/Kha
Kha is a low level framework whose design favors speed over other priorities. It supports 2D and 3D but again is quite low level (so no model api for example). Kha runs at the level similar to SFML, SDL or JGWL, with game engines built over top of it. Such engines include:
KhaPunk || Cycles || Komponent2D || Kha2D
These engines work at a higher level of abstraction (further from the metal), making use of Kha to provide multimedia functionality.
NME
https://github.com/haxenme/nme
NME is the library that lead to OpenFL. It is similar to Kha in that it provides low level cross platform implementation of the technical “stuff” that makes up a game, then more high level game engines are built on top of it. Haxe became OpenFL, but it seems there was a community that want to see NME continue as it was, so NME seems to have some life as well.
OpenFL
Starting life as an implementation of Flash API in a cross platform manner using the Haxe programming language. Basically it allows Flash developers to seemlessly transition to Haxe development. A number of engines are layered on top of OpenFL. As mentioned above, OpenFL was originally NME, although they have no evolved in different directions. OpenFL was used to make several commercial games such as Papers Please. HaxePunk, HaxeFlixel and Stencyl all are (or were) layered over top of OpenFL.
awe6
https://github.com/hypersurge/awe6
awe6 is awesome, but oddly never really seems to have taken off. I’m glad to see that it’s still under development even if there isn’t much of a community around it. awe6 is build around the idea of inversion of control (and dependency injection) and I really can’t do it justice in a single paragraph. The lack of a community though makes this very much not an engine for people that aren’t able to solve problems on their own. I did a closer look at awe6 years ago, and it should remain equally valid.
snowkit
This is one of the new kids on the block and a very cool looking collection of tools. Snowkit is composed of flow – a build tool, snow – a low level media library, luxe – a game engine built on snow, mint – a UI library, linc – hxcpp bindings to several popular game libraries (SDL, OpenAL, etc) and hxsw a string/shader library. The collection all together is snowkit and provides, with haxe, a complete framework for creating games. It’s a cool concept, but it’s also much more complicated due to all the moving pieces.
edit—To clarify, snowkit is an umbrella term for all of the above mentioned technologies combined as well as the community around it. The actual game engine is luxe, not snowkit.
lime
https://github.com/openfl/lime
Lime isn’t a game engine, it’s a cross platform media layer. Basically OpenFL and other libraries/engines are built on top of lime. It provides logic for windows, input, audio, rendering, networking, etc… in a cross platform manner. Obviously it’s pretty low level. Heck OpenFL is pretty low level and its over top of lime after all.
BabylonHx
http://babylonhx.gamestudiohx.com/
BabylonHx is a Haxe port of BabylonJS which I looked at in depth here. I like BabylonJS, it’s a great Javascript game engine with a clean easy to understand design. BabylonHx is an incomplete port of babylonjs… how incomplete I do not know.
Cycles
This one I know very little about, but I am going to change that, because the concept sounds really cool. Basically it integrates into Blender and uses Haxe (and under that Kha) as the programming language. Basically you create your game world in Blender and code the logic in Haxe. It’s similar I suppose to Blend4Web or BDX. The choice of Cycles is probably a poor one though, as Cycles is the name of the modern renderer for Blender. I am intrigued though… enough that I am going to download it now, so that’s the end of this list… 😉 EDIT- Doh… coming soon. Boo
The Ones I Missed
And the following are my wall of shame, the engines I missed and various members in the community pointed out to me (thanks for that btw).
Heaps
https://github.com/ncannasse/heaps
Heaps is a game engine by Nicolas Cannasse, who can basically be considered the father of the Haxe language, as well as CastleDB and other important Haxe projects. Heaps was used to make Evoland 2. It is a 2D and 3D game engine capable of targeting WebGL, Flash 3D, Mobile and Desktops using OpenGL.
Flambe
[Link Removed, URL down and hijacked]
A 2D cross platform Haxe based game engine including tools for importing Flash animations, creating particle systems and glyphs. Can target iOS, Android, Flash, HTML5 and desktop targets using Adobe’s AIR. Open source and MIT licensed.
Did I miss any (that aren’t unsupported or extremely unstable)? Which of these engines are you most interested in?