Whether you’re an accomplished indie creator or a beginner, choosing a game engine or framework is usually the first thing you do when starting on a new project. Make the right choice and you’ll simplify your work, save time, and save money. Make a bad choice and, well, the opposite can occur.
Fortunately, there is no shortage of capable, reliable, and affordable game creation engines on the market today. We’ve already covered some of the best game engines out there. This list continues that with even more engines you can use to make the game of your dreams.
Cocos2d is an open-source software framework used for creating games and apps on a plethora of platforms. There are lots of closed-source engines that cost a lot of money to access the source code. Cocos2d bucks that trend by being both free and accessible.
Cocos2d was first released in 2008 and is still widely used by many creators, especially in the mobile market. You might’ve heard of titles such as Fire Emblem Heroes, Disney Tsum Tsum, 2048, Geometry Dash, Final Fantasy Record Keeper, and Idle Heroes — all of which were made using this engine.
Fire Emblem Heroes was made with the Cocos2d engine.
Cocos2d supports various tools, including Spine, TexturePacker, PhysicsEditor, Tiled, and Particle Designer. It also supports features such as sprite and texture rendering, animations, physics, font rendering, resolution handling, scene management, input handling, particle systems, and much more.
Cocos2d does support 3D objects with the help of the Cocos3D add-on, but for many mobile developers, 2D is more than enough — it’s much less time consuming, and is simpler for beginners than 3D.
Majiho Games found the engine incredibly useful: “Cocos2d got much popularity from iPhone games and I found out that it was later made cross-platform. The fact that it was also open-source and free to use was a compelling solution for developers with zero budget.”
Cocos2d is perfect for mobile devices, especially iOS, but it fully supports exporting to Android, Windows, Mac, and many other platforms.
Cocos2d supports C++, C#, and Objective C. Objective C has made the engine very attractive for iOS developers, although lately Apple has been pushing Swift more. Still, many developers prefer Objective-C to Swift because the latter is much more difficult to read and parse. Don’t worry if you’re an Android developer; if you code in C++ you can work on your project right away since the engine is cross-platform compatible.
Cocos2d can be easier to master than Unity thanks to the C++ programming language and its lightweight libraries. It’s also open-source, so expect total freedom to tweak it as you wish. There’s also a great community of users.
Cocos2d has long been the engine of choice for iOS developers. You can export to Android as well, but it’s hardly a cross-platform behemoth, as there’s barely any support for consoles.
The documentation is also scarce, and a lot of the time it’s only in Chinese. There’s also no integrated design environment — you’ll have to use external graphics editors like Cocos Studio. All of this makes Cocos2d somewhat more time-consuming to learn than more well-known rivals like Unity.
Corona may be a great alternative to Cocos2d if 2D game creation is your thing. This easy-to-learn and, most importantly, free engine might be the perfect choice for developing both apps and games for mobile devices and desktop systems.
Ava Airborne, made with Corona
Tiny Boxes, Ava Airborne, Grow Beets Clicker, Rider, I Love Hue, and many other games were built with Corona.
The Corona development platform is perfect for 2D games. You can download the software for free, and there’s no charge after you publish your game. Corona supports various platforms across both mobile and desktop. Corona Marketplace has over 100 additional third-party plugins, many of which are free.
Martin Bartsch, who’s been using Corona to develop his new game Legend of Towercraft, thinks that the fact that the engine is Lua-based (which is based on C) is a huge advantage for him and lots of other developers in his situation:
“We could set up the first prototype really fast and used a lot of libraries of Corona, but as we increased in scale and also had testers with old smartphones join, we needed to develop our own engine.”
Corona is so easy to learn that the people behind the engine even promise that you can develop an app in only 5 minutes if you follow the official guidelines. This is true; there’s a lot of documentation, as well as in-depth tutorials. Ease of learning is the main feature of the platform — or at least, that’s what Corona Labs claims.
Among its other perks are Lua-based APIs, numerous plugins, and Corona Native extensions (C/C++/Obj-C/Java). According to the official site, developers can enjoy access to sprite animations, audio and music, Box2D physics, object tweening, advanced graphical filters, particle emitters, and much more.
Corona Simulator is also a powerful tool; it will respond to your code changes instantly, providing a real-time preview of what your app will look like.
Cross-platform support is one of the engine’s best features, so it’s no surprise that the list of supported devices is quite sizable.
Corona SDK supports Lua. It’s written in C, which means that it’s completely cross-platform. Corona Native allows you to extend Corona with native languages, including C, C++, Obj-C, and Java.
Corona has lots of positives. It’s completely free, with cross-platform support, and its community is extremely active — over 300,000 developers are using the developer forums, often visited by the engine’s team as well. Martin Bartsch, who we mentioned before, believes that two main points for him and many others are “fast and easy access” and “platform independence”.
Corona is easy to learn, but while it’s great for developing 2D games, it’s not a good choice for 3D projects. Debugging also leaves a little to be desired, since Corona SDK rarely helps in that regard.
Also, there have been some serious changes lately — developer Corona Labs announced that on May 1, 2020, it will cease operations, which means that the project will be distributed under a new, simplified license. The marketplace has also stopped accepting new plugins. In other words, these are uncertain times for Corona.
The Haxe project was created in 2005 by French developer Nicolas Cannasse as a successor to the popular open-source ActionScript 2 compiler MTASC. It’s not an engine per se; it’s actually a programming language that some engines use — for example, Stencyl. It was influenced by ActionScript, which was used for building Flash games. Ever since the death of Flash, it has been one of the best options for creating games for various platforms with one single codebase.
Dead Cells was created using Haxe
Lots of famous games were built on Haxe, including indie darlings Papers, Please and Dead Cells. Other notable games include Northgard, Rymdkapsel, and Defender’s Quest.
Obviously, Haxe doesn’t have a GUI, since it’s just a programming language. Some engines built on it do have GUI, like Armory, but most of the work is still done in the code editor.
Haxe is mostly used for developing cross-platform games, but it can be useful in a wide variety of domains, such as web, mobile, desktop, command-line, and cross-platform APIs. It’s open-source and is free to use. Haxe has its own virtual machines (HashLink and NekoVM) but can also run in interpreted mode.
“Apart from cross-target features, one of the good reasons to use Haxe is its nice type system and macro features that ease a lot of tasks of maintaining code and accompanying data (e.g. game data),” says Dan Korostelev from the Haxe Team.
Haxe is most popular for developing desktop games, followed by web and mobile games.
You can export your games to almost every platform imaginable, including web, iOS, Android, desktop, and more.
Compiler Targets. Source: Haxe
Haxe allows you to develop for web, Android, desktop, iOS, and others, all at once, without needing to switch languages. Haxe can be useful for web developers, but it’s even better for game developers thanks to its tiny size — the latest versions are less than 10 MB. Haxe is also completely free with no hidden charges, which is especially important if you’re a beginner. Haxe is great for rapid development, and really good if cross-platform release is planned.
Still, it’s not an engine, and you won’t be able to make a game with vanilla Haxe code. For that, you might want to acquaint yourself with the likes of the HaxeFlixel. Even with so many advantages, Haxe remains less popular than other languages, which can make it harder to find other developers for your team. It also still lacks support in certain IDEs like IntelliJ.
Every seasoned gamer surely remembers CryEngine, popularized by Far Cry in 2004. It’s now one of the best-known engines out there, with an impressive library of hit games such as the original Far Cry (and later releases which use Dunia Engine, a modified version of CryEngine), Crysis, Prey, Evolve, Kingdom Come: Deliverance, and the State of Decay. In terms of graphical capabilities, it’s way ahead of Unity and on par with the likes of Unreal Engine 4. It’s well-known for its state-of-the-art lighting and realistic physics.
CryEngine is primarily known for its illumination tech and realistic outdoor environments, which makes it not only a great fit for game development but also for filmmaking. Among its main features are realistic water effects, volumetric fog rendering, its real-time lighting engine, and great terrain tools. Still, first and foremost this engine is known for photorealistic shooters and first-person games in general, but it does support other genres — just look at the list of games made with it.
If you use CryEngine, you also get to play with its editor source code, which allows for a lot of flexibility and customization. While it might be considered specialized, it offers lots of tools from the get-go, so the possibilities are endless. Still, it’s better suited for large 3D projects such as realistic shooters or open-world RPGs. Building a 2D platformer on it might be a tad overkill.
CryEngine supports C++, while Lua is mostly used for scripting. There is also a C# interface.
If you want to create a first-person shooter with an open-world and gorgeous visuals, CryEngine is perfect for you. It allows for extremely high-quality visuals, and as a world-building tool, it might be the best overall. The creators also value its set of tools, which help to streamline the whole process and open up more time for perfecting the design of the game. Its editor has no build or compile times, and it’s very easy to create a great-looking prototype as fast as possible.
No less important is that there’s no steep learning curve. It’s no GameMaker, of course, but even entry-level developers will find it easy to master. And while its community isn’t huge, the support is top-notch, and Crytek themselves are easy to reach.
Last but not least is the fact that it’s completely free, albeit with a royalty system. The first $5,000 of annual revenue is yours alone, but after that, you’ll have to pay 5% royalty to Crytek. There’s also an Enterprise license with a better level of support.
CryEngine is not as big as Unity or Unreal, and you will feel it when looking for help from other developers. Sometimes it pays to have knowledgeable people all over the world, and in that regard, CryEngine is a bit lacking.
There’s also not a lot of resources available — even its dedicated website might not be enough. When it comes to other disadvantages, it’s worth repeating that CryEngine is somewhat specialized — it might be the wrong choice for fast-paced games or RPGs with complex systems. Also, some developers aren’t happy with its game editor, which is inferior to its competitors.
We’ve talked about the engines that are (relatively) easy to work with, but MonoGame is the one that might force you to get your hands dirty. It’s not an engine but a framework that allows you to create an engine of your own design, perfect for the project you have in mind. This isn’t the easiest of routes for a developer, but the list of pros might just be too big to ignore.
Initially a port of Microsoft’s XNA, MonoGame is perfect for those who need to have custom-built tools, as well as for multi-platform development.
MonoGame’s main strength is flexibility — you can basically do whatever you desire. Write your own engine if you want. Still, it’s more suited for 2D projects. “It’s more like a set of convenient C# libraries than an engine, so it gives you a lot of creative freedom, while still providing things like asset loading and processing,” says Thomas Happ, the developer of famed Axiom Verge, and we tend to agree.
Another feature of MonoGame is that it makes cross-platform development easy. It was, after all, created to help with porting games to mobile.
A few other quotes from developers showing the power of MonoGame:
”I found it easy to get into. Even though I think there’s kind of a lack of tutorials in comparison to other frameworks and engines, getting into MonoGame is less hard than one might think,” says Julian Creutz, creator of open-world action-RPG Mystiqa.
“If you’re someone with good programming experience, MonoGame is a great tool. As compared to some of the ‘no-code’ or ‘low-code’ options like GameMaker Studio, MonoGame just fits in better with my experience,” — Cloudy Heaven Games
MonoGame is very versatile. It supports lots of platforms, including Windows devices, Nintendo Switch, PSVita, iOS, Android, macOS, Linux, PS4, and Xbox One.
MonoGame supports all .NET languages, including C#.
MonoGame is free, open-source, and highly customizable. It’s perfect for 2D and cross-platform development. It supports all current consoles, including Switch — one of the best platforms for indie games. For 3D games, though, it might be the wrong choice, as there’s no scene editor WYSIWYG support.
“[MonoGame] is extremely well suited for all types of games and it’s a blast to develop in. The only caveat is the reliance on the Content Pipeline which is a pain to work with,” says Julian Creutz.
Also, you probably won’t find enough documentation (or what you will find might be out-of-date), and the support is lacking. The community is there, and it’s quite passionate, but it’s not nearly as big or vocal as its competitors’. It’s a free volunteer project, after all.
Choosing an engine can be a daunting task, but it shouldn’t be too hard if you know exactly what you want to make. Each and every engine or framework is great for certain things, such as Cocos2d being perfect for mobile developers, and CryEngine is synonymous with realistic graphics. You might not want to pay for a bigger engine when you can easily make a nice-looking and responsive 2D platformer with a free open-source alternative.
Do your research, think about what features you can’t live without, then choose an engine, and dive in. You can’t go wrong with any of the items featured on this list. Now get out there and start creating!