Originally Posted by
Cracked
This part right here shows just how much you don't understand about the subject.
You can keep backwards compatibility while including the newest features for all time (e.g. Windows), but you will constantly be burdened by it. Crappy APIs that you have to work around, adding things get harder and harder due to asset and namespace pollutions unless you want to wrap everything old in a thin new wrapper.
There reason there are unreal engines 1, 2, 3 and 4 is that every time Epic made a new engine, they realized their mistakes and realized what could have been done better, but expanding the old engine properly was either too time consuming or too resource consuming. When these things compounded, they would rather not be burdened by legacy code base and legacy components, so they "started over".
Reason why started over is in quotes is that they didn't really start over, UE4 still probably kept 50-70% of UE3 codebase as far as e.g. rendering pipeline was concerned, but due to the new in-house insight, they made it extensible from the get go, whereas making it extensible in UE3 would have required hacking.
- - - Updated - - -
Honestly, I think they would do well to include Vulkan over DX12. It's portable between Win and Mac and it has the same capabilities, sometimes Vulkan can even be a godsend compared to DX12 (I haven't used it first hand, but I believe the fact that DX12 is heavily developed for Xbox is pretty annoying). It would save them money and headache - so we will see.