Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Choosing the Right Engine for your x86-based Android* Game

16 Sep 2014 1  
This paper will help you choose the right engine for your game so it runs its best for all your Android customers.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Abstract

Game developers know that there is a tremendous opportunity on Android. Of the top 100 apps on the Google Play store, about half are games (as are over 90% of the 100 top grossing apps). To tap into this market, speed of development is crucial. Some beginning and independent developers prefer to develop all of their own code from scratch, but to reach a high level of quality without spending years in development, others choose preexisting game engines. When selecting an engine, here are some factors to consider:

  • Cost – How much are you planning to spend?
  • Dimensionality – Is your game 2D or 3D?
  • Languages – What programming languages do your developers know?
  • Artist pipeline – How well does it integrate with content creation tools?
  • Full source access – Do you need access to make deep changes to the engine?

There are many Android game engines available, but they differ substantially in these criteria. With the increasing market penetration of high performing Android devices with Intel® processors, it is more important than ever to choose an engine optimized for x86-based Android devices. This paper will help you choose the right engine for your game so it runs its best for all your Android customers.

Contenders for Your Selection

This article examines three of the best candidates in light of these categories.

Unreal* Engine by Epic Games, is a long-time heavy-hitter, boasting a large number of successful titles on PC, console, and mobile platforms since its first release in 1998. Unreal Engine has the following tools:

  • Unreal Editor (3D content editor)
  • Blueprint visual scripting (drag-and-drop editing)
  • Persona animation tool
  • Editors and tools for AI, lighting, and other effects

Project Anarchy* is a recent development from Havok. It combines Havok’s key game technologies that have their own proven track record into an engine customized for mobile development. Project Anarchy has the following components:

  • Havok Vision Editor (3D content editor)
  • Havok Vision Engine with Havok Physics
  • Havok Animation Studio (drag-and-drop editing)
  • Autodesk Scaleform* (UI tool)
  • Editors and tools for AI, lighting, and other effects

Marmalade* is a cross-platform SDK built for rapid creation of mobile games. Younger technology than the other two, Marmalade was just released as a game engine in 2011. Marmalade has the following flavors:

  • Marmalade C++ SDK
  • Marmalade Quick (Lua)
  • Marmalade Juice (Obj-C)
  • Web Marmalade (HTML5/JavaScript*)

Cost

Many engines offer multiple tiers of pricing depending on what functionality is required. Factors that most often determine cost are the target platforms and size of your team or company.

Unreal Engine requires a $19/month subscription, but also asks for 5% of your gross revenue from all programs based on their technology. Customized pricing structures, additional support, and development options for consoles are available.

Project Anarchy is (and will continue to be) free for teams of any size to use when developing mobile games. An available purchase allows for development targeting PC or consoles, as well as deeper access and more tools. For basic development, Project Anarchy is definitely the most cost-effective, asking only the option of co-marketing with your game.

At the time of writing this article, Marmalade is free for a team of up to 3 developers to use for 1 year if your organization’s revenue is less than USD 500,000. This is a temporary promotion, with the license normally costing $149 + tax. Higher pricing tiers allow development for more target platforms and grant direct developer support.

Dimensionality

The appeal of 3D games is undeniable, but 2D is a better fit for many simple games and requires far less investment of time and resources. The dimensionality of your game has a strong bearing on your engine choice.

Marmalade does have 3D graphic support, but both Unreal Engine and Project Anarchy were built for it. These engines have been refined numerous times to provide the best experience in 3D development.

Similarly, all three can be used for 2D games, but Unreal Engine and Project Anarchy may be overkill. Project Anarchy currently has an alpha-level 2D toolset sample, and both Unreal Engine and Marmalade have 2D sample code. One subset of Marmalade tools designed for rapid development, Marmalade Quick, is 2D-specific.

All three can be used for 3D and 2D games, but Marmalade is better suited for 2D, while Project Anarchy and Unreal Engine are the best for 3D.

Languages

If the developer(s) on your team are familiar—better yet, experienced—with a programming language used in an engine, the learning curve is much more reasonable.

Prior to Unreal Engine 4, gameplay programming in the Unreal Engine was done in UnrealScript, Epic’s proprietary scripting language with a C-like syntax. With the release of Unreal Engine 4, C++ is the primary development language.

Project Anarchy is based in C++, with Lua for scripting. Many engines use a lightweight scripting language such as Lua as much as possible to minimize risk to low-level tasks such as memory management.

Marmalade has multiple toolsets, depending on the language desired. The basic SDK uses C++, Marmalade Juice uses Objective-C*, Marmalade Quick uses Lua, and Web Marmalade is designed for HTML5/JavaScript development.

In versatility of language options, Marmalade really shines. There is a good chance that your developers will be able to use some form of Marmalade with their preferred flavor of development. This attribute is closely tied to its “write once, run anywhere” nature of abstraction layers.

Artist Pipeline

Long gone are the days when development teams were composed only of programmers. These days, game studios (large and small) have pretty even splits between programmers and artists. Engines that include tight integration with content creation tools have an edge over the competition.

Both Unreal Engine and Project Anarchy have 3D editors for layout, level design, asset manipulation, etc. These are especially useful to 3D artists, as the interface is similar to many 3D art tools (which will also be used in conjunction with the engine’s editor for asset creation).

Unreal* Editor (left) and Havok Vision Editor (right)

The Unreal Engine has a “blueprint scripting” feature, where the script components such as actions are visualized as drag-and-drop elements.

Blueprint scripting in Unreal* Editor

Project Anarchy has a similar state-machine-based designer for animations.

Project Anarchy* Hierarchal State Machine animation tool

Although Marmalade has a large community developing open-source plugins and tools to aid development (many of which are available at http://github.com/marmalade), the official Marmalade kits do not include anything for non-coders. Project Anarchy and Unreal Engine take the lead here for their fairly comprehensive tool suites.

Full Source Access

In terms of infinite possibility, the next best thing to creating your own engine is having the power to modify one. With access to the full source code, you can change anything in it, or add your own support for other, new target platforms.

The Unreal Engine is the most generous in this aspect; full source access is available when you pay the subscription fee for Unreal Engine 4.

Project Anarchy offers the source of some components, and full source is available at the higher investment level. Low-level access is always available, but modification is limited with the free version.

Despite having a large selection of open-source plugins, Marmalade itself is closed-source. The highest tier nets you targeted support, but no additional source access.

This isn’t much of a concern for most developers, but the more complex your game’s engine design is, the more control you may need over every last detail.

Comparison of Features

  Marmalade Project Anarchy Unreal Engine
Lowest Cost Free promo/$149+VAT Free $19/month + 5%
Dimensionality 3D Doable Built for it Built for it
2D Easiest Toolset in alpha Doable, samples
Languages C++, Obj-C, Lua, HTML5 C++, Lua C++
Non-Coder Features 3rd Party 3D Editor, Animation Studio 3D Editor, Blueprint scripting
Full Source No Some, all at higher tier Yes

Summary

Each of the engines compared here has its strong suits, and a particular forte. If future cost is a concern, Project Anarchy is the way to go. Given the skills and desire to deeply modify and extend the engine, Unreal is the lowest-cost way to do so. For quick development of a 2D game, Marmalade is hard to beat. There are numerous other engines out there—free and open source—that can match many of the features of the engines compared here, but the ability of these engines to make your game shine on a wide variety of Android devices put these three at the top of many lists.

References

About the Author

Brad Hill is a Software Engineer at Intel in the Developer Relations Division. Brad investigates new technologies on Intel hardware and shares the best methods with software developers via the Intel® Developer Zone and at developer conferences. He is also the Engineering Director of Student Hackathons, running Code for Good hackathons at colleges and universities around the country.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here