Reaching the speed of light

We’re happy to release Flax 1.2! It brings lots of great features such as Localization Tools, Vehicles, Networking, Job System, and hundreds of bugfixes.

We’d like to thank all the community members and contributors that are involved in Flax. During the past months, we’ve made over 1,100 commits into Flax repositories and over 60 Pull Requests. 🙌❤️

DOWNLOAD

As always we will do a review of the major features in this update. To see detailed information visit the official release notes.


Made with Flax

We’re excited to announce the upcoming first cross-platform game made with Flax! The Kostka by Nejcraft is coming soon to Steam, PlayStation, Xbox and Switch.


Highlights

Vehicles

Flax Car Physics

This release includes support for Vehicles. Now, you can create cars with a custom physical shape, wheels, and engine setup. We’re using Nvidia PhysX to drive the simulation and expose lots of highly configurable properties to tweak the vehicle. It can be used to make simple cars or even advanced realistic racing games. Also, unofficially cars in Flax drive better than in Cyberpunk 2077.

As always we’re preapred a complete documentation and tutorial how to use this new feature here.

Nintendo Switch Support

Flax on Nintendo Switch

We’re happy to announce that we’re working on Nintendo Switch platform support. Very soon Flax will be available for Switch developers. We will inform you once it’s ready via our dev blog. Stay tuned, we’re almost ready.

Low-level Networking

Network Sample Flax

In this release, we’re bringing more features into networking for multiplayer games. We’ve implemented a low-level networking system featuring Network Peers for creating multiplayer sessions with network messages transportation layer. The default network driver uses ENet with the possibility to use any library you want (like ValveSockets, SteamRelay, SteamP2P, Photon Realtime, etc.).

Together with this, we’ve released an open-source Network Sample project to help you start making multiplayer games in Flax. It features a game server-client with the game session, chat and players lobby. We have also a simple step-by-step tutorial to help you start using networking in Flax.

Network Sample Flax

Localization

Creating games that target the global market and support multiple languages can be a challenge. In 1.2 we shipped new localization tools for games internalization. This includes UI language localization, values culture (numbers, currency, and date formatting), and creating a translation for different languages. We’ve added new Localization Settings that is a dashboard with lots of utilities such as adding new locales, searching localized string is code or content. As shown on a gif above, Editor has a live-preview option of the current locale.

Follow this documentation to learn more.

New Editor icons

Flax Editor New UI

The very first thing that you will probably notice after launching 1.2 update is that Flax Editor has new icons. We’ve improved resolution and style of the icon set to make it crisper. The new UI just feels better.

Job System and Task Graph

Flax Engine Performance

The latest 1.2 update brings a massive performance boost for large worlds. Here is an example of 5,000 animated models playing animation and being rendered at stable 60 FPS (tested on mid-price i5 CPU). To achieve this level of performance we’ve created a Job System that runs a worker thread per CPU core to run extensive computations in asynchronous. For more advanced calculations used by gameplay systems or engine systems, we’re implemented Task Graph. It can be used to parallelize game even better plus it supports dependencies between async systems.

During this update, we’ve converted all major engine systems into async Task Graph Systems to ensure the higher parallelization of the engine code (streaming, animations, particles, etc.). It can be further extended by game-specific systems in your code. To see how to do it see this tutorial. Both Job System and Task Graph can be used in C#, C++, or Visual Scripting.

Tracy Profiler

Flax Job System Async Particles Performance

In order to optimize engine or game the developers need proper profiling tools. The in-built profiler helps with this but for more advanced optimizations we needed something more powerful. Now, Flax supports an open-source Tracy profiler for CPU instrumentation and performance analysis. It can profile both game and editor, supports remote profiling, and can be used to capture profiling sessions for comparison. Also, Flax will automatically insert profile zones for C# and Visual Script methods so gameplay performance profiling is even easier now.

To help you get started with Tracy we’ve created a dedicated documentation page. Also, for C# developers we have a tutorial for dotTrace profiler usage.

Textures Streaming

Flax Textures Streaming

Another exciting feature is textures streaming configuration. The new Streaming settings asset contains Texture Groups for managing textures quality and streaming options at runtime (every texture asset can define the texture group it belongs to).

It can be used to strip textures resolution when cooking for mobile/Switch or to implement dynamic texture quality settings in game menu. Also, Flax will reduce quality of textures that are not rendered for some time (configurable) to improve game performance and reduce GPU memory usage. Additionally, we’ve added a new API to query current streaming stats and content stats which can be used to implement a loading screen as showcased in a tutorial here.

AMD FidelityFX Super Resolution

Flax AMD FSR

AMD Fidelity FX Super Resolution is a cutting edge super-optimize spatial upsampling technology that produces impressive image quality at fast framerates. We’ve released an open-source plugin for Flax Engine that implements FSR effect and can be easily integrated into Flax games. Visit this repository to learn more.

More features

9-slicking UI for Games in Flax

Every update brings many large features but also tons of smaller things that matter. We continued working on improving quality and usability of the Editor. Here is a list of notable ones:

  • 9-slicing support for UI (gif above)
  • New C++ docs and tutorials (see docs in this section)
  • Ability to show/hide GUI and DebugDraw shapes inside Game viewport
  • Daily source builds from master branch (here or via Launcher)
  • Optimized editor/game CPU usage when idle
  • Delay node for Visual Scripting
  • Faster scenes opening (in general both engine and editor are faster)
  • Animation asset preview with playback debugging (play/pause/seek/slowmo)
  • Support for C# objects and structures as Visual Script or Anim Graph parameters
  • Tons of new APIs for easier games scripting (see changelog to learn more)
  • Both Vulkan and D3D12 rendering backend are way more stable now in large worlds
  • Modular animated characters support
  • New Temporal AA with less ghosting
  • Change default Update rate to 60
  • Debug view for collision geometry (see image below)
Physics Collision Preview in Editor


Wojciech Figat

Lead Developer

3 Comments

Mustafa · August 6, 2021 at 6:17 PM

Add water simulation, releastic snow and smoke like unreal engine then it will be good competitor for unreal engine 4,5

Wesley · August 7, 2021 at 7:34 AM

This looks incredible, though there are some features that if implemented, will ensure that I recommend this engine to everyone.

Like the other comment, volumetric snow and fog would really help push my artistic capabilities as I try to develop intense atmospheres under a steady pace.

Lastly, a logic-development free cinematography tool like Cinemachine would do wonders for people like me who are trying to seamlessly implement filmic immersion into their play-spaces.

I’m not expecting instantaneous results, let alone a direct response to this sole comment. I’m only one person. But do I hope your team views this and takes these features into consideration even if it’s only in passing.

Hyped to see where this engine goes.

Saleh · September 29, 2021 at 8:32 PM

Incredible , keep it up. Also I didn’t expect such a good documentation. The API is very similar to Unity3d which makes it easy for unity developers to migrate or give it a shot.

Leave a Reply

Avatar placeholder

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