Guten Tag!

Here comes new Flax 1.11! This update brings many new features to graphics, editor tooling, and stability.

For this release, together with our contributors, we’ve made over 929 commits and merged 129 Pull Requests into Flax repositories. Thanks for your support!


As always, we will do a quick check around new features and highlights. To see detailed information visit the official release notes (including Migration Guide).


Made with Flax

We’re excited to showcase a gameplay trailer of game made with Flax:


Highlights

Custom Shading Models

Now, Flax supports adding custom shading models for lighting calculations without a need to modify engine source. Making custom toon shading for a stylized game or realistic anisotropy shading is easier than ever. Video above shows a simple Cell Shading with outlines that react to world-lighting changes implemented within a material graph. To learn more about see dedicated tutorial here.

Decal Layers

Another big feature in this release is a per-pixel objects masking in shaders via stencil buffer. This gives us ability to mask decals based on the object undermeath. Such feature allows to draw bullet hole decals only on environment, detail terrain surface with wet puddle decals that won’t affect other nearby objects by using masking. Post Process shaders can access this data too for creating object outlines or highlights.

New Memory Profiler

Flax has now a new low-level memory tracking tools that can register and track any memory allocation done by engine or game. Allocations are grouped into hierarchical categories to provide a better overview and insights about various systems such as graphics, physics, or scripting. This powerful system come very handy when porting game to platforms with limited memory capabilities such as mobile or handheld consoles.

This feature comes with a set of great tools, such as Editor’s Profiler integration that groups categories in a table with hot highlights and charts. New ProfilerMemory.Dump command dumps the memory allocations stats (grouped) into the log for quick investigations.

GPU Particles Performance Improvements

 Game made with Flax running on Nintendo Switch.

If your project utilizes GPU particles then on 1.11 it should run a lot of faster! Both rendering and simulation have been refactored to scale better across different hardware. GPU particles sortings run parallel and has very fast-path for small emitters (less than 2048 particles). Finally, GPU execution has been improved by using UAV overlaps and more optimized memory barriers.

Particle Emitter Debug Draw

Particle Systems will now display debug draw shapes for Set Position modules. You can hide this by unchecking the Show Debug Draw checkbox on the particle system actor.

For more advanced effects new Layout tab in Particle Emitter editor displays layout and memory info of the particles.

GPU Profiler in Tracy

For this release, we added integration of GPU profiling with Tracy profiler. D3D11, D3D12 and Vulkan graphics APIs are supported in GPU performance timeline. Integration automatically inserts timer queries to calculate duration of various events. Additionally Tracy provides functionality to show CPU section that corresponds to the given GPU work event. This can be used to profile rendering performance on connected devices (incl. mobile and console devkits).

Visject Improvements

New node formatting options

Flax has its own graph editing tools, called Visject. It is used in many areas of the engine, from materials and particles to animations. In 1.11, a lot of new features were added and a lot of already existing ones were improved, making assets that use Visject even easier to edit.

Notable changes:

  • Additive and subtractive box select,
  • New node formatting and alignement options,
  • Node socket connections can be moved with a mouse drag,
  • Time node contains now both scaled and unscaled time values,

Viewport Icons Scaling

Viewport icons now change their size based on their distance to the camera. This vastly improves their visibility when they are far away from the camera.

New Keyboard Shortcuts

Using your mouse for everything can slow you down a lot. That’s why we added a bunch of new keyboard shortcuts. Now, you can switch between windows in the editor by pressing Control + Number or quickly access the debug console text input with Control + Backquote (~ key). Debug View Modes and some of the commonly used View Flags also got their own shortcuts (Alt + Number for View Modes and Control + Shift + Number for View Flags). Using those is much quicker than selecting the view mode via View -> Debug View/View Flags in a viewport.

Of course all of these shortcuts can be customized in the editor settings (speaking of which: you can now access them by pressing Control + Comma).

Async Scenes Loading

Scene loading has been refactored to use a time budget (per frame) via time-slicing. It’s configurable and removes hitches when opening maps or streaming levels. This smoothens loading large levels, and more parts of that code are running in async now. By default, it’s configured to use max 30% of the total frame time (eg. 4.8ms at 60fps) to ensure the game remains smooth.

Layers Matrix Highlights

The layers matrix could become quite hard to read when there are lots of layers in the project. That’s why in Flax 1.11 we added highlights to the row and column of the checkbox that the mouse is currently hovering over.

Threading Improvements

10,000 falling boxes

We’ve improved many engine parts to use multi-threading more often. Especially, physics simulation results processing, content streaming processing, particles and much more. In the sample falling boxes project, the lowest FPS ancounted when all 10,000 boxes collide went up from average 47fps to 75fps. This shows how engine scales better in large projects were object count grows exponentionally to meet visual fidelity.

GPU Texture Preview

When exposing a GPUTexture to the Properties Panel it will now show a preview as long as something is rendered to it.

UI Editor Resolution Preview

You can now preview the UI you make in the widget editor in different resolutions. Especially useful for mobile development. It also allows you to add custom resolutions presets.

Prefab Diff Improvements

The prefab changes view now shows added and removed actors. You can also apply the changes to the prefab via the Apply All button, just like any other change you make to your prefabs in the scene editor.

Wheeled Vehicle Improvements

Flax can now display the names and indexes per wheel of a Wheeled Vehicle. This makes assigning and debugging wheels and their colliders a lot easier.

There are also new methods to access handbrake, brake, and steering values.


Wojciech Figat

Lead Developer

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *