I think Flax 1.6 has the feature set needed to really dig into a real large(r) scale production. Overall though 1.6 has been an excellent experience and very stable. It is not for me to decide what is wrong with Flax. To be honest Flax has been so stable and a pleasure to use since 1.3 even though missing a lot of required features. 1.6 has most of the features we need to make something nice.
No TLDR here. The intent of this is to provide good use feedback so that Flax can be improved with better QC (it is good to be honest but can be much better by crossing T’s and dotting I’s).
Over the past couple of weeks since 1.6 release I have kept details of how the process of building a project is going. I have this exact project already built in UE5.2 currently so it is a great step by step in building the same thing in Flax but with the nice power of CS programming that I love. The Flax GI is amazing! Love Flax! There are some things (a few listed below) that makes it 100% obvious that there was zero attempt at seeing how Flax reacts to a larger project. I know, I just went through this prior to this posting and I am not even close to migrated yet.
I ran into something today that was a real stomach punch. The project went into a limbo state where I could not create nor delete ‘things’. I could still open up material instances that were already created but the material display model was off in how it should look/preview. There were meshes and materials/instances that I created and adding that showed inside the project folder but were not in the content hierarchy. Flax was simply broken and in limbo. Restarting Flax did nothing but the flaxassets were still there. So I simply moved this to a back up and restored the work from Wednesday. Flax opened up the project and worked just fine. So this issue has to be something related like Unity has with how the AssetsCache (Unity’s meta data??). Unlike Unity there is no rebuild everything option then go have a few drinks and cool off. LOL!!!
So in this case I lost a couple days of heavy texture and mesh imports with material/instance setups. That sucked. Makes me leery of Flax because I definitely do not want to go into the development abyss again like in Unity.
This is an apples to apples comparison to both Unity (see below) and UE4 and 5 (current UE5.2.1). I think Flax has to be on a fair comparison here with the emphasis on fair and real.
Data sample used to get a solid idea of how Flax responds to a larger scale project.
- New 1.6 project built (it was converted from a fresh 1.5 project that was very empty).
- Texture Imports (all PNG. Most are RGA with some being RGBA). 3,872 for 14.47gb (this is ~30%)
- Mesh Imports (all FBX. Most are under 10k tris so only LOD0). 1,422 for 1.36gb (~15%)
- Materials 11, Material Instances ~2,213 (and climbing).
- Prefabs 0
The main issues (so far) with Flax:
The Content Scanner seems to work on 1,000ms intervals and becomes very tedious to deal with the more content that is imported. As the project grows clicking on things and editing them in the content window become more and more tedious requiring multiple clicks to set it to blue and edit. The text name also become almost impossible to copy/change.
Green Channel flip of Normal Maps because of Direct3D 10 (dds) does not work (I made a work around in the other topic for 1.6). The display of Normal Maps in this engine are green-ish meaning 1 channel is missing. The format is set as BC5 which matches the double channel standard but is different than other engines. No idea why.
Blending Alpha Maps with the LERP does not work.
Example: Making floor tiles…Color Map (RGB) with a Alpha Texture (RGBA) with the alpha used in the LERP. Works great. Now lets add another Color Map with Alpha Texture then Multiply this with the previous then LERP the results together with a Grout Color Map (RGBA). UE4/5 and Unity both handle this fine since the texture samples in SM5 are less than 17.
Texture node and Color node handle color differently. Not sure if this is in the sRGB workings of the Hex Codes but the exact same color from GIMP and in Flax are different. Also when LERP or Multiply the samplers operate differently. Something is wrong with the HLSL code snippets internally. This is a QC issue.
When editing materials the drop down arrow starts at the very top of the texture list. This requires manually typing in the prefix to filter enough to pick from the window or arrow down and enter. You can copy the name of the texture then paste it in…in my case I use great naming conventions so I could close to arrow down only a few to select. Dragging the texture to the slots in the material is possible but messes up the content hierarchy by expanding folders making going up/down the list even more tedious with the thin scroll bar. This is one QC/QoL issue that makes it obvious no large project was made in Flax.
I get it. Flax is growing with features (UE4 still is, and UE5 is too…and most everyone knows Unity’s painful growth into limbo feature creep land). Flax is the newer engine that has to prove itself for folks like myself to move over from ‘insert game engine’. Seeing a project grow then watching the engine editor deteriorate is not a great feeling. Especially seeing how good the engine seems to be. Flax has excellent FBX imports (gLTF and DAE has some issues but work) as well as texture support. The materials are very UE4-like with some small adjustments in how Flax handles things.
Apples to Apples:
An even larger data set from above is used in UE4 then migrated to UE5 and zero issues. I did have issues when I updated to 4.18 which broke a number of things. Other than that UE4/5 handles heavy loads of meshes and materials and still remains snappy. The engine is still difficult to use but that is why Flax is so entertaining.
I can reliably break Unity 2017 and Later by doing what I did to Flax 1.6 over these past couple of weeks. Unity 5.6.7 (I have the Pro license) does not have this issue. What happens is that large meta data changes in Unity messes with its brain. It simply breaks all sorts of things when doing a lot of imports. Unity has a nice tool to rebuild everything which deletes all the meta data and brings it all back together. Some materials need to be fixed after but all in all it works. Takes awhile but at least it can fix itself. Unity 5.6 rarely ever breaks but it is stuck in 2016/17 with the same kludge work arounds that Unity never fixed or broke and never fixed.
Thanks Flax for the great engine experience.