O3DE

O3DE 24.09 Stabilization - The Big Leap

O3DE 24.09 Stabilization - The Big Leap
The new Basic level template, captured on the ROG Ally

A preview of the next major O3DE release, due in September, 2024

💡
This post covers a prerelease version of O3DE from July, 2024. The stable version is expected in September, 2024, and should iron out issues present in this preview.

Back in May, I eagerly anticipated a "24.05" release for O3DE, following the usual release cadence over the last few years. But the month came and went without any sort of announcement. With a bit of research into the development roadmap, I saw that plans for 2024 are a bit different from previous years. This time around, we've seen three "point" release updates for last year's 23.10 release, and we're only getting one major release in 2024 – O3DE 24.09.

Thankfully, this 11 month development cycle is bringing some major advances to the engine, compared to the 23.05 and 23.10 releases. I've had a chance to poke around with a preview build of the 24.09 stabilization branch (think of it as an open Beta release). Here's my take:

New Templates

With the 24.09 release, we get a few new Project and Level templates to provide additional starting points for different needs.

  • The existing "Default" and "Minimal" Project templates carry over from previous versions
  • A new "Script Only" Project template allows developers to create projects that use ScriptCanvas and Lua without having to muck around with CMake and Visual Studio (Nice!)
  • The Multiplayer template is available for download (I believe this was also available in 23.10)
  • Three ROS2 templates are available to download for users focusing on robotics

In addition, the New Level screen gives us these templates:

  • Basic (a camera and grid with no default meshes or visible skybox)
  • Default (the classic checkerboard ground plane with a Shader Ball)
  • Empty (a blank level with no child entities)

Obviously that's not groundbreaking, but at least I won't have to delete the Default Cube Shader Ball every single time I start a new level. New users can still reference the Shader Ball scene to see how to set up Entities and Components in a level.

A screenshot of the New Level dialog box in O3DE 24.09, showing level templates called "Basic", "Default_Level", and "Empty".
The New Level dialog box now shows thumbnails for the three available level templates.

Note, also, that the Script Only template will only be available in the pre-built version of O3DE when 24.09 releases. It's a great option for people who aren't familiar with Visual Studio and CMake, but if someone has the resources to build the engine from source, it doesn't really make sense to give up the flexibility of being able to add C++ code to the game project.

Android Project Generator

Under the dropdown menu for projects in the Project Manager, we get a new option to generate an Android Studio project, to ease deployment to mobile phones and the Meta Quest devices. That being said, this only seems to work when using an engine built from the GitHub repository.

While this option should greatly simplify the process of porting a project to Android compared to the command line workflow in previous versions, it definitely isn't magic. Developers should already have Android Studio, the Android 12 SDK, Android NDK 25, the latest Command Line Tools, OpenJDK 17, the Ninja build system, and Gradle 8.4 installed. The O3DE game project will also need some Android-specific configuration, and asset processing in order to work on these devices.

Not for the Pre-Built Installer Workflow

At the present, the pre-built binary release includes the Android Project Generator option in the Project Manager, but doesn't actually launch the tool. Since I'm just smart enough to be able to get myself into trouble, I was able to get it to launch the tool by copying the relevant Python scripts from a Source distribution to the corresponding location in the installed engine. After some finessing, I actually got it to create an Android project, and I could open that project in Android Studio. Neat!

Unfortunately, I was unable to get that project to actually build. Digging into it, I figured out that it failed because the prebuilt engine distribution is not configured to support monolithic game builds. At that point I gave up on trying to work around it, and decided to try the GitHub workflow instead. If this was supposed to work in a prebuilt engine, the developers would have left it in. Still, it would be nice if we could deploy to Android without having to build the engine from source.

💡
I'll post more information about the Android Project Generator and deploying to a device once I've got things up and running.

Improved Support for OpenXR Developers

To be fair, O3DE has offered OpenXR gems for at least the last two major releases. At the same time, the Android Project Generator makes it a lot easier to actually deploy to Meta Quest devices, beyond simply rendering on the host machine and using Quest Link.

The O3DE YouTube channel also gives an in depth guide to setting up the engine for VR development. The first video is about half an hour long, but it's packed with great information, taking developers step by step from a standard source engine build to rendering XR content in the headset:

Fun fact: this video is how I found out the Android Project Generator exists, and that it's just Python scripts!

In particular, the video also points out that O3DE reduces the turnaround time for iterating on VR projects, compared to the leading engines today. Developers can see changes in the headset within seconds, rather than waiting for the project to build and deploy. If devices like the Quest 3 can generate mainstream interest in VR and AR applications, O3DE could be the best way to develop those experiences.

Other Changes

PhysX 4 & 5 Gems

24.09 now gives developers the option to use either PhysX 4 or PhysX 5 in a project. The O3DE team has suggested in the past that the engine's modular structure would allow game developers to swap out components like the physics engine—potentially for solutions like the Jolt Physics library.

Mobile Pipeline

In addition to the existing "Low End" Pipeline, the latest O3DE introduces a "Mobile" pipeline for targeting Android and iOS devices. Developers who need to target multiple platforms can enable as many of these pipelines as needed. Just be aware that any the Asset Processor will need to run through all visual assets in the project for each pipeline that's enabled.

Conclusions

All told, I think these improvements make a solid case for the slower release cadence. It takes a lot of time and effort to polish up all of the new features into a stable release, so a longer development cycle is better for bigger changes, and more quality assurance.

I hope that the Script Only project template can lower the barrier for entry, so less technical users can take advantage of the free Atom renderer for real time 3D visualization. This could enable use cases such as filmmaking, and architectural visualization, to bring O3DE closer to Unreal Engine's capabilities – especially as Epic raises prices for these use cases, and Unity does whatever it is they've been doing. O3DE still isn't quite ready to be a drop-in replacement for these engines, but this is certainly a step in the right direction.

Filed to:

O3DE | For Creators | Learn

Read more