Flax Facts #11 – Progress

Flax Facts

Flax Facts #11 – Progress

Progres Update

Welcome to the new Flax Facts! It has been very productive month. Many new improvements and features had been added including finished physics and game settings infrastructure. We also keep improving Flax Editor so using it constantly gets better and better.
Now it’s time to show you some pics and gifs with all the new stuff!

physics

Physics!

Our Flax API just got many new features for using physics simulation. We’re using the newest NVIDIA PhysX 3.4 which gives us very stable and fully featured physics. Use can create custom shapes using Box, Sphere and Capsule colliders (convex and triangle mesh shapes coming soon). We’re added physical material asset so it’s very easy to tweak the physical parameters of the object surface like friction or restitution. Additionally, dynamic/kinematic rigidbodies and character controllers provide enough control over the physics.

Character Controller

We try to provide as many useful APIs as possible. Game scripts can fire raycasts and overlap/sweep tests using Physics class. Also Flax sends OnTriggerEnter/Stay/Exit and OnCollision/Enter/Stay/Exit events to user scripts so responding to collisions is very easy.

Be faster than the others

One of the main Flax targets is to make games run super super fast. We try to do our best while designing the engine core. Textures and models streaming works great but recently for the huge scenes, we had problems with draw calls count.
In order to provide faster rendering, we implemented dynamic draw calls batching and sorting with hardware instancing.
It reduced draw calls count for the sample scene (a quite complex scene for AAA game) from 8000 to 1100! As a result, the game runs at 27fps instead of 7fps previously (tested on my laptop). It’s a big win towards making huge open worlds using Flax Engine.

Rock model with lods

Rock model with several LODs imported. Each contains less triangles.

However, it’s not the end. We’ve added a new feature: Model Level Of Details. Every imported model may define different Level Of Details which will be displayed at certain model screen size (see it on an above picture). So if you have high poly mesh it’s not necessary to draw it at the highest quality at the long distance from the player. That’s why using different versions of the model with fewer triangles and vertices improves general performance of the game. Currently, Flax supports up to 6 different LODs and switching without any transition (in future we gonna need smooth switching to reduce popping effect).

Book Layout Generator

Custom script that generates random bookshelf layout

More to go

Flax is moving forward. With that being said you can be sure that a lot of cool things gonna happen.
What are the current goals?
Game Cooker – tool for building and exporting a standalone game,
Xbox One support – Xbox could be the first console platform Flax will support (hopefully).
If you have any questions feel free to ask in the comments section.
That’s all for now. See you soon! 🙂


Wojciech Figat

Project Author

Leave a Reply

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