How to Choose a Game Engine
It would take valuable time to test all game development engines out there and narrow it down to the best one. There are about 170 different tools to choose among, and the number keeps increasing steadily as the game industry continues to grow. Choosing a game development engine can be a tough decision, so I’d like to share Zazmiс’s experience. We started recently and have one live game and a few more on the way. Starting small to go big is always our approach.
Choosing game engine criteria
Each game developer has different goals and feature requirements. At first, I narrowed down the range of game development engines from 170 to six, based on the following criteria:
- availability: price and tool set, programming language, learning curve, cross-platform
- popularity: community, marketplace, tutorials
- project’s scope: 2D/3D, time and labor expenses, essential tools
Next, my mission was to choose among the most available and popular engines for both large and small projects. I compared Unity, Unreal, CryEngine and Lumberyard for bigger, complex projects and GameMaker: Studio, Construct and newbie Buildbox for simpler ones.
Here’s what I came up with.
Developers are attracted to Unity engine because compared to other progressive 3D engines it requires less effort to get used to. Unity has many features, and its versatility is incredible. First, one can create almost anything using just this one engine: 2D and 3D projects of varying scale. The main limitation consists in its graphic possibilities. A dev will sweat a bit to make a picture more or less realistic. However, there are boundaries of realistic rendering Unity can’t surpass yet. But perhaps this feature lends the engine some individuality. While everyone else is doing their best to attain the most realistic picture, Unity makes it colorific and nice to look at and concentrates on usability and the modular system.
The UI is pleasant to use, very intuitive and requires little time to become proficient in despite its rich functionality. Unity’s usability allows high prototyping speed achieved by means of live tweaking and debugging support, which enable the developer to make adjustments while playing. Unity stands out in the fast-growing mobile gaming industry, and many of the most popular 3D mobile games were designed with it. And good news is, Unity is adding more VR technology to its game development.
Unity’s marketplace contains over 15 thousand different scripts, shaders, 3D models, audio samples and other materials to use for a project. With a fundamental knowledge of C# one can easily create an asset. Besides, Unity has an active community with even more varied material.
Among other perks, there are analytics and monetization tools, Twitch integration, Unity Cloud Services, and memory management. The disadvantages include closed source and impossibility to use Unity script in projects maintained by other engines. It’s not uncommon for 2D projects on 3D engines to have glitches, and Unity is no exception, so if you’re developing a 2D game, consider choosing an actual 2D engine.
Unreal now controls 17% of the market, and many popular games were built with this engine. What makes those games so special? Unbelievable graphics, endless fantastic development, advanced logic and engaging plots, among other things.
Unreal devs knew how to make a magnificent no-code engine with the flexibility to develop your own assets and tools to create stunning graphics. It is PC/console-oriented, but there are also great mobile titles such as Nova 3. As a side note, this same team of developers was the first to implement VR support.
What developers like about Unreal is the openness of the source, C++ and Blueprint Visual programming system, which allows fast prototyping. Also, there are useful features such as live debugging, instant game preview and hot reloading. Learning to use the engine is rather complicated. However, there is a vast, active community plus a support hub with a selection of tutorials.
On the minus side, because of the manual memory management and ingenious graphics, Unreal’s projects end up taking up twice as much HDD space as Unity’s. Also, not every PC can easily handle Unreal’s games or the engine itself. Minimal PC requirements are 8Gb RAM with a Quadcore Processor and at least an average graphic card. Otherwise, expect constant crashes.
Unreal is worthy of consideration as the primary engine for developing game projects. But in spite of the fact that it supports 2D game-building, if your focus is on 2D projects, it’s a good idea to look for a better 2D engine.
While Unity and Unreal dominate the market, CryEngine is also worth considering. Crytek developers’ goal was to provide colorful and realistic first-person shooters for PC and consoles, and they accomplished it marvelously. The engine allows developers to experiment with lights, particles, shades, terrain etc., which results in great physics and polished realistic scenery. If you ask me which game engine is better for graphics, Unity or CryEngine, I’ll say that CryEngine makes them picturesque, while Unity makes them rather fantastic.
Everything’s done neatly in CryEngine, but there are still challenges connected with using this platform. Many developers have had a rough start, since the community is passive and thus there’s no one to turn to for help. Still, it’s not a problem for large development companies that buy CryEngine and adapt it to their own needs. This suggests that CryEngine is more than capable of satisfying most of the game developers’ needs. But being simply capable means being average, and consumers like excellence, so there is much more for Crytek to work on.
I was really curious what Amazon’s acquisition and improvement of Lumberyard would result in when it was announced in early 2016. I believe for now, the engine is still too young and similar to its predecessor, CryEngine. The UI has been changed for the most part, but usability still needs improvement in order to fully exploit the rich functionality. The visual scripting system turned out well, though. Among improvements there are a full-stack cinematic system, Twitch integration and Amazon Web Service dependency, which means, of course, that there is no option to use any alternatives. Lumberyard aims to expand its possibilities with available integrations including Substance, Perforce and Wwise. A young engine means no community, no comprehensive tutorials and no asset store. I look forward to some interesting integration and development here.
I’d say that Amazon has to do something more to make development teams that are already using Unity or Unreal switch to Lumberyard. Nevertheless, the potential is there.
I’d put all the listed game development engines in the 3D AAA engines category, which contains those suited for long-term ambitious projects with advanced graphics and a complex plot. Next, let’s look at simpler options—drag-and-drop 2D game engines that were designed for fast prototyping and are relatively simple to use.
Buildbox is a promising newcomer to the game-building market. Not so long ago, it held 12 games in the Top 100 on the App Store. And in 2016, Buildbox was considered the most used 2D game engine. Since Buildbox itself is strikingly simple and allows to build a fully functional game in a day or so, the games—quite predictably—also turn out simple. And who wants to play a side-scroller on a PC when there’s Mass Effect installed? So Buildbox developers chose a different path: they added bright, colorful graphics and ported the picture to smartphones. That was a smart move to gain some visibility with startup development teams.
Buildbox elicits contradictory opinions from all over the game development world. It has its advantages but is also lacking some features. The community is small, fixing bugs is a pain, there are no assets, no porting to consoles and no coding option, so there is no way to add advanced logic to the game, which is frustrating. No wonder many people decide to start with GameMaker: Studio or Construct.
For now, Buildbox is not a top engine for serious game developers, but it is a fine additional tool to have at one’s disposal.
This game engine has been on the market for six years and has become a fine tool for a beginner developer. It’s easy to use, but UI is not intuitive. It’s also easy to learn as no coding is required, but lots of tutorials and guides are needed to get up to speed. There is plenty of documentation and video materials plus an active and supportive community. Construct has a large asset marketplace. Graphics output is nice but a bit old-schoolish, in my opinion. Also, if the scale of the project turns out to be too large, the engine will crash. Nevertheless, it allows the developer to quickly pack a simple project and export it as an HTML5 game. All in all, Construct is a nice option for beginners or small projects.
It’s a rather old 2D game-building tool established back in 1999, and it has kept the same level of graphics and limited 3D features. GMS is really popular among beginners as it’s easy to learn (at least, easier than Construct) and enjoys a large community and exhaustive tutorials. It has a fine plugin ecosystem, supports camera and voice recognition and even has multiplayer, which suggests it’s targeted at mobile platforms. Another advantage is the opportunity of additional programming in the native GameMaker Language, which is similar to C but more flexible. On the other hand, the engine is characterized by poor performance, glitchy tools, frequent crashes and ancient graphics. On the whole, though, GameMaker: Studio is a decent game-building tool if properly upgraded and patched a bit.
Zazmic’s choice: Unity + Buildbox
Unity is a well-developed, sophisticated and versatile platform with especially good mobile game development support. It has all the bells and whistles that a developer wants: VR, AR,2D, 3D, all graphic complexity and more. The challenge is that one has to be an experienced game builder (with a nice budget) to best exploit all the functionalities. Also, Unity is a build once, deploy anywhere engine that can be rolled out to any operating system.
Zazmic developed its first game using Buildbox. While we still have a lot to learn, we consider it a good start. Constantly evolving and upgrading, Buildbox offers easy solutions for simple and stunning projects. It is essentially an all-in-one WYSWYG game platform with limited functionality, but it can yield great 2D game entertainment. It’s a fun tool to learn as games can be developed on a small budget and are compatible with iOS and Android.
Are you new to game development? Tell us what you think.