Today making video games is easy. There are lots of developers and companies that make all the tools accessible. You can choose from different flavors based on your preferences and prior coding experience because you will have to write some code, despite what game engines' web pages say.
If you're shopping around for an engine for your 2D game, this article will provide some things that may help you decide.
Disclaimer: I'm not attempting to cover every game engine out there, nor am I positioning one Engine or framework over another. These recommendations are from my experience while choosing engines and frameworks for my new game.
Game Maker Studio 2
I used a Game Maker when I made games ten years ago, so it was my first go-to. It was created in 1999 by Mark Overmars, Duch computer scientist, and game programming teacher. It has a user-friendly UI, event driving, and an easy-to-use programming language called GML.
The general workflow sprites animation and setting up the game world are straightforward and intuitive. GML may not be very comfortable if you are used to code in another, more widely-used programming language, and I would not recommend it as the first introduction to learning how to code. It employs some basic programming concepts but not essential details such as coding best practices or how to write clean code.
Also, I wouldn’t say I liked the absence of a bone-animation tool. Back in the day, I used to animate using Moho. Still, things are getting complicated with the workflow that contemplates exporting drawings, animating them in Moho, rendering PNG sequences, and then creating sprite stripes in Photoshop.
Unity
Unity is a game engine that claims to make game development universally accessible. Today Unity is known as the “make any game” engine and is ideal for indie developers. Over 50% of games across all platforms use Unity, which powers 60% of all VR/AR content. You should be familiar with the C# programming language, which was ideal for me.
C# is a simple, modern, and object-oriented programming language. The purpose of C# was to develop a programming language that is not only easy to learn but also supports modern-day functionality for all kinds of software development. The beauty is that it forces you to write clean, well-defined code and has a rich compiler. Unity offers Integrations on iOS, Android, Windows Phone 8, Tizen, Android TV, Samsung SMART TV, Xbox One & 360, Windows PC, Mac OS X, Linux, Web Player, WebGL, HoloLens, SteamOS, PS4, Playstation Vita, and Wii U.
Unlike Game Maker Studio 2, it offers Moho-level bone animation utilities at no extra cost. It is game oriented, meaning you can control the animation from the code.
The Unity editor is quite complex and takes some time to familiarize. Unity also does many things the "hard way" regarding 2D game development. Creating a 2D game world in Unity, for example, is much more unpleasant compared to Game Maker Studio 2.
Like Game Maker, it has extensive community support. Additionally, Unity's Asset Store has all kinds of art and templates to download and buy.
Unreal Engine
Epic Games founder Tim Sweeney developed Unreal Engine in 1998. Today Unreal is associated with “better graphics” and offers excellent studio AAA quality to the games that use it. Epic Games, the company behind Unreal Engine, has seen lots of success with its game Fortnite which has 200 million users.
For a complete beginner, Unreal Engine can be complicated. There are two ways you can program your games in Unreal, either with Blueprint Visual Scripting or C++.
Blueprint Visual Scripting helps you have some quick wins (and completed games) if you’re unfamiliar with programming. However, if you want to unlock the full power of Unreal, you’ll need to learn C++, which is harder to learn than C# and more complicated to write and maintain.
Unreal Engine offers integrations with iOS, Android, VR, Linux, Windows PC, Mac OS X, SteamOS, HTML5, Xbox One, and PS4.
While I can use both Unity and Unreal to make mobile games, it is preferable to use Unity for mobile platforms. It’s also a more accessible Engine to make 2D games on and has an easier time scaling down to low-end hardware. Unity offers the Light Weight Render Pipeline specifically targeted at low-powered devices with old GPUs.
Given all of the above, Unreal Engine was not a good choice for a 2D platformer; thus, I wasn’t spending much time on it.
React and PyGame
At first glance, you might think, "React is a front-end framework for making interactive websites. It's not a game engine!" And you'd be mostly correct.
React doesn't provide native support for game development basics, like, for example, 2D physics, but it does handle state exceptionally well. If you're already a JavaScript developer willing to pair React with something like boardgame.io to make a simple 2D game, you could get a prototype up and running quickly.
If you are familiar with Python programming language and want to deploy a fast basic prototype, you might try PyGame. Like anything in Python, it is very fast to learn and use, but I find it restricted for game making.
Anyhow, for React and PyGame, you'll want to look elsewhere for game development.
Conclusion
For the 2D Platformer I’m creating, Game Maker Studio 2 and Unity are excellent options. After spending a couple of weeks with each other, I opted for Unity, mainly because it offers a complete package of animation tools, a visual studio editor, and robust C# coding performance. Also, there are excellent Platformer tutorials to start with basic game mechanics.