Amazon recently announced that it will be sourcing the 3D Engine and related to the Amazon Lumberyard Game Tools effort. Since Lumberyard is based on CryEngine 3.8 (~2015 vintage), this raises the question as to whether this new engine is open source – creatively named Open 3D Engine (O3DE) – It is an open source version of the CryTek engine, and what this brings for those who like to tinker with 2D and 3D games and the like.
Reading the marketing materials, one might be forgiven for thinking that O3DE is the best thing since 3D bread slicing, Amazon’s charitable gift to unwashed fans to free them from the chains imposed on them by special engines like Unity and Unreal Engine. A closer look reveals that O3DE is Lumberyard, but with many parts of Lumberyard replaced, including renderer still in the process of being rewritten from old CryEngine code.
What makes a good game engine?
My game development attempts started with the Half Life engine and the Valve Hammer editor, as well as the Doom map editor. This means that some expectations have been made before facing current game engines and tools. The development experience with the Hammer editor in the late ’90s was largely WYSIWYG, and when I just started with Unreal Engine 4 (UE4) several years ago, it was pretty much the same experience, making it relatively easy to get down to earth.
Installing UE4 requires a few steps: After installing Epic launcher using its installer and logging in with your Epic Games account, it takes a few clicks to install any of the available versions of UE4. Next, the wizard allows a new game project to be created using an optional template. This then creates a custom editor for the project which is also the game, so you can edit it while having a live preview window that you can interact with.
To build the game, you press a single button and you exit a game for any of the wide range of supported target platforms. In essence, this experience allows for the most important advantage of a good game engine: the ability to create games without having to fight a battle with the engine’s tools or building a system. Many users are likely to be graphic artists or the like who don’t care much about the internals of the tools they are using.
Here is a relatively painless UE4 experience: with the Blueprint object system, you can communicate complex games and game logic in a graphical editor, without having to write code, although C++-based development is possible for different levels of customization.
If we take this tiered system of complexity as the gold standard for what makes a good game engine and the tools associated with it, how does O3DE and its core competition (Unreal Engine, Godot, Unity) compare? At first glance, they look somewhat similar, as they are all written in C++. Perhaps the most notable difference is in the languages they support to extend the engine’s features.
Here Unity supports C# for its scripting API, Godot offers GDScript (like Python) in addition to C# and C++. Unreal Engine is extended with C++, as is O3DE. It’s all well and good then, but what’s their use like?
Before we can install the development tools on the platform of our choice, we need to check the system requirements. For O3DE, these are:
- Windows 10 1809 or higher, or
- Ubuntu 20.04 or higher.
This contrasts with the UE4 minimum requirements for Windows 7 or higher, or macOS 10.9 (Mavericks) or higher, both of which offer a dual installer. For Linux, the engine must be built from source, but it must work with Ubuntu 16.04 LTS and above, as well as a host of other Linux distributions. For Unity, the system requirements are the same and requires Windows 7 SP1+, macOS 10.12+, Ubuntu 16.04+ or CentOS 7.
Although Unity does not require the use of the Unity Hub app (yet), it is heavily touted as a centralized way to manage Unity projects and licenses, similar to the Epic Games Launcher for UE4. Whether this is an asset or a burden will largely depend on the individual’s workflow. To manage multiple projects concurrent with their engine versions and keep them updated, having such a central tool can come in handy.
Unlike Unity and UE4, Godot does not claim any strong system requirements based on the website, and must compile on any platform that supports the compiler and required dependencies. The binaries provided come in an archive, without a standalone installer and driver, which makes this probably the easiest to install for these drives.
When you install O3DE on Windows, it installs the O3DE Editor and Project Manager. For Linux (Ubuntu 20.04 above or above), there is a DEB package that you can install after downloading. From the project manager can create and build new projects. Other than the limited number of supported development platforms, this workflow appears to be relatively comparable.
Since there will be little point in installing a development environment if it can’t do the task at hand, we have to back up a bit and look at the platforms that these engines can be used for development. This should tell us whether we are interested in spending our time and energy learning it. Here O3DE falls flat, at least in terms of documentation, or lack thereof.
While the Android and iOS mobile platforms are listed, finding specific information is tricky, just as it is in macOS, and only some of the information is included in Linux at the time of writing. This contrasts with Godot, which lists its platforms in its feature list and includes everything from desktop, mobile, web, and console platforms, including detailed information on how to build for these platforms.
For Unity and UE4, we’re seeing a similar view of the target platforms and documentation to get started. O3DE appears to be mostly limited to popular desktop and mobile platforms, despite the paucity of documentation on supported features. The build instructions for O3DE intents say that it requires CMake to be manually configured and this build script generator to run before any intent can build. Whether CMake is better than using Godot for SCons is another can of worms, but it highlights the technical knowledge required for both U3DE and Godot.
Documentation and support
It is undeniable that Unity, UE, and Godot are very popular in game development, with the former two having strong commercial support as well. All of these also have a large community behind them, made possible due to the (relatively) open nature of these products. All of them can be used freely and have many years of development for everything from AAA to metric loads of indie games behind them.
The upshot is that even if the documentation isn’t clear about something or is missing some detail, there’s a good chance the community can help with any questions. This contrasts with the engine formerly known as Lumberyard, which release notes for the latest release at the time of writing say is still largely in development and no one should expect to build a production-ready product with it.
This beta sentiment persists largely in the documentation as it exists today, with documentation not elaborated by other engines. Given the Amazon Lumberyard engine’s lack of popularity over the past years, none of this is probably too surprising. Regardless, these results define what one should expect from diving into O3DE today.
All this raises the question of what the future of this project might be. Will you become a competitor to Godot, Unity or – God forbid – UE4/5?
Perhaps the biggest asset of products like Unity and UE is that they can coexist in the gap between AAA games and small developers as well as hobbyists. Most of this is handled by the licensing system for both. For UE4, this means free use and no royalties if the engine is used for anything other than game development. If you build a game with UE4 that grosses over $1 million USD, there is a 5% royalty fee for any amount over the first million.
For Unity, the Personal plan is free, as well as the Student plan. If revenue is over $100,000 per year, the Plus plan applies for $399 per seat. These plans increase as revenue increases (next > $200,000 per year). As with UE4, if you have not marketed the software, there is no need to pay. This contrasts with Godot, who has no commercial plans, but receives monetary rewards and donations, as well as code contributions.
Although many studios have their own in-house game engine, both Unreal Engine and Unity see their products used in a variety of commercial programs, all ensuring that even developers and young hobbyists can take advantage of the cutting-edge features applied to these commercial clients. While Lumberyard could theoretically become something similar to Unity and UE4, it appears that it hasn’t received nearly the same level of funding as these two products.
Yet another drive
Despite the lofty claims about O3DE, it’s hard to ignore the elephant in the room. After Amazon’s game development ambitions have been scaled back a lot, the Lumberyard-based game New World received only average reviews while Lumberyard was de facto left out in the background. Thus, O3DE appears to be a cynical way to cut the costs of developing a game engine that appears to be in its final stages.
Perhaps the best thing to take away from this is that an existing project like Godot can take the useful parts out of the O3DE engine, which would give users the best of both worlds: a completely free and open source game engine, with good tools and great community support for it. Whether this will involve moving through the AWS Cloud Support module in O3DE is anyone’s guess.
But at the end of the day, developer time in the world of OSS is precious. Dividing it among more and more similar projects wouldn’t be very helpful. Pooling resources seems to be the wisest course out there.
As for what’s best for people who just want to make a game, alone or with a couple of friends? UE4 or Unity if you’re not interested in playing around with the guts of the build system and tools, otherwise Godot might seem like a platform that might be suitable for anything from simple mobile games to more complex desktop games or even console games.
But O3DE? We’ll likely see over the next months or years where it ends up being and whether it becomes something that’s capable of creating production-ready games. It’s not over until the last beaver swan sings.
[Heading image: Open 3D Engine editor with Amazon Shader Language file and asset from the game Deadhaus Sonata open. (Credit: O3DE project)]