Version:

Release Notes for Open 3D Engine 2111.1

Good news, everyone! The Open 3D Foundation is proud to announce that we’ve delivered our first stable release of Open 3D Engine (O3DE), version 2111.1.

Highlights

Open 3D Engine binaries installer

There’s now a binary installer for Windows for Open 3D Engine! Now you can try out our creative tools without building from source every time. This model - sometimes called “Open 3D Engine as an SDK” or “Open 3D Engine toolkit” - delivers pre-built binaries, DLLs, and headers which you can use for local development. For users who want to try out our tools without going through build time iterations, or are only interested in seeing how to write Gems and extensions to O3DE which don’t require core source changes, the installer is an ideal new way to try out these workflows and find issues with us.

For everyone who’s joining us as a creative worker in simulations and games eager to try out Open 3D Engine: Please keep in mind our journey is just beginning! Don’t expect to make a full, production-ready game in O3DE - yet. Right now we want our community to grow by playing with these tools and giving us feedback that we need to make O3DE a long-term success. That means if you’re committed to trying the binary installer, be prepared for hiccups as you work, and be ready to file bugs (or maybe even make a code contribution!) as you encounter issues.

Want to try it? Download the Windows installer for O3DE Stable 21.11!

Note:
For this release of O3DE, we’re using two version numbers due to some technical limitations of Windows that we’re working on resolving. The source releases of O3DE are versioned 2111.1, and binary installers are named Stable 21.11.

Linux support

Open 3D Engine is now considered to be available in preview for Linux! Don’t expect to have support for everything you need quite yet, and we’re still making sure that all the bugs and issues are ironed out, but you can now run O3DE client applications and runtimes - like the O3DE Editor itself - on Linux desktop.

The O3DE Editor running on an X desktop environment on Ubuntu 20.04 LTS (Focal Fossa)

Right now we only have official support for Ubuntu 20.04.3 LTS (Focal Fossa) as a pre-built binary debian package. Other Linux systems which meet the hardware and software requirements are considered experimental and may need modifications to successfully run Open 3D Engine. To get started with O3DE on Linux, check out the Linux install documentation. Or, learn how to build O3DE for Linux from source with the Linux build documentation.

And of course, you can download the Debian package for Ubuntu 20.04.3 LTS!

Atom improvements

Atom, the rendering library that powers Open 3D Engine, has received numerous improvements in this release, too. Atom is now supported on Linux in a preview state alongside this release’s support for the platform! In particular, AZSLc now compiles for Linux, null video devices no longer cause crashes, and XCB connection support was added. The Vulkan rendering components of Atom were also all-up improved to help bring Linux support forward.

More than just improvements and new platform support, Atom also now has improved debugging tools! First, the CPU profiler has been elevated to work with all of O3DE, allowing everyone to get more accurate profiling for their runtimes. We’ve also added support for renderdoc and provided a custom GPU visualizer so that you can perform advanced diagnostics on rendering pipelines.

For content creators, Atom now has support for TressFX 4.1 via the AtomTressFX Gem. With the AtomTressFX Gem, you have the power to create, model, and simulate realistic hair, fur, and other dense thin-volumed surfaces.

Editor improvements

Open 3D Engine Editor 2111.1 has major improvements across the board in terms of performance and stability, like the rest of the engine, and content creation workflows are getting a lot of attention! Thanks to user feedback and sessions conducted with the O3DE UI/UX Special Interest Group, we collected a number of important adjustments that our community wanted.

Most importantly, prefabs are now represented as a single object in the world, and you must use the Edit Prefab action on a prefab in the Editor in order to edit the prefab itself. Prefab editing is available through double-clicking on an object in the Editor. While locked to the prefab edit mode, other instances of the prefab visible through the Editor viewport will receive real-time updates.

And another change that we thought was so important that it deserves its own callout: This means is no more “sticky-select” in the Editor by default! You no longer have to double-click when deselecting an entity that you’re editing. If you’d like to re-enable this feature, it can be changed in Editor Settings or with the /Amazon/Preferences/Editor/StickySelect registry setting.

Heightfield-based terrain

We now have an experimental terrain system! Even basic terrain is important for designing outdoor environments and larger-scale worlds. The terrain system uses heightmaps to define deformations over a geometric plane to create world terrain. Anyone familiar with heightmaps should be able to play around with terrain now, and we encourage all of our users to try this feature when creating outdoor scenes in Open 3D Engine.

Heightfield Terrain editing in the O3DE Editor

For the full information on implementation progress and the planned design, please see O3DE SIG-Content RFC #4 .

External Gems support in Project Manager

Open 3D Engine Project Manager now has improvements which allow the support of Gems that exist outside of the official Gem catalog! This feature comes along with the ability to register a source control repository with the Project Manager, and use this as an external source to pull and install Gems for your project. In addition, we’ve fixed a critical bug: Project Manager now correctly auto-adds and auto-displays Gem dependencies which affect your project configuration.

Script Canvas performance and editing

2111.1 contains plenty of performance improvements, but one which affects all project runtimes and performance in the Editor is worth calling out. Script Canvas now uses JSON as its file format instead of XML, which gives an average 71% file size reduction. Smaller files means faster loads, too! And not just that, but with the migration away from XML serialization and towards more flexible JSON tools, it’s easier than ever to write external tools and scripts that can ingest Script Canvas JSON files.

Features

Networking

  • Added support for Network Hierarchy of Entities, which provides a way to group network entities to combine their multiplayer input processing. ( RFC )
  • Added support for networking scripting inputs, which enables extensive use of script canvas to build and run networking scripts ( RFC )
  • Added Linux support for Client and Server targets in O3DE-MultiplayerSample .

Cloud Services

Testing

  • Parallel Python Test Execution and Standardization - Test Automation Framework that allows for parallel execution of python tests using multiple editor instances
  • LyTestTools support for Linux

Graphics and Audio

  • Add the AtomTressFX hair Gem for cutting edge hair rendering technology based on TressFX 4.1
  • Add support for refresh rate syncing and sync intervals
  • Enable Azslc for Linux
  • Add support for xcb connections for Linux/Vulkan
  • Add Renderdoc support via command line
  • Add Pix support via command line
  • Move RHI settings into settings registry
  • Add GPU Buffer/Image memory visualizer
  • AtomStarter game related fixed for mobile
  • Enable PipelineLibrary to support PSO caching for DX12 and Vulkan
  • Promote CPUProfiler from RHI to O3DE
  • Add support for GPU descriptor heap compaction in DX12
  • Add support for taskgraph to SRG compilation
  • Optimize SRG compilation to allow partial SRG updates
  • Enable parallel encoding for Vulkan
  • Fix numerous Vulkan validation errors
  • Fix null descriptor crash for devices without null descriptor extensions
  • Fixes for managing and creating Vulkan swapchains
  • Fix 3rd party path for Android
  • Improvements to ASV samples for Qualcomm and Mali devices

Core functionality

Editor and tools

Prefabs

Terrain

  • Experimental Terrain System with mesh, physics and macro material support. This is in an optional Terrain Gem that is disabled by default. Terrain System

Viewport

  • Updates to how entity space is handled in the viewport. Update how World/Parent/Local space function in the viewport
  • Updates to how selection works in the viewport.
  • Update how entity selection works in the default viewport
  • Can now create a project-specific Editor desktop shortcut from each project’s menu. (Windows only)
  • Can open CMake-GUI from each project’s menu and from the project’s Build button, pre-filled with the paths for that project.
  • Project Manager will now prompt to get and setup Python on start up if Python is not found.
  • Engine Name, version and path now visible in Engine Settings.
  • Gem Catalog shows notifications when Gems and their dependencies are added or removed.
  • Gem Catalog shows Gem dependencies.
  • Gem Catalog notifies you when removing a Gem will also remove Gem dependencies.
  • Project path automatically updates based on project name text input field.
  • External Gems can now be added from the Gem Catalog.
  • Project Manager logs output to the .o3de/Logs folder.

Platforms

Build and Install

  • Windows installer released for the 2111.1 release
  • Windows nightly build installer available for the Development branch
  • Debian package for Linux available for the 2111.1 release
  • Debian nightly build package for Linux available for the Development branch

Bug Fixes

Networking bug fixes

Audio bug fixes

  • Material files are now backward compatible with material property renames, by defining version updates in the .materialtype file.
  • Reduced build dependencies on .materialtype files so that modifying shader code will no longer cause all .material and .fbx files to reprocess.

Core Editor and Tools bug fixes

Content functionality bug fixes

Platforms bug fixes

Deprecations

Known issues

  • Certain 3rd-party Python modules cannot load in the O3DE Editor runtime on Linux, which blocks multiple tests using EditorPythonBindings.

  • MaterialType Default Values Not Initially Applied error. When changing a default material property value, materials may continue using the prior default value.

  • MaterialType New Property Not Initially Applied error. When adding new material properties, the Asset Processor may initially fail for material files, and the AP needs a re-scan or restart.

  • GameLift server launchers are manually relocatable. There is currently no automated build or asset layout generation. See instructions here: AWS GameLift Gem Build Packaging for Windows and AWS GameLift Gem Build Packaging for Linux. (You can ignore GameLift-specific steps if you are not relocating your servers to GameLift instances).

  • Monolithic release server builds are currently not supported.

  • Network entity hierarchies are limited to hierarchies with max count of 16 entities.

  • imgui keyboard is not working in server launcher.

  • console is not working on server launcher.

  • The legacy GridMate networking layer is still shipped in code. We recommend you do not use it for networking. Instead, use the new O3DE networking components: O3DE Networking documentation.

  • Mouse controls are not friendly to working over remote desktop connections. See https://github.com/o3de/o3de/issues/5339 . You may need to turn off Capture Mouse Cursor mode in the editor (Edit -> Editor Settings -> Global Preferences -> Camera)

  • On CPUs with 6 or less hardware threads, the Editor may freeze during certain editing scenarios due to running out of internal Job Manager threads. The number of CPU hardware threads affects the number of Job Manager threads created, which currently has a hard minimum value of 2. At 6 CPU hardware threads, this minimum is reached. The issue can be worked around by creating a user\Registry\boostrap.setreg file with the following contents:

    { "Amazon": { "AzCore": { "Runtime": { "ConsoleCommands": { "cl_jobThreadsMinNumber": 3 } } } } }
    

    This configuration file sets the hard minimum to 3 threads, which ensures that the Job Manager has enough threads to continue processing.

  • The O3DE Editor may crash if launched before project assets have been processed and PhysX tab in FBX Settings is used. This is due to the global physics material library asset being not ready to be used.

    To work around this issue, run AssetProcessor to process project assets before launching Editor for the first time. After all assets are processed initially, Editor can be launched without manually running AssetProcessor.

  • If the user has previously used O3DE and an o3de_manifest.json file exists in their <user>/.o3de (Windows) or $HOME/.o3de (Linux) directory, when they go to build a project using the current installer version of O3DE, it may fail with an error similar to the following:

    CMake Error at CMakeLists.txt:10 (find_package):
    By not providing "Findo3de.cmake" in CMAKE_MODULE_PATH this project has
    asked CMake to find a package configuration file provided by "o3de", but
    CMake did not find one.
    Could not find a package configuration file provided by "o3de" with any of
    the following names:
    o3deConfig.cmake
    o3de-config.cmake
    

    To work around this issue, perform the following steps:

    1. Go to the <user>/.o3de or $HOME/.o3de directory (this directory is hidden on some platforms by default) and delete the existing o3de_manifest.json file.
    2. Launch O3DE again to create a new one.
    3. Attempt the build again.

    At this point the build should succeed since the only reference is to the currently installed version of O3DE.

Notes

The current version of Open 3D Engine’s source code is 2111.1. Check out the known issues for 2111.1 (sources) and 21.11 (binaries).

Note: Source versions use the XXXX.X numbering model. Binary releases use the XX.XX numbering model, where the decimal place is moved to the left by 2 values from the original source code version, and any values after 4 are truncated.