Indie Game Engine Choices 2011
What? Is it 2011 already?! And I will be finished with Spandex Force: Superhero U soon? This means that it’s time to plan ahead for my next game project!
One of the most crucial choices right now is what game engine to use for my next game. I use the term “game engine” very loosely – I don’t care about all the added bling bling right now. In fact, I would be just fine with a low-level engine that provided graphics and audio abstraction layers. Granted, extra functionality will result in a shorter development time, but first and foremost I am going to look at what platforms are available for distribution with the different game engines. For a small developer like me it means incredibly much if I can reach an extra market with not much extra effort!
It’s worth noting that this is a non-comprehensive list of all the available game engines. These are simply the ones I think are of most interest to me as an indie developer.
| Engine Name | Language | Windows | Mac | Web | iPhone | Android | Xbox 360 | Linux |
|---|---|---|---|---|---|---|---|---|
| Flash/haXe | haXe | X | X | X | (X) | (X) | (X) | |
| Flash/Actionscript | Actionscript | X | X | X | (X) | (X) | ||
| Unity | C#/JS | X | X | (X) | X | X | ||
| LWJGL | Java | X | X | (X) | (X) | X | ||
| Simple DirectMedia Layer | C++ | X | X | X | X | X | ||
| Gosu | C++ | X | X | X | X | |||
| Allegro | C++ | X | X | (X) | X | |||
| BlitzMax | Misc | X | X | X | ||||
| SFML | C++ | X | X | X | ||||
| ClanLib | C++ | X | X | X | ||||
| Game Maker | Misc | X | X | |||||
| pygame | Python | X | X | (X) | (X) | X | ||
| Silverlight | Misc | X | (X) | (X) | (X) | |||
| XNA Game Studio | C# | X | X | |||||
| Upcoming Engines | Language | Windows | Mac | Web | iPhone | Android | Xbox 360 | Linux |
| Monkey/Mojo | Misc | X | X | X | X | X | X | |
| ExEn | C# | X | X | X | X | X |
So, what’s this table all about? This is a list of different game engines/SDKs/development environments that are suitable for indie games. An X marks support, while an (X) marks dubious support that may or may not work correctly/easily.
The platforms are sorted in order of priority, from left to right. Web has a very high focus, but if the benefits of the other platforms outweigh that of web based distribution, I could definitely skip it. After all, iPhone (which includes iPad) and Android might be emerging as quite valid alternatives.
Based on the platform support, each engine is listed in order of priority. Essentially, a development environment that e.g. lacks support for Mac will be at the bottom of the list, plain and simple.
A quick look would show that haXe is the way to go, but that’s not the entire truth. The language is not widely spread, and the support is quite lacking. Actionscript is what I’m using for my current game, but it’s not really a great environment to develop in. Other than those two, Unity and LWJGL have some sort of support for web based games, but I still claim that the Unity plugin and Java work pretty poorly in browsers. I’m not dismissing LWJGL completely, though – I’d love to develop in Java.
If I were to decide that web based distribution isn’t all that cool after all, I think that SDL is a clear winner. I have made a small game in it earlier and it’s decent to work with. The problem is that the Android port is of an old version, and I’m not sure how functional the iPhone port is.
Lastly, I have to make some honorary mentions regarding ExEn and Monkey. ExEn is a project to port XNA to various platforms, and it’s really very interesting. Monkey, on the other hand, is a new upcoming language + graphics framework by the developer behind BlitzMax. Not only will it support the listed platforms, but also HTML5. Quite, quite interesting!
Have I missed something?

February 25th, 2011 at 5:14 pm
I realize I keep waiting for you to make text-based game – I think this will be the perfect medium for your wit! And you’ll have a much shorter development time with less time spent on bling bling!
April 12th, 2011 at 9:13 am
Monkey is out now. What do you think of it? Seems promising!
April 12th, 2011 at 2:45 pm
I think that it looks extremely interesting and promising! I can’t wait ’til I’ve finished the latest game so that I can start messing around with it.
However, there are a few things to complain about:
1) The Windows target is useless. If I’m going to use Monkey I have to write another target that uses DirectX – I simply won’t use a solution that requires an end user to install OpenAL, not to mention that using OpenGL overall is pretty much a no-no on Windows if one wants to be compatible.
2) It’s really immature. I don’t know when it’ll be stable enough for a big project, but on the other hand I’m sure that all the little problems will be taken care of during the next few months. Things like being able to switch resolution on the fly isn’t supported yet, for example. (As far as I’ve seen.)
3) It’s pretty bare-bone right now. But on the other hand I see that as a benefit: I can write all my own engine/utility stuff without feeling bad that I waste time that could be put on making the actual game.
All in all, I’m excited about it. It’s going to be fun to dive into it in a month or two or three.