Moving faster and faster
We’ve promised to deliver high-quality updates to Flax every 2-3 months. Today we’ve released Flax 1.1 version which brings a massive amount of new, shiny features such as Editor for Linux, Splines, Editor improvements, and hundreds of bugfixes.
Firstly, I’d like to thank all the community members and contributors that are involved in Flax. You rock! 🎸 During the past 3 months, together we’ve made over 1,300 commits into Flax repositories including almost 150 Pull Requests.
Starting from this version all the binaries we distribute (Installer, Launcher, Editor, Game executable files) contain digital Code Signing certificate to prove the authentication and validity. Also, due to a recent problem with one of our servers (caused by a fire in OVH data center), there was an issue with the older Launcher version that blocked from receiving the latest engine version info. If you don’t see a new update in Launcher please install it again (without reinstallation – all your projects and engine files will be preserved).
In this post, we will do a review of the major features in this update. To see detailed information visit the official release notes.
Editor for Linux
One of the major features in this release is full support for the Flax Editor on Linux! It runs great on Ubuntu and contains all the features such as live scripting with C++/C# hot-reload, Visual Code integration, scenes editor, game cooking, terrain editing, foliage editing, and much more. It has feature parity with Editor on Windows to enable game developers on Linux to create great projects with Flax!
To learn more about how to use it see Get Started section. We use Vulkan for rendering (old OpenGL GPUs won’t work).
*It has been tested on Ubuntu 18 and Ubuntu 20 (both LTS versions).
When creating games programmers, level designers and artists often need more robust tools for object placement and scene dressing. That’s a great example where new Spline tools come in. Spline is a Bezier curve made of 3D points with tangents that is very easy to create and set up in Editor. Those can be used to create objects following the path (as shown above), draw the model over the spline curve, build roads and rivers, or create dynamic gameplay components like a chain (as shown below).
To learn more about splines see dedicated documentation with tutorials.
One of the most important features we want to work on during this year is networking support in Flax for multiplayer games. We’ve already supported networking in C# API via .NET library. Now we’re adding low-level sockets implementation that is cross-platform and will be used as a foundation for Low Level and High-Level networking solutions built-in Flax.
The goal is to have fully-featured multiplayer support in the engine within this year. Right now you can already create client/servers in Flax with a new
Network API (from
Engine/Platform/Network.h) that comes up with methods to create and manage sockets and send or receive data over the net.
As we’re starting to see more and more projects using Flax, we strive to improve various engine areas. This time we’ve added lots of goodies into the Navigation system such as:
- multiple navmeshes support
- navmesh modifier volumes
- nav agent properties and queries
- rotated navmeshes
- more navmesh queries types (
- nav agents masking (eg. for nav bounds volumes)
- dynamic navmesh updates at runtime
Visual Scripting Features
After 1.0 release update that introduced Visual Scripting tools in Flax, we’ve seen massive adoption of it. This lead to adding even more goodies into visual scripting in Flax.
Now, you can bind into Events int Visual Script to handle trigger volumes or collision events as shown below (see tutorial).
Another features are automatic node formatting which arranges nodes to make them more organized (use Format node(s) button in context menu) and reroute node for connections organization (double-click on connection to insert it).
Third Person Shooter sample
Flax Samples is a great collection of projects to pick up on at the beginning of the journey with Flax. Recently we’ve added a new shooter project with 3rd person camera (community contribution). Can be used as a base for your future game project. Try it out!
For most of the time between 1.0 and 1.1 updates, we worked on improving quality and usability of the Editor. This includes tons of issues fixed (over 140 bugs fixed), improved stability, better gizmos, better UI editing, better prefabs tooling, better everything. Things important to highlight are:
- Rider IDE integration
- UI editing support in Prefab Editors
- Full debug log stack traced in Debug Log (with double-click to navigate)
- New UI Transformation editor
- Script members display based on declaration order (see Editor options)
- Live particles preview in Scene viewport
- Converting existing actor into a different type
- Copy/paste of all script properties
- Build button configuration in options
- Optimized hot-reloading of C#/C++ code performance (via caching scripting API reflection data)
New in-built actor that can draw sprites in 3D or 2D. Highly customizable and ready to use. See docs here.
Volumetric Fog Particles
One of the important aspects of the Volumetric Fog is the ability to adjust its density and color in local parts of the scene. To achieve it we’ve added a new drawing module to particles called: Volumetric Fog Rendering. It draws particles into the volumetric fog and they can modify the fog Albedo, Density, and Emission. See documentation here to learn more.