Choosing the right game engine for your game is an important decision, and there are many factors to consider. To help you decide, we've put together this comparison of Unity and Unreal Engine 4: two popular game engines that offer a lot of value for large and small-scale developers alike. AccelByte supports both of these engines, so whichever you choose we're ready to help you set up your game for cross-platform experience.

Introduction

Unity is a popular game engine for indie game developers on mobile, consoles, and PC. Unity has a large and active user community, and there are a lot of forums, Discord servers, and tutorials out there to help new Unity users learn the ropes.

Cuphead by StudioMDHR, made with Unity
Cuphead by StudioMDHR, made with Unity (source)

Unreal Engine, widely considered one of the most powerful game engines in the industry, has also gained a following outside of the gaming world for its incredibly robust graphic features. UE4 is increasingly used by professionals in architecture, automotive design, film and TV, and even live broadcast.

Pathless, an upcoming game by Giant Squid, made with Unreal Engine 4
Pathless, an upcoming game by Giant Squid, made with UE4 (source)

Setup

Setting up UE4 for game development requires a few steps. If you want to just use Blueprint, UE's own scripting system, to design your game you just need to download Epic Launcher and the Unreal Engine. If you're using C++, however, it's recommended to download the source from Unreal Engine's GitHub. The setup can take some time depending on your PC's specifications, and if you want to develop a cross-platform game, you'll need to set up the engine for each additional platform (other than PC) you want to support. This includes installing the SDK and any other tools required to run the game on the target platform.

By comparison, Unity offers a much simpler setup. You can install the engine from Unity Hub, choose the engine's version you want to use, and simply select the target platforms for your game. All the SDKs and other tools required to build for those platforms will be automatically downloaded by the Hub.

Tools & Plugins

If you're not into coding, the Blueprints Visual Scripting system in UE4 offers the ability to create a game with no coding at all. Blueprints Visual Scripting is a material editor that allows you to modify materials seamlessly without touching the shader codes. Some tools and plugins definitely make it easier to develop a game, but for most people, Unreal Engine also packs some unnecessary plugins that can weigh the engine and your game down. For example, if you are developing mobile games for Android and iOS, you most likely won't need the Oculus VR plugin that is turned on by default in the game engine. You have to manually go through all of the plugins to turn off those that you don’t need, to reduce the load of your engine as well as your game.

Material editor in UE4 (source: Unreal Engine documentation)
Material editor in UE4 (source: Unreal Engine doc)

Unity comes with minimum plugins turned on by default, which results in a small build size. In Unity, the material editor feature is not available by default, but you can find options to edit materials in the Unity asset store.

Both game engines support plugins and feature easy plugin setup. For Unity, just open the Asset Store from the Unity Editor, then download and import any plugins you need. If you're getting a plugin from the GitHub repo, you need to copy the SDK folder to your Assets folder. The same method applies for UE4.

Amplify Shader, a 3rd party plugin for Unity
Amplify Shader, a 3rd party plugin for Unity (source)

Base Code

Unity uses C# as the game scripting API. While the engine uses C++, it is not accessible to users.

Unreal engine uses C++ and Blueprint as the visual scripting APIs. The engine's C++ source is also open to modify, as needed.

Supported Platforms

Both engines support a wide variety of platforms, and as such both are suitable for designing a game with cross-platform experience in mind. Some platforms do require you to contact the platform owner to get the engine specific to that platform.

Platforms supported by Unreal Engine
Platforms supported by Unreal Engine (source
Platforms supported by Unity
Platforms supported by Unity (source)

Multiplayer Support

Multiplayer support is critical for many modern games, especially if you want to go cross-platform play. As such, multiplayer support is an especially important factor to consider when choosing a game engine.

Unity no longer supports multiplayer using UNet (Unity Networking), which used to be available. There are 3rd party alternatives available, including Forge Networking which is open source and has an active community on Discord. Other paid 3rd party options are also available.

UE4 includes robust multiplayer API, mainly used for real-time action games. This feature is built-in; all you have to do is call the multiplayer function from either C++ or Blueprint.

Community/Documentation

Unreal Engine provides users with Unreal Academy, which includes a getting started guide and offers different learning paths based on your role in game development. There is also the UE Forum for discussion and knowledge sharing between members of the UE development community.

Unity game engine has both Unity Learn and Unity Forum. You can also find examples of common API calls in their documentation portal. As for Unreal Engine, there are relatively few sample cases outlined in their documentation.

Pricing

Unity's the personal license is free if revenue or funding is less than $100K in the last 12 months. For titles in the in $100K - $200K range, Unity Plus comes at the cost of $40 a month. A Unity Pro license costs $150 per month for games with revenue over $200K.

Epic Games charges a 5% royalty after the first 3 months exceeding $3K gross revenue. Epic Games also includes a special pricing offer for developers that publish their game on their store.

Marketplace

Unreal Engine's marketplace has a wide variety of assets available, including mobile-compatible assets as well as PC/console-only assets. The marketplace also includes lots of scripts, plugins, visually appealing 3D assets, high definition particle effects, motion capture animations, and high-quality audio SFX. However, some of those add-ons are quite pricey, and the quantity of 2D and mobile assets available is limited.

Unreal Engine Marketplace
Unreal Engine Marketplace

Meanwhile, Unity offers a massive amount of 2D and 3D assets optimized for mobile devices. Prices are also a bit lower than comparable items in the Unreal Engine marketplace.

Unity Asset Store
Unity Asset Store

AccelByte SDK Integration

AccelByte offers backend services for online features critical to modern gaming, in the realms of User Account Management, Commerce, Lobby and Matchmaking, Social features, and more. We can also help bring your game to the future by ensuring it's cross-platform enabled. Cross-platform progression allows your players to access their game data on multiple devices. Cross-platform play enables your players to have friends and play against other players using different platforms. There is also cross-platform buy (BOPA) which allows players to buy once to play the game on multiple platforms. We offer SDKs for both Unity and UE4, and their setup is simple.

For Unity, you can import the AccelByte SDK folder to the engine's Assets folder and set up the SDK configuration for the game client and game server. This configuration will be used by the SDK to connect to AccelByte’s backend services.

Unity Game Engine SDK Configuration
Unity AccelByte SDK Configuration

For UE4, you must copy the SDK folder into the Project/Plugin folder. Run the editor, click on Edit > Plugin, find and enable the SDK, and restart the editor. After that, fill out the game client and game server configuration fields and you're all set.

Unreal Engine UE4 SDK Plugin
UE4 AccelByte SDK Plugin

If you're game server is Linux based and you're using Windows 10, both game engines also offer a cross-compile feature that allows you to build a Linux target in a Windows environment.

Summary

For mobile developers, Unity offers easy setup and handling and includes a wide variety of mobile-compatible assets to choose from. But if you're looking to create a top tier PC and console game, UE4 offers high quality graphics, support for visual scripting and C++, and real-time multiplayer that's ready to use out of the box, making it an excellent choice.

When choosing a game engine, the most important thing is finding the engine with the features and capabilities your game needs most. As Mark James said in one of our talks:

"Your engine choice depends on what you're trying to achieve. The creative will determine your engine choice. Don't choose your engine before you've chosen your game; you stick by your game first, and then think about the best technology for that game."

When your game is multiplayer and multi-platform ready, what's left is to make your game game cross-platform ready (video). To go cross-platform, you'll need a solid backend where your players are connected with each other under the same account management system. With centralized account management in place, next you'll need social services, commerce, matchmaking, cloud save, game servers, and lots more. Building it all can take time and a huge team. This is where we can help, whether you'd like your game to be cross-play, cross-progression (cross-save), or cross-buy (BOPA) enabled.

We'd love to help you make your game cross-platform ready. If you're interested in bringing your game to the future, reach out to us at hello@accelbyte.io or leave your contact on our website. You can also contact us on our Discord server.