Today we’ve released a new update for Flax! Version 0.4 ships with various new features such as Foliage, Navigation, Null Renderer, and Custom Anim Graph nodes. We’ve also improved many other engine aspects and
Checkout the release highlights section to learn more or visit Flax Documentation page with detailed release notes.
New Foliage system will definitely improve open world games development and complete the recently added terrain system. The most important purpose of the foliage system is that it can easily scale and result in very solid performance. If your game needs huge open worlds full of trees, grass, and rocks then you definitely need to use foliage system. It supports placing and rendering hundreds of thousands of foliage instances in the level with no performance drop.
Each foliage actor contains a list of predefined foliage types and a collection of foliage instances. Each foliage type defines the model asset to use for rendering, placement properties, and painting properties. Each foliage instance contains information about what type it uses and the actual placement transformation in the world. Both instances and types collections are encapsulated inside the foliage actor internally to improve performance.
Flax Editor contains ready to use tools for creating and editing foliage however the whole system can be used directly from code to generate procedural foliage at runtime in your game.
To learn more about foliage see the related documentation here.
Nav Mesh and Navigation
We’ve added Navigation support and pathfinding utilities for various types of games. You can use navigation system to control how AI characters and other objects navigate around game evironment without colliding with the walls and avoiding obstacles.
Navigation system uses Navigation Meshes (shorten as navmeshes) which are polygon surfaces that define the ‘walkable’ area of the scene. They are used to query paths for objects to navigate around the game level.
Flax supports both runtime generated navmesh and prebuild in Editor. The navmesh building process is asynchronious and does not block game logic thread. Progress reporting is also supported.
To learn how to use it in your game see this section.
Custom AnimGraph nodes support
AnimGraph has become a fully features evironment for creating various types of animated objects. While we keep adding new nodes and improving performance of the existing ones there will be always a need to extend the default behaviour. Now, we would like to introduce a Custom Nodes support for Anim Graph! Using this feature you can easily define and implement own Anim Graph nodes to implement literally anything for animations processing.
This feature can be used to fetch data from external animation source such as live-rig, or to implement custom IK solver. Also, plugins can contain custom nodes to be reused across different projects.
We’ve prepared a sample tutorial about custom nodes usage here.
Null Renderer is a feature which allows you to run the engine without rendering backend. If you are doing your game builds in a cloud using command line you can pass flag
-null to disable GPU rendering. This can be used to improve the performance when graphics rendering is not required (also for server builds).
Locking Rigidbody positon/rotation axis
Now, Flax supports rigidbody constraints. This feature can be used to lock the object rotation or position on a certain set of axes. If you want to allow player to slide a box only over single axis and prevent its rotation just use this feature to freeze the rigidbody movement to a certain level of freedom.
Rendering quality and performance improvements
We always keep working on Flax Renderer. This time we’ve:
- Added Subpixel Morphological Antialiasing (SMAA)
- Added Temporal Antialiasing (TAA) – preview
- Improved Screen Space Reflections (SSR) – more stable and in HDR
- Improved Screen Space Ambient Occlusion (SSAO) – better quality on far distance
- Improved rendering flow
Moving faster and faster…
Every Flax update brings many new features and stability improvements. We hope you enjoy this snapshot. Please let us know what are your thoughts about it.
We’re looking forward to talking to you about the Alpha and reading your feedback on our Discord channel. See you soon!