Blog

Writing Custom Effects for the Editor Mode Visual Feedback System

May 7, 2023

In this blog post, AWS engineer John Coimbra Walsh will show you how you can implement your own editor state effects using the Editor Mode Visual Feedback system.

The Editor Mode Visual Feedback system allows for the creation of custom, post-processing effects in the viewport to display important feedback about viewport editing workflows. As we will see in this tutorial, adding more feedback effects is a straightforward process.

Project structure

Below is the project structure for the effects we will be using in the following steps. The files suffixed with (new) will be newly created in the steps whereas the files suffixed with (modify) are existing files to be modified.

...

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

May 4, 2023

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.

...

Explore Multiplayer Gaming with the O3DE Multiplayer Sample - Now Available!

May 3, 2023

We are happy to announce the release of the O3DE Multiplayer Sample Game (MPS). The MPS is a fully open source mini-game where players battle one another for dominance in a multi-tiered, under-construction, Starbase. This new sample game is intended to serve as an example for the O3DE community to use in the creation of other games as well as to demonstrate a number of features in O3DE, including networking, material canvas, and the setup of visual effects setup using the PopcornFX gem , and audio effects using the WWise gem .

...

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

April 26, 2023

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.

...

Vectors, Matrices & Matrix Order

March 1, 2023

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:

...

Google Test Matchers - Part 3

February 8, 2023

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.

...

Google Test Matchers - Part 2

January 25, 2023

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:

...

Google Test Matchers - Part 1

January 11, 2023

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.

...

The “Magical” World of Compilers, Linkers, and Loaders

December 28, 2022

In this blog from O3DE Technical Steering Committee member Jeremy Ong, he goes through the process of compilation and linking used by the MSVC compiler - useful for when you start encountering compilation and linking issues!

Compilers and linkers are not always at the forefront of our minds when we code. At best, we often work off of a vague mental model of how they behave, but while our imperfect intuition might serve us well in many circumstances, not having a more comprehensive view can certainly get us into trouble. It’s possible that our project builds and “works,” but in a way that is suboptimal. Over time, the cumulative inefficiencies of small issues and mistakes made by hundreds of engineers over a growing codebase can add up to become massive workflow problems. If the project you work on or work with exhibits any of the following symptoms, it’s time to take a look at what’s going on in linker-land.

...

Remote object support in Open 3D Engine

December 14, 2022

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.

...