Connect with the O3DE Community

Get connected, get inspired, and get to know the many diverse people who contribute to this open-source effort!

Blog

What’s going on in the O3DE community? Read the blog posts and catch up on the latest news, insights, and feature development.

Get Ready to Level Up Your 3D Game and Robotics Simulations with Open 3D Engine Version 23.05 and Join the O3DE Jam for Creative Fun

We’re excited to announce the newest release of the Open 3D Engine (O3DE) , Version 23.05, which is jam-packed with enhancements and new features. In addition to usability and stability improvements, new capabilities will help enable developers to build games, robotic simulations and other 3D applications alike.

To celebrate, we’re holding our first-ever O3DE Jam beginning tomorrow where the community can come together to build some seriously cool 3D experiences using all the new features of this latest release.

Read blog post
Calling All Open Source 3D Developers: Let’s Jam in the Wasteland!

One theme. One open source 3D engine. Eighty hours. Limitless possibility.

Join us May 5-7, 2023, for the first ever O3DE Jam! With a theme of “Navigating the Wasteland,” this virtual hackathon-style competition will provide a showcase for open source developers around the world and unleash the power of Open 3D Engine (O3DE).

So, put on your creativity cap, download the latest version of O3DE, and prepare to show us things we might find in a postapocalyptic future – and how those things interact with their wasteland surroundings.

Read blog post
Vectors, Matrices & Matrix Order

In this blog post, AWS engineer John Coimbra Walsh covers the basics of using vectors, matrices, and matrix order. This is a complicated topic for novice graphics programmers, and hopefully this breakdown can help you!

Matrices & vectors

An \(n \cdot m\) matrix consists of \(n\) rows and \(m\) columns. The product of two matrices \(\mathbf{A}\) and \(\mathbf{B}\) is well defined when the number of columns in \(\mathbf{A}\) matches the number of rows in \(\mathbf{B}\). Their product is a matrix with the number of rows of \(\mathbf{A}\) and the number of columns of \(\mathbf{B}\). Thus, for a given \(2×3\) matrix \(\mathbf{A}\) to be multiplied with a given \(3×2\) matrix \(\mathbf{B}\), the product is calculated as follows to produce the resulting \(2×2\) matrix:

Read blog post
Google Test Matchers - Part 3

Google Test Matchers - Part 3

Topic

Wrapping up the introduction to Google Test matchers. Please see Parts 1 and 2 for more information.

Motivation

Making use of helpful library features to improve the readability, succinctness and maintainability of our tests.

Examples

Custom Matchers

In Part 2 we touched on writing our own custom matchers with certain math types but didn’t really explain them. In this entry we’ll look a bit closer at what’s required.

Read blog post
Google Test Matchers - Part 2

Google Test Matchers - Part 2

Topic

Continuing the introduction to Google Test matchers. Please see Part 1 for more information.

Motivation

Shorter, clearer tests that take the boilerplate and fragility out of testing.

Examples

Math types

Matchers can be very useful when writing unit tests for math types (which nearly always require some sort of epsilon check). We know to use EXPECT_NEAR when testing floating point values but this can get unwieldy when working with vector or matrix types. We should not do this:

Read blog post
Google Test Matchers - Part 1

Google Test Matchers - Part 1

Topic

An introduction to Google Test matchers with a focus on how they can improve the quality of our tests.

Motivation

We want tests to be fast to write, fast to run, easy to understand and informative when they fail. With Google Test matchers we can achieve all these and more. Google Test matchers are an incredibly useful tool to simplify our unit and integration tests. They are extremely expressive, leading to more succinct tests which are easier to write and maintain.

Read blog post
Remote object support in Open 3D Engine

Background

In the 21.11.0 release of O3DE, we added the ability to display Gems outside the official Gem catalog. Using Project Manager, you can register an external Gem source on a web server with O3DE metadata to display, pull, and register remote Gems. This new workflow makes sharing Gems the community creates easier by removing manual steps. Before the 22.11.0 release, adding an external Gem was a manual process of downloading and extracting the Gem, then using the O3DE CLI scripts to register the Gem for the current engine. The remote Gem functionality automates these steps. Once a valid O3DE repository is registered, a single CLI command downloads, extracts, and registers the Gem. Project Manager was also updated to display Gems from a remote repository and then download, register and enable Gems for the current project⁠—all in one step.

Read blog post