4 ms·
Unreal Engine, by far. It's not only just extremely well written in general (with your only chance of 'really' learning the engine to go through it, read comme
by somenameforme 2y ago
Unreal Engine, by far.
It's not only just extremely well written in general (with your only chance of 'really' learning the engine to go through it, read comments, and the like) but it also defies the wisdom 'everybody knows.' That wisdom being that premature optimization is the root of all evil - like we're supposed to just benchmark things, see where the bottleneck is and then try to work on optimizing spots like that.
Unreal doesn't do this. There are countless thousands of micro-optimizations everywhere. For one striking example there's even a fairly substantial system in place that cache the conversion between a quaternion and a euler rotation. This would never, in a zillion years, be even close to a bottleneck. But with thousands of these little micro-optimizations everywhere you get a final system that just runs dramatically better than any comparable engine.
In more general terms, they've also taken advantage of the 'idiomatic flexibility' that C++ offers to create a sort of Unreal C++ language that is also just lovely to use and feels much closer to something like C# in terms of luxuries like the lack of manual memory management, garbage collection, reflection (!!), and so on. The downsides are that compile times are horrible (even though a cached compile might only take 10 or 15 seconds, it feels like forever when trying to work out one specific issue) and C++ intellisense, especially in a preprocessor heavy environment, is pretty mehhhh.
- 01HNNWZ0MV43FF 2y ago> there's even a fairly substantial system in place that cache the conversion between a quaternion and a euler rotation I hope that does show up on a benchmark though, cause that sounds complex
- somenameforme 2y agoIt definitely would not. The rotation either way is a mixture of up to ~20-30 primitive basic floating point operations, and a few geometric (sin/cos/etc) operations, and you only need to do it in the cases where you're actually going between both systems, and more than once. It's difficult to even ballpark, but it's highly likely that the caching gives anymore than a fraction of a percent of performance boost, like 0.5% or whatever. But now multiply that over hundreds to thousands of similar little 'premature' optimizations.