For over five years, Amazon has been developing its own fork of CryEngine, flavored with AWS services. Over the years, Lumberyard has moved away from its origins and now it's time to change the render: meet a completely new physically-based Atom render.
Why do they need a new render?
The old version of the render was invented back in the era when the OpenGL and DirectX 11 APIs dominated the market. Just to make sure you know what's going on: graphics APIs are a set of rules by which game engines communicate with a GPU. Now they are a trio of DirectX 12 Ultimate (for Windows and Xbox), Vulkan API (for Windows, Android, Linux), and Metal API (for macOS, iOS, iPad OS).
New versions are able to work much better with multiple cores of the central processor, and not overload one core and hang everything on it. The rendering itself can run in parallel and be divided into many stages, which are laid down in the rendering pipeline.
But "just enabling" the new API is not enough – for a real advantage, you will have to rewrite the render and give the developers the tools to manage this very pipeline. This cannot be configured for each game out of the box.
What is Atom Render in Amazon Lumberyard?
Amazon has set a number of goals for this new render: for example, high-quality global illumination (Global Illumination), proper Raytracing support, fast rendering times, but at the same time flexibility and ease of customization, even for inexperienced users.
The main for them was the DirectX 12 Ultimate render, as well as its HLSL shader language. It has been transformed into the slightly more flexible and versatile Amazon Shading Language or AZSL. It already converts for all platforms and APIs, and also allows you to use resources multiple times in different materials and shaders.
They have assigned their own JSON syntax to control the pipeline. It literally describes passes just like a scene structure in other engines or a web page when developing in any framework you know. So, it will be relatively easy to learn.
In addition, all resources are properly structured and can be controlled in an Object-Oriented style: so, get ready to enjoy inheritance, extending or rewriting things (like materials) on the go.