๐Ÿš€ Progress Updates - Moving from UE4 to Rust/Vulkan/OpenXR


It's been over a year since I started working with game development. First having started with Unreal/C++ and now finally moving over to Vulkan/Rust -- It's been quite a journey. This was not an easy decision to make. The amount of time lost when not utilizing a toolset like Unreal is hard to justify but I think it will be worth it in the end of the day and my reasoning comes down to (1) developer pains when doing heavy modifications to the Unreal source and how (2) UE4 is somewhat ill-suited to be a great candidate for VR (though admittingly, it can make some fantastic VR titles).

Starting with developer pains, if you're working on a game that maps well to the UE4 architecture, you're going to have a great time. Deviate outside of that, and well, you likely will find yourself a little frustrated. While I can't say much because of the NDA with EPIC, I originally wrote a procedural GPU mesh system for Unreal after months of hard work. And months not because it needed months but months because of 70 minute compile times, reverse engineering due to the lack of documentation, and having to wrangle with an engine designed for pre-loaded maps, models, and pre-calculated lighting. This work was tiring and while the results were fantastic, that effort seemed too burdensome for me to continue working this way. The final nail to this coffin came when trying to implement ECS on-top of Unreal which UE4's architectural design is very resistant to.

My second point, that UE4 is somewhat ill-suited to be a great candidate for VR, I claim because of the technologies that Unreal has chosen to optimize for. These include a design primarily around deferred rendering and TAA. Now, you can use forward rendered mode with MSAA but many effects are either broken or half complete. An example of this is how some of the sun scattering effects assume that TAA is active and show artifacting when disabled. These minor quirks add up into a less than great experience without a lot of fine adjustments. 

So fast forward to the present day -- In the last 6 weeks I've been working on a new engine written in a combination of Rust, Vulkan, and OpenXR and this has been a fantastic experience. I've fallen in love with the Rust language, and after 18 years of C++, this is a very welcome change; I honestly can't see myself ever going back to C++. Vulkan also has been a bit of a headache getting started with but I think the trade-off will be well worth it. OpenXR has had sparse implementation documentation but once getting through some basic examples, It's been mostly smooth sailing with the Oculus OpenXR implementation.

I have a lot of work to cover still. Many tooling needs to be in place from material editors to animation graph systems but I plan on making steady progress towards these goals over the next years. Stay tuned :-)

Get Otherlands

Comments

Log in with itch.io to leave a comment.

Hey glad to hear youre back, I just discovered your game today, hoping to see more updates!

Awwe thanks!  ๐Ÿ’– Progress has been steady albeit slow. I spend about 4 hours a day working on this in my free time. There's still a lot of groundwork to cover in my engine before it will be up to spec for what I need but I really want to give people a next-gen VR experience that provides satisfying game-play in ways that haven't been explored.

Sounds promising and exciting, I'm looking forward to it!