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. 🙌❤️
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
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
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
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.
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
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
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
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
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
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
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)
6 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.
ji xiang shen · October 31, 2021 at 5:56 PM
This is a crucial issue. Some people are going to abandon Unity3D and believe that Flax Engine can do better. At present, I need a clear and detailed picture description for the problem of generating Android and the environment configuration. It is best to have a video Explain that if that is the case, it will be very easy to transition from Unity3D to Flax Engine. I look forward to providing such help and supporting the Flax Engine team.
ji xiang shen · January 9, 2022 at 4:16 AM
Knowing that FlaxEngine 1.3 is about to be released, I like FlaxEngine very much, but when I try to release it for Android or IOS, it fails. I can’t find the reason and can only give up. My team has been wanting to replace Unity3D with FlaxEngine, to be honest, I’m really, really looking forward to getting how-to guides or help with releasing Android and IOS as soon as possible, it’s not just my idea, there are more people who gave up FlaxEngine for this reason , this problem is the main obstacle for us to replace Unity3D with FlaxEngine, honestly FlaxEngine looks great, eager to provide a detailed and comprehensive tutorial on this soon, thank you very much! !
Rasmus · February 6, 2022 at 11:04 PM
I am amazed by this project. The engine looks already really good. I wonder why not many are talking about this engine, but a lot of people are talking about Godot which is less developed IMO