View Single Post
Old 09-17-21, 05:11 PM   #67
celeronpm
Dev: Crush Depth Studios
 
Join Date: May 2016
Location: Brea, CA
Posts: 59
Downloads: 7
Uploads: 0
Default

Hello everyone,

We are incredibly excited to announce that, after months of careful consideration and due diligence, we’ve decided to move forward with Unreal Engine. Please have a look at our release trailer below. Apart from that, we would like to introduce Code Orchestra, a brand new framework for combining C#, Rust, Python, and UE5. Further information about how we spent the last couple of weeks, as well as what to expect moving forward, can be found below.



Unreal 5.

When Unreal Engine 5 dropped, it would be fair to say that it took the game development community by storm. The technology advancements in the engine, such as Nanite, Lumen and MetaHuman caused a tidal wave which we were swept up in. We were compelled to look further into the technology.

Our aspirations are grand, using the best technology that can cement us as the definitive U-Boat simulator for years to come means we need to use the best technology available. Unreal Engine 5 offers unparalleled revolutionary graphical fidelity easily ahead of all other engines.

When UE 5 features were announced, we developed a system similar to Unreal’s Nanite, attempting to enhance what we had to help us forgo a complete project refactor away from Unity. The example scene below shows fifty billion triangles being rendered using our dynamic mesh quantization technology in Unity HDRP.



To illustrate the significance, that scene contains 2500 times the triangles count we had in the entire museum scene of the Unity build. Even though this proof of concept worked, we ran into significant roadblocks in interleaving this subsystem with Unity HDRP (decals, DXR lights, etc) and the Unity Game Editor, due to the closed source nature of Unity. This sealed the door on Unity HDRP meeting Nanite-like performance without investment from Unity.

As a side note, over the last 12 months, we’ve also looked into Unigine, Lumberyard, and other options. Those exercises were short in nature since it became apparent quite early in the process they would not provide significant advantages over Unity HDRP.

Analysis.

During the analysis, our goal was to perform thorough due diligence to ensure we fully understood the cost, ramifications, and benefits of refactoring our project into Unreal Engine. A project refactor will set us back by at least half a year and will require significant re-training for the team. We wanted to ensure that we understood these costs well by going through the effort of attempting to port the project over while leveraging the features we were interested in (Nanite, Lumen, native 64-bit double-precision float support, Metahuman, and more). We also needed to ensure core systems such as weather, water, and physics were customizable enough to allow us to reach the quality and fidelity we aspire to.

Unreal Engine is an extremely capable Game Engine built on a core that was released in the late 90s. The core APIs are not as well documented as Unity’s and the core programming language is C++. We found it significantly more difficult to work with, from a programmatic perspective, than Unity, and it became clear we needed to address this.

Challenges.

Not being able to use .NET / C# / and Rust in Unreal Engine with native-level integration (such as debugging and API support) would cause a dramatic drop in productivity for our developers. Our simulation subsystems are incredibly complex and ensuring we can maintain a high level of throughput, code safety, iteration speed, and polyglot language support etc. is crucial for the project.

Solutions.

To solve this, we leveraged the open-source nature of Unreal Engine 5 and developed a revolutionary polyglot extension framework to allow us (and other devs) to write .NET C# code in Unreal Engine. We’re launching this capability as a separate product, direct to game developers. We’re calling it Code Orchestra!



Code Orchestra

Code Orchestra is a holistic polyglot development solution for multi-framework development in Unreal Engine. Our goal is to bring multi-language and multi-framework support to Unreal Engine and enable game developers to leverage their existing skills in Unreal Engine.

Code Orchestra uses a novel, patent-pending approach (a combination of custom high-performing framework hooks, heavy code generation, IDE analyzers, and other mechanisms) to provide polyglot (.NET C#, Rust, Python) support for Unreal Engine.

Code Orchestra also supports high-performing Rust code for low latency high accuracy simulations and even allows you to use Python for quick and dirty prototypes (with more languages supported on an as-needed basis).

How will Code Orchestra help Crush Depth?

Code Orchestra will allow us to port over years of .NET libraries we’ve written in C#, will allow us to write our high fidelity, high accuracy, performant simulation code in Rust, and will enable us to quickly prototype new subsystems in Python. The end result will be accelerated project development velocity with the incredible Visual fidelity of Unreal Engine 5.

To learn more about Code Orchestra and to try out the beta for yourself, please visit: http://www.code-orchestra.com

Next steps:

Although we have made the decision to move over to Unreal, that transition is still far from over. We have a wonderful opportunity here to analyse and rethink some of the concepts we have developed over the past few years. If we were to just make a one-to-one copy of the current Unity build in Unreal, there would have been no reason to make the switch to start with; we would also be missing out on the opportunity to leverage the exciting new possibilities that Unreal has to offer. It would be a shame to let that opportunity go to waste.

The next couple of weeks will mostly be spent on further developing the frameworks we need to have in place in order to start creating the world we want to create, very much from the ground up. The downside to this is that it will take a while before we can get a first Unreal build-out. The upside is that we expect that build to be of a much higher quality, higher visual fidelity, and more performant than what we were able to offer in Unity.

At this stage, we can't give a reasonable estimate of how long we think it will take us before we feel our first shiny new Unreal build is good enough for a wider release. We have some very exciting ideas there though, of which we will be updating you regularly through our Discord and other outlets. In the meanwhile, we will keep the current - now already outdated - Unity build up, so you are still more than welcome to hop in and explore some of our concepts.

Rest assured that we would not have arrived at this decision if there was a single shred of doubt that this was not the best decision for our project and our long term strategy. It is a very, very exciting time for all of us and we hope the subsim community ultimately recognizes the effort we are going to in order to realize our dreams of building the most realistic U-Boat simulator.

Ask-Me-Anything session on Oct 3, 2021.

As much as I would like it to be the case, I am quite aware that it's undoable to cover all of your questions that come with such a massive announcement. We are therefore hosting a live Ask-Me-Anything session on October the 3rd, 18h00 Berlin/09h00 Los Angeles, on our Discord . Should you have any questions in the meanwhile, or if you wish to submit a question for us to cover during that session, feel free to leave a message here.

As always, thank you for your tremendous support. We are extremely grateful and humbled by the support you have given us thus far and hope we provide you with enough reason to keep doing so. If not, please let us know what you think we can do to improve. Let's not forget that it is you who we make this for, so if you ever feel we should be doing something differently, have a question, or just want a chat, always feel free to send me or anyone else on our team a message.
__________________
www.CrushDepth.com

Last edited by celeronpm; 09-17-21 at 05:32 PM.
celeronpm is offline   Reply With Quote