Now that Xenko was officially released at GDC, it has been drawing a lot of attention. Since the engine is also open source, like Unreal, it is inevitable to compare them. Of course Xenko is much smaller and can’t be compared to a Titan like Unreal, but it would be nice to showcase some strong points.
Amongst the strong points of Xenko:
- Support for Vulkan on PC
- “Easily” multi-threadable (Parallel.For, Threads etc.)
- C# 6+
- .NET Standard (If I’m remembering correctly)
A simple stupid test I did to “compare” them was to put 10k cubes in a scene in each of them. Then try to move those 10k cubes each frame. UE4 was taking something like 110ms and Xenko about 4ms.
However, Xenko’s Editor is still very lightweight and lacking features such as PIE (Play In Editor) and a lot of other things…
BUT. I’m still in love with its C#.
I’m sure this list lacks good elements and hopefully some other community members will make it a little bit bigger
That’s an interesting find. I wonder why. Because of better multithreading? Or lack of instancing in UE4?
Seems you never tried F#.
Anyway, I’m willing to down grade from F# to C#. The micro stuttering in Unity gives me cancer.
Well, one of the first potential reason is that, yes, I was using a Parallel.For to move all my instances in Xenko, which made it multi-threaded as much as it could I think.
I’ve been a bit annoyed by Xenko’s high CPU usage of idling objects though to be honest. It seems like adding a lot of empty objects will quickly cripple the CPU-time.
I never tried F#, this is a functional language right? Well. I may take a look some day.
I should say that I love the .NET stack and all the nuget packages and stuffs in C# more than C# itself… (I come from a C++ background, but everything is so tedious to make in C++ nowadays that I consider it a waste of time is most cases) (And anyway, this is a bit off-topic)
Yeah, it is mainly functional. But it’s also OOP if you need it. There is an upsurge of functional VS OO/imperative programming in the industry. There are many pros for functional programming. F# is immutable by default, so F# is thread-safe. This also means you can better reason about your code, in addition to the use of hardware threads.
I could make F# work with Unity via its managed code API. That’s why I mentioned F# here. C# is based on .Net/CLR, and so is F#. Normally, you wouldn’t even need extra binding for F#. You just use any other C# assembly.
So, another BIG plus for Xenko would be F# if I only could get it to work.
How is the stuttering in UE4? I know that regarding micro stutters, Unity is a mess. However, I also tested UE4 some time ago, and it also liked to stutter a bit.
Now, with the Top-Down RPG template in Xenko. There is absolute zero stuttering. The UE4 project was twice or thrice the size of this temple, though.
UE4 uses Nvidia PhysX just like Unity. Xenko uses the open source library Bullet Physics
As far as I can remember. I don’t remember any particular issue of micro-stutter in UE4.