One of the less enjoyable aspects of games development is the writing of the engine – all the editing tools, graphics and sound systems, level loading and management, menu systems, AI, UI, etc, etc… Essentially, all the back-end code you need to make a game run but which doesn’t actually form part of the gameplay or levels. Fortunately, written well, this code is very reusable.
As a company we knew that developing any kind of engine (completely from scratch) would take considerable time and effort. Let alone a usable, powerful and graphically beautiful engine. We also knew that having a library of tools to help might just make it possible to get something good in an acceptable time. Our hope was that Apple’s APIs would be the needed boost but, although they are a very good starting point, we have learned that they need considerable expansion to give us what we want.
We now find ourselves at a junction. With further work needed to build on Apple’s APIs, do we continue with them or do we look for something else? Could we change tack and build our games on something that is already more complete, something better than we could build in-house and could this help us to complete our projects faster?
Hunting for tools we go…
The main reason we did not consider a 3rd party tool before was that, in the past, using them has been problematic. For years, there have been free or affordable tools, others have come and gone. Many looked good at first but, as you got further into the project, you quickly came up against limitations which meant they were not usable. There have also been usable tools. Some, were used to build incredible games, but these too had a problem. Their very large up-front costs made them inaccessible to small startups.
In recent years – perhaps due to the rise of independent developers – this has begun to change. Engines which look to be both usable and affordable have appeared and, after some research, we decided that the Unreal Engine would be worth trialing. We also considered Unity, but while it looks very good, it isn’t such a good fit for us. It does though, share many of the features on which we based our choice of Unreal…
- No up-front costs and you only need to pay 5% once your gross profits exceed $1 million. This is off the sale price of the title, so with Apple (who take 30%), you are really looking at just over 7% of your companies gross income. It might sound like a lot but we don’t think it is. With the development of your own engine and tools, in a reasonable time and to a good standard, plus the tools continued development, you are really going to need extra staff. It looks as if we may need additional programmers for some aspects of Unity too. So working the numbers, $1 million of gross sales, results in $50,000 of fees to Epic. That’s (at most) two full-time developers and would not seem like a realistic alternative to the tools and technology that Unreal gives you. Epic is going to have a much larger team than that, plus they give you the tools now, with no up-front costs and no lag while the tools are in development. We think you’d need to pay a lot more than 5% of your gross sales into the upkeep of your own engine – unless your gross sales were considerable.
- The Unreal tools run on Apple Macs – they certainly could run a lot better and make use of iOS simulators, but they do work acceptably. This may be a non-issue for some teams but when you have been working on iOS devices in Xcode, you likely have an office full of Macs. Having the company move all of its machines over to Windows would be an up-front cost.
- Unreal is “battle-tested”. Epic and others have actually developed games and brought them to market with this toolset. This has certainly been done with Unity too, but there are some other products that claim to be able to do this and, for them, our concern is that this claim could be theoretical. Until a number of games, actually developed using the tools, are released we can’t be sure. Using these unproven tools could leave us in the position of being one of the first to try and complete a game with them. This is not something we want to do as it’s possible we will find a major issue or issues, which may only come to light late into the project, and could cause a major problem or even stop the game’s release.
- That brings us to another important issue – support. Unreal has a large user base, meaning you can find solutions to most issues online somewhere. It also has extensive examples and tutorials, even a series of videos plus extensive 3rd party support. So does Unity of course.
- Unreal has clear onward development of their engine, with demos of version 5 on the Playstation 5 and the Digital Humans making their rounds at the moment. While it’s unclear how much of this will translate to the far less powerful iOS devices (which Epic state will be supported) the fact that this development is happening shows intent by the Unreal Engine team to improve and progress the toolset.
- Extensibility in the form of both Blueprints and C++ code or both at the same time. One allows fast development and the other is useful for increasing performance or more complex tasks. It’s also possible to develop plug-ins to extend the system’s functionality – again there are tutorials.
- Support for and integration with other tools such as SQLite (with included SQLiteCore and optional plug-ins), Blender (with a handy import / update utility), source control including Git and, by no means last, Apple’s APIs – such In-App-Purchases, iCloud and Game Center.
Are there any disadvantages to Unreal? Unfortunately, yes. We’ll have to re-write some code in C++ instead of Swift. While Swift is a great language for development with strong bug resistance and fast development, it almost certainly runs slower than C++ and Unreal does not support it. We also have to learn the new tool-set and how to develop things in it, which is always a bit frustrating. However, the benefits should hugely outweigh the disadvantages.
What are we doing with Unreal?
For our trial of Unreal Engine 4, we decided to resurrect a stalled project. It was our first game idea and also our most problematic! Its use of physics and many other technologies has seen so many extensions to Apple’s APIs, work outstanding and the requirement for a good level editor on the Mac, that it was decided to shelve it and concentrate on other more straight forward projects instead.
So far, the trial with Unreal has seen dramatic progress. We’ve gone from installing and scratching our heads about exactly how to use the tools, to a working proof-of-concept of the game (running on a physical iPhone 11 Pro) in around one week. Of course, this is helped by all the development of the game that happened under Apple’s APIs, but it is still much faster.
The rapid progress has resulted in the decision to continue the game under the Unreal Engine and, in addition, we’ve decided to trail an educational app in the tool. Only time will tell if everything works out on the two projects, but currently we are hopeful that we’ve found our new engine.