Today I just wan’t to be brief and concise about a discovery I made a few months ago that completely blew my mind. That discovery is called HaxeFlixel. It is a 2D game engine and it rocks. It rocks hard and I totally adore it.
Yeah, that’s it.
What?, you still there?
Ok, ok, I’ll elaborate a bit more on my reasons for this love, but only because you insisted.
It’s easy to set up
Ok, this may not sound like a big deal, considering it would be something you only have to do once and then you can just forget about it for eternity. That may be true, but in practice trying to install and configure a development environment for a specific engine can be a complete pain in the ass. Specially if it involves the use of Eclipse (God i hate that thing).
HaxeFlixel just plays it cool and fast. You open up the terminal, type a few lines and wait for the whole thing to get installed. It works fast a as you would expect, and it even allows you to integrate your projects with Sublime Text, which is absolutely lovely as well. After this you just create a new project and HaxeFlixel conveniently creates the file structure and some boilerplate code for you to get started as soon as possible.
No messing around with paths, configuration files or process that don’t go as planned. This thing is running in less than 5 minutes.
I mentioned how the basic project template creates a few folders and classes for you to start working with. Apart from all these classes you get a project.xml file, where everything related to your game¡s configuration is stored in an easy to find and edit way. You also get a Reg.hx class, where you can store references to whatever you want, from local paths to images or sounds, file names or even your own savegame structure. It is completely easy to access from any class and it works just as you would expect it to.
On top of that the actual engine way of working is really simple and easy to get used to. You get your fair share of PlayStates, Sprites, Groups and effects, which are all super nice and easy to use and configure but they also come bundled with a lot of functionality and methods that just save you time. In fact, I think I haven’t written that few boilerplate code in years. Sprites have a simple and comprehensive way of interacting with each other, their class is easy to extend and the engine supports interaction between them in an easy to understand way.
If you are familiar with ActionScript or some other 2D engines based on the Scene + Objects approach (like Cocos2D or SpriteKit) you will be right at home with this one.
Works frickin’ everywhere
Yep, it is true. This thing compiles and exports your game to almost any platform you can think of. I’ve tested it on my browser, as a flash applet, on my android phone, on the iOS simulator, as a Mac/Linux/Win desktop application….
It works flawlessly on all these platforms and in fact you can test your game in a big bunch of platforms in no time at all. It’s just like magic. I’ve tried some other engines with good export capabilites, like libGdx but the process was full of drawbacks, configuration issues and so on. It worked all right, but the process felt slow and clunky. Haxeflixel just knocks its fist on the table and just gets the job done. It is that simple.
Debugging is not a hellish nightmare
HaxeFlixel comes bundled with a handy debugger that lets you track every object added to your running scene at any moment. It also let’s you pause at any time in order to test frame by frame interactions of objects and it also comes with a handy profiler, that will let you know when things start to get out of hand. It has a nice interface that you can toggle right from your code and that appears elegantly above your game screen. Compared to other debugging situations I’ve seen myself dragged into this made me cry. Of joy.
It’s just fun to develop for it
Ok ok, enough infomercial fro today. I love HaxeFlixel, you got that part already. But being serious for a moment. I have to say that this last 2 months that I have spent trying to get something done on this engine have been among the best I’ve ever experienced since I started making games. HaxeFlixel just makes my life so much easier that I can finally focus on making my game the way I want it to be instead of just messing around trying to figure out why some class is crashing or why can’t I run my game on Android without a problem. It just feels that with it I can focus on whats important. And in the end you are here trying to code your game, and make something interesting out of it. You are not here to be an expert on game engines with zillions of half-baked funcionalities and a promising future. WHat I want here and now is something that runs what I want and that on top of that workis with me allowing for faster development time and less headache and crying time.
And HaxeFlixel manages just that. In a brilliant, elegant and simple way.
3 thoughts on “A love letter to HaxeFlixel”
It doesn’t work everywhere. Haxe/OpenFL still doesn’t have a WP8 target.
But yes, HaxeFlixel is amazing 😀
It’s easy, free, and just works.
I’ve used both libGDX and Haxeflixel. I’d argue that both have their drawbacks in terms of targets.
libGDX’s HTML5 target is more mature than what openfl offers for Haxeflixel and Flambe beats both on code size and audio. Testing/deploying Android and iOS with libGDX were as easy as Haxeflixel.
As the HTML5 target matures on Haxeflixel, it should be fairly trivial to get WP8 working.
That’s not a bad idea about WP8. Using bitmap fonts, the HTML5 target is actually useable right now. Might try this 😉