If you're shopping around for an engine for your next 2D game, this article will provide some things to consider that may help in your discernment process.
Do note that I'm not attempting to cover every 2D game engine out there; nor am I positioning one engine or framework over another. These recommendations are from my personal experience using different engines and frameworks for prototyping.
And if you'd prefer to watch rather than read, I've created a video version of this post (26 minute watch):
At first glance, you might be thinking, "React is a front end framework for making interactive websites. It's not a game engine!" And you'd be mostly correct.
For all other types of 2D games, you'll want to look elsewhere.
Unity has made itself ubiquitous in the 2D and 3D game development spaces. I'd position it as an excellent 3D game engine, and a serviceable 2D one.
The Unity editor is fairly complex, with a lot of nested menus that take some time to wrap your head around (check out this article for a tour of its 2D features). If you don't already have a background in C#, which Unity uses for scripting, you'll want to brush up on it prior to learning Unity, as doing so will ease your overall learning curve.
Unity also does a lot of things the "hard way" when it comes to 2D game development, which doesn't feel native compared to other game engines. Creating a 2D game world in Unity, for example, feels like you're shoehorning a 2D plane into a large 3D space, and things like animation and pixel perfection are more clunky than in other 2D-specific engines.
You can make any type of 2D game with Unity if you're willing to wrestle with the editor and underlying 3D idiosyncrasies. It has extensive community support, and you'll find that working with C# is a delight. Additionally, Unity's Asset Store has all kinds of art and templates for you to download and purchase, but buyer beware: you might spend as much time rewriting someone else's code to fit your project as you would just starting from scratch.
Unity is, in general, free to use, but pricing becomes more complex if you want to use everything it has to offer (see this page for more details).
Godot is a free and open source 2D and 3D game engine that supports GDScript, C#, and even C++ and Python if you're willing to do a lot of the heavy lifting to make them work. It supports a node-style workflow and is super lightweight.
If you're a) willing to invest in learning GDScript or b) already super good at C#, C++, or Python, you'll probably be fine in Godot, particularly if you like working with open source software. If not, you may get easily frustrated, as there isn't nearly as much support for C# or other languages as there is for GDScript. Still, Godot is a pleasant engine with which to work, and although it may not have the same pedigree and community support as something like Unity, if you're a self-starter you might feel well at home.
Don't expect to have a meaningfully productive experience with Construct 3 for free, however. There's a simple demo that you can try out, but impactful game development with Construct 3 is locked behind a paywall, and a subscription at that.
Game Maker Studio 2
Game Maker Studio 2 has a user-friendly editor that supports a proprietary language called, appropriately, Game Maker Language (GML), along with visual scripting. It also has a lot of tutorials, great community support, and an asset store (which comes with the same caveats as Unity's, above).
The general workflow of Game Maker Studio 2 and doing things like animating sprites, setting up your game world, and so on, are straightforward and intuitive. GML might not be your cup of tea if you're coming from another, more widely-used programming language, and I would not recommend it as your first introduction to learning how to code. It employs some of the basic concepts of programming, but not important details such as coding best practices or how to write clean code.
Additionally, you can try Game Maker Studio 2 with a free 30-day trial, but will need to pay to continue to use it after that time.
In the interest of fairness, I should mention a two other 2D game engines that have been recommended to me since I started writing on the topic: LÖVE 2D, which uses Lua, and MonoGame, which supports C#. I haven't used either of them (or others, such as PyGame), and can't speak to their usefulness, but they may be worth checking out.
Let me know which 2D game engine you wind up using, and why!
This article originally appeared on freeCodeCamp.