Jordan Schuetz
Developer Advocate, MuleSoft
IN THIS ARTICLE

    Subscribe to Our Newsletter

    Stay updated with the latest on web, mobile, and IoT, delivered weekly.
    Thanks for subscribing!

    Thanks for subscribing!

    Get ready for some great content.

    One of the first steps to start your game development journey is to decide how you are going to go about building your game. This might sound trivial, however, it’s actually a very important step in the overall design process of your game. If you choose the wrong game engine that doesn’t fully support your needs, you will throw away hours of development time that could be spent actually releasing your product for sale.

    What is a Game Engine?

    A game engine is a framework for game development that helps deliver the core functionality that games have, providing the structure and tools that a game requires. Some examples include a rendering engine for 2D or 3D graphics, physics, collision detection and response, sound, scripting, and more.

    Game Engine Pros and Cons

    In this article, I’m going to be going over the pros and cons of popular engines that I’ve personally used. Each engine has different features and supports different platforms. All these options can make it difficult to choose what’s best for your use case, but ultimately it comes down to personal preference and coding ability.

    Before choosing a game engine, walk through the following considerations:

    • What platforms do you want to target your release on and what is your roadmap to get your game published?
    • Do you want your game to have 3D elements, or is a 2D engine more suited towards your needs?
    • Do you write native code and use OpenGL, or do you use a third-party game engine that does cross-platform development?
    • Is your game going to have multiplayer elements (social features)?
    • Are there pre-built templates available for your game idea?
    • Is your title going to have advertisements, in-app purchases, or is it pay to download?

    Those points are just a few things to consider before building your title. When it comes to templates, there are a fair amount of pre-built examples out there for a lot of different video game styles. Why code your game from scratch if you can buy something you need from an asset store, implement your ideas and publish? It has the potential to save you hours of time which could be better-spent marketing or working on driving sales for your title.

    In addition, why would you want to code your game natively if there are third-party engines that support multiple platforms with a single code base? When there is an option to do cross-platform development, take it contingent on the features of the game engine being supported on the platforms you are targeting.

    With that, let’s compare some game engines!


    Unity

    Unity gives you just about everything you need to build games in one package. It’s an integrated development framework that delivers rich solutions and out-of-the-box functionality to create games. It allows you to assemble assets and art into environments and scenes, add audio, special effects, lighting, and animations.

    Unity is also the most popular game engine in the world, with a 45% market share, and touches over 600 million gamers across the globe.

    Pros

    • Unity supports 25 platforms and some of the best ones to monetize on: iOS, Android, Nintendo Switch, Steam, VR/AR etc.
    • Powerful graphical engine that’s optimized for many devices (consistent FPS across hundreds of devices)
    • Supports coding in Javascript and C#
    • Drag and drop interface
    • Huge community of developers
    • Pricing is fair
    • Huge asset store with prebuilt templates that are plug and play
    • 2D and 3D support

    Cons

    • Learning the engine is very complicated
    • New developers might feel overwhelmed due to the complexity of the engine
    • Optimizing graphically intensive games can be difficult (needs custom models, etc.)
    • Integrating mobile APIs, advertising, etc. is more challenging than other engines

    Corona SDK

    Corona is a great 2D game engine for beginners looking to build cross-platform games for iOS, Android, Kindle, Windows, and more. And even better, Corona is completely free.

    Pros

    • Lua scripting language (easy for beginner coders)
    • APIs are incredibly easy to use and straightforward
    • Easy to use simulator without needing to rebuild after every code change
    • 3rd party APIs are easy to integrate if they have partnerships with Corona

    Cons

    • Very few prebuilt templates that are plug and play compared to other engines
    • Older engine with a small developer community
    • Only targets iOS and Android devices for monetization. There is a desktop build but that isn’t monetizable as well as mobile
    • No 3D support

    GameMaker Studio

    GameMaker is one of the older game engines out there. But with the recent launch of GameMaker Studio 2, the game engine just got much more powerful. Fast, friendly, and cross-platform, GameMaker allows you to build a game with a single codebase and publish it to run natively across multiple platforms.

    Pros

    • Simple to use and not too overwhelming
    • Great for beginners with limited programming knowledge
    • Fun and easy for hobbyist projects

    Cons

    • Uses its own language for programming
    • Programming limitations
    • Monetization limitations (lack of 3rd party APIs)
    • No 3D support

    Unreal Engine

    Unreal Engine is another one of the most popular game engines available today and is known specifically for first-person shooters, but is great for MMORPGs, RPGs, fighting, and stealth games. Cross-platform, Unreal is compatible with a massive spectrum of operating systems and devices and there’s a good chance you’ve played an Unreal-powered game.

    Pros

    • Includes a profiler in the default version
    • Unreal Engine’s graphical capabilities are far ahead of the competition
    • Asset store with some good templates

    Cons

    • Uses C++ which requires more programming experience than C# or Javascript
    • Epic Games (makers of Unreal) get 5% royalty on everything you earn
    • Limited third-party APIs compared to other engines
    • Builds aren’t optimized well for lower spec devices

    The Verdict

    Ultimately, to make a decision you have to look at what platforms you want to target and how you plan on monetizing your product. I used to be a Corona developer from 2011-2013. It was an excellent engine that allowed me to iterate fast and target the two top platforms which were iOS and Android during that time.

    However now that new consoles and devices are being made, Unity seems to be supporting almost every new product. This is a huge advantage since using Unity allows you to release on platforms that other engines don’t support. Even though the hurdles to learn Unity are challenging, the reward is more than worth it.

    Unreal Engine seems to be a better option for games needing graphically intensive performance and for companies that have very experienced development teams. However, for small companies looking to target multiple platforms and monetize effectively, Unity wins the battle.

    Developers should also check out PubNub for developing realtime video games. Our API works with Unity, Corona, and an additional 70+ SDKs. Our API makes it incredibly easy to develop a realtime video game and doesn’t require you to setup your own servers.