Saw an interesting post in the UE4 Facebook group today that made me enquire a little more into the Z-Up nature of Unreal Engine. I know when the engine went free there was a lot of (fruitless) debate about whether UE or insert other random engine here got it ‘right’ or ‘wrong’. Asked a few questions and did a bit of reading, so here’s what I found out and perhaps it’ll settle the debate This isn’t to start a flame war, but I honestly just found it interesting and figured some folks around here would too.
The tale starts with 3DS Max. Released in 1990, it’s designed and used primarily for architectural purposes. In Architecture, you typically start with your floor plan which would be plotted on a 2D grid first, X and Y. When it comes to extruding that up into a 3D model, you need the next dimension (Z) to be up. That fellow devs, is apparently why Z is up in 3DS Max. Makes perfect sense for it to be that way.
In 1998 Maya is released primarily as an animation package. Animation at the time was typically in 2D, from the side-on. Think early Disney and other old animated titles done from a side-on perspective (like a 2D platformer). You start working in X and Y, and your new dimension Z becomes the depth. That would also explain why Maya is Y-Up.
3DS Max was the modelling package of choice for most developers at the time, and as Unreal came out before Maya (and it’s crazy ideas) - Unreal was done in Z-Up to match.
As an afterthought, it does make more sense (at least to me) for a Games Engine to be Z-Up - especially in 3D. If you’re working on any 3D title, you typically plan your levels from the top-down, not from the side-on. You box them out in X and Y first then proceed to the next logical dimension Z, which would be Up.
Perhaps Tim can come here and enlighten us further, but honestly I think this about covers it. The dilemma is solved forever!