Getting Started with Open 3D Engine (O3DE)
O3DE is an open source AAA game engine, developed under the supervision of the Linux Foundation. It was originally built by Amazon, as the successor to their Lumberyard engine, which was based on CryTek's Cryengine.
Is this just a repackaged Lumberyard? And wasn't that just a modified CryEngine?
Kind of, but not really? The AWS team's announcement for O3DE says the following about the relationship between O3DE and the legacy Lumberyard engine:
O3DE is very different than the artist formerly known as Lumberyard. We leaned heavily on our Lumberyard experiences, iterated, and improved O3DE for eventual collaboration and creative control. We kept the parts that customers loved most about Lumberyard and significantly revamped the rest. We aimed to build an engine that could stand the test of time in an open source world.
At this point, it's safe to say that O3DE is not Open CryEngine, and that it's distinct from Lumberyard, no matter how much Mike at GameFromScratch struggles to get it running.
What if Amazon loses interest in game development?
While Amazon has done the bulk of the work to get O3DE to its current state, the engine could live on even if Amazon pulled out of development. The overall project exists under the umbrella of the Linux Foundation, with support from various companies and individuals who are invested in the engine's future. Additionally, the complete source code is published under the terms of the Apache Software License, so anyone has the right to study, modify, and redistribute it, so long as they abide by the license terms.
Building 3D tooling from scratch can be cost prohibitive, take years to develop, and require significant resources to maintain. These developers end up choosing either to spend critical dollars reinventing the wheel, or to use proprietary solutions that can be difficult to customize.
â O3DE Announcement from AWS Team
There has been a significant consolidation in the game development industry around Epic Games' Unreal Engine. Cyberpunk 2077 developer CD Projekt Red has announced that their upcoming release of The Witcher 4 will use Unreal Engine 5, dumping the studio's own Red Engine. They're far from the only ones making the jump. In exchange, Epic Games takes a 5% cut of game revenue.
As O3DE matures, adds features, and gains adoption, it presents a different value proposition. Instead of paying royalties to another company, studios might choose to collaborate on features for the entire community (e.g. creating a competitor for Unreal's Lumen and Nanite), or customizing the engine to suit their specific needs. In either case, a studio that uses O3DE has more direct influence over the future of the engine than would be possible with a third party, proprietary solution.
Prerequisites
In contrast to the Godot Game Engine, O3DE requires some prep work to get it up and running. On top of that, the hardware requirements are similar to what Unreal Engine 4 needs to run.
Hardware
From the O3DE System Requirements page, the engine requires the following system specs at a minimum:
- Quad Core x86_64 processor @ 2.5 GHz
- 8 GB system RAM
- GPU with Direct X 12 and Vulkan support
- 4 GB Video RAM
- Shader model 6.2 (Raytracing requires Shader model 6.3)
- 40 - 100 GB available storage
- HD display
The recommended minimum GPU models include:
- Nvidia GTX 1060
- AMD Radeon Pro 560
- Intel UHD 630
It's worth mentioning that I was able to run the editor on a system with a 2.1 GHz quad core processor, and a mobile GTX 1050 GPU â though it didn't take much to get it to dip below 60 fps.
Software
The O3DE editor officially supports the following platforms:
- Windows 10 (1809 or later)
- Ubuntu 20.04
Support for running O3DE on macOS is currently experimental. The O3DE site suggests that it runs natively on x86_64, and requires Big Sur. Note that O3DE does not provide any macOS packages, so be prepared to build the engine from source, and expect bugs if you plan to use macOS. (Update 19 June, 2023: yeah, it's rough.)
On any platform, O3DE needs the CMake build tools (3.20.5 or later), and the native compiler for that platform (Visual Studio 2019 for Windows, LLVM + Clang 12 for Linux, and XCode 12.1 or later for macOS).
- For Visual Studio, be sure to install the Game Development with C++ and Desktop Development with C++ workloads
- Linux users need to verify that the system has a Vulkan compatible video driver, and install several development libraries that O3DE requires
For complete details, see O3DE's System Requirements page.
Installation Process
Like Visual Studio, O3DE's installer is a small download, which fetches the actual software packages from the network at install time. This is a large download, so be sure that the computer that's running the install has a fast, reliable Internet connection.
Aside from the relatively long download times, the installation process is fairly simple. At the time of writing, the engine really only provides the option to change the path where the engine will be installed. Once that is confirmed, the installer will do its thing until it completes installation, or fails.
Running the Editor
Once the installation completes, it's time to test drive the editor. On Windows, O3DE creates shortcuts for the following applications in the Start Menu:
- O3DE Editor
- O3DE Material Editor
- O3DE Project Manager
Opening O3DE Editor or the Project Manager brings up a list of projects. If no O3DE projects are found, it provides the option to create a project, or import an existing one:
When creating a new project, it will need to be built before it can be opened in the Editor. This will take some time â particularly if this is the first time the engine has been used, as it will need to download additional libraries.
Once the initial build has completed, the project can be opened for editing. Note that this will also take some time on the first run, as the Asset Processor will need to, well, process the various assets that are included in the project by default. Once this has finished, the editor will launch. A blank project will prompt the user to create a new level:
Pressing the "Create New" button will bring up a dialog box asking for a name to call the new level. Once the level is created, it appears in the editor:
While O3DE's default level lacks the charm of Unreal Engine's orange chairs, it shows off the basics:
- A Sun light
- A panoramic Global Sky
- A Shader Ball model
- A Grid object
- A Camera with default controls
- A Ground plane
Pressing Ctrl + G simulates the game in editor. The default level provides a basic control system for flying around the level in the simulator. Moving the mouse controls the camera angle, while the WASD keys move and pan the camera. Pressing Esc cancels the simulation.
Editor Layout
By default, the Editor has a similar layout to what Godot offers, but with some key differences. There's an Entity Outliner (like Godot's Scene tree), and an Asset Browser on the left, a Console at the bottom, and the Entity Inspector on the right.
Despite the superficial similarities, these panels work very differently from their Godot counterparts. Entities in the Entity Outliner don't have inherent types like Godot's Nodes. The generic Entities can have various Components attached in the Entity Inspector. Note that newly created Entities have nothing more than a Transform component.
Next Steps
After following this guide, you should have the O3DE editor installed, and be able to create and open a basic project. In the next article, we'll explore some of the features of the editor, and create a rudimentary level.