Welcome back to Flax Facts. That’s our own blog series we used to write actively in the past. We’re bringing it back! Today, we will go over the updates from the past month to give you a glimpse into the active engine development and community updates.


.NET 10

Flax utilizes the modern .NET to run C# code efficiently across the various platforms (desktop, mobile, and consoles). We’ve been supporting .NET 8, 9, and 10, but the base version was .NET 8 LTS. Since .NET 8 reaches end-of-life support later this year, we’ve migrated to the latest .NET 10 which adds C# 14 and major performance improvements. This version is also Long Term Support, which means it will receive frequent updates and security patches over the next few years. In the picture above, you can see Flax running with .NET 10 on Nintendo Switch.

GPU Memory Profiler Update

GPU Memory profiler tab can preview selected resource now. It displays details such as data format, resource size, or dimensions. Textures (incl. render targets) are visualized and can be saved to file with a button. Additionally, GPU resource list has been filtered to skip showing internal objects such as PSOs, constant buffers, and others that are not relevant to game developers, hence their small impact.

Textures in Gameplay Globals

Gameplay Globals are named parameters defined in assets that can be accessed globally in the project, including materials, animations, and particles. Their values can be set in the editor or driven from code. This vastly improves production speed and gives game developers a great tool to enrich the content of their projects. Now, texture and cube texture assets can be added to gameplay globals and sampled in particles or materials. This can be used to create advanced gameplay visuals such as fog-of-war, rain, wind map, or cloud shadows.

macOS improvements

Community contributed various PRs such as #4116 and #4118 to improve user experience on macOS. Especially, popup windows such as tooltips and context menus should work better.

All-way resizable nodes

Various resizable nodes such as comments or curves can be resized from all sides now. Additionally, node edges highlight when a mouse cursor hovers over them to ease usage. #4010

PerfSDK plugin

For NVIDIA GPU users, we’ve added a new plugin with PerfSDK that directly integrates into Profiler window (on branch 1.13). After adding it to your project, double-click on GPU events inside GPU Profiler tab to quickly inspect rendering performance counters such as occupancy, memory throughput, or L1/L2 cache hit rates.

Hardware Instancing for Animated Models

Animated Models rendering has been refactored to store their skeleton bones data inside a global shared GPU buffer. This allowed us to batch the same skinned meshes using the same materials to draw at once within a single draw call. This greatly improves performance and helps to scale projects made with Flax to large open-worlds. In the picture above, you can see 5,000 animated and rendered basic characters (from Mixamo) that run at 60fps, including per-bone motion blur and shadows (on RTX 2080 Ti). Instancing significantly reduces CPU overhead; in this case, all of those models are animated and rendered within 4ms.

Server migration

Various Flax services such as the website, git repositories, store, forum, and packages hosting have been migrated to a new server. The new machine is powerful with more cores and memory to provide services faster and more reliably. Most notably, we migrated from GitLab to Gitea for main engine repository hosting (incl. Git LFS storage). Now, a full engine repo clone takes less than 20s in GitHub Actions runners, giving faster build times for CI/CD runs (previously it could take between 2-4 minutes for 20 simultaneous clones).

Updated Forum

During migration to a new server we’ve updated Flax Forum to the latest Discourse. New look and more features will help our community to grow.


That’s all for today, we’re going back to code. See you soon! 🥑✈️🕹️


Wojciech Figat

Lead Developer

0 Comments

Leave a Reply

Avatar placeholder

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