Forum > Games Discussion

Crush Depth: U-Boat Simulator

<< < (4/8) > >>

Asid:
Major update: switch to Unreal Engine and introducing Code Orchestra.
Fri, September 17, 2021

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 natively 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.

Skoop:
Did you buy into this asid ?  I’ve been following this game too seems really interesting.  Glad the finally got the engine squared away so they can move forward.

Asid:

--- Quote from: Skoop on September 19, 2021, 05:24:47 PM ---Did you buy into this asid ?  I’ve been following this game too seems really interesting.  Glad the finally got the engine squared away so they can move forward.

--- End quote ---

Yes I did buddy.

When I first tried it there was not much there...It was more like a tech demo. It has been getting fleshed out. I do intend to go deeper  :sifone with my coverage but time has been an issue for me for many months now. Hopefully that will change soon.

Asid:
Regular update #61: work on Code Orchestra, training vessel and the U-Boat.
Sat, October 23, 2021

Hello everyone!

I'll try to keep it a bit shorter this time, but no promises there. As you might have read in one of our previous updates, we've decided to split up - for lack of a better word - our workflow a bit in somewhat separate parts in order to be a bit more productive and help smooth our transition to Unreal. We've been working in this new way for about a week or two now and I must say, it's going quite well. Much in line with that, I'll do the updates in a similar fashion as well, so you all have a better overview of what is happening where and why. (edited)

First of all, there is the technical track. We have made great progress with the development of Code Orchestra. For those of you who are unfamiliar with it: 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 to empower you to build your project in the language of your choice while retaining full IDE and editor integration with full runtime debugging support.

One of the most commonly cited reasons for people not to work with Unreal is that it only supports C++. We're coming from a Unity background ourselves and being able to use C# for our own project was one of the many reasons it took us so long to decide whether to switch over to Unreal. We've decided to approach that issue not by rewriting the entire thing in another language and working with that language from there on out, but by building a tool that will allow us to continue working in the language we want to work in, C#, instead. There are thousands of developers out there who face this exact same issue, so should you be interested in trying this out for yourself, contact us through:

https://www.crushdepthstudios.com/trycodeorchestra

A video showing what the current build is already capable of can be found here:




Time to move over to the game design and prototyping. As you might have read in a previous update, we're currently working on the development of a training vessel to allow everyone to get their hands on some actual gameplay soon again, as well as prototyping and developing those functions that will be needed all over the place in the world of Crush Depth. Walking around, interacting with other objects, interacting with other players, and the like. The very fundamental stuff. Unreal Engine is also offering us some other possibilities in the way materials, textures, and the like are organized and set up, allowing for much higher graphical fidelity than we had in Unity, at the same, or even better performance. It did mean however that we all had to wrap our heads around it a bit differently than we did in Unity.

All that being said, time for some pretty pictures. The modeling of the first version we want to roll out is as good as done. Texturing-wise, there is still some work to be done as we're not completely satisfied with the current set-up; I'll leave it to you though to judge for yourself. With the next update, I hope to talk a bit more about what you'll be able to do on this training vessel in the first couple of iterations of the new Unreal version. Don't expect too much there for the moment though: the first version will very likely not include more than those very fundamental things indeed. Walk around, steer the ship, and perhaps have some control over the speed of the vessel as well. From there on out though, the lion's share of the work is out of the way, so it's our expectation we can iterate on that in quite a rapid succession indeed.



Overview with a lot
of texturing work still needing to be done.


Detail of the bridge/wheelhouse. Also a work in progress.


Then the U-Boat itself. At this stage in the process, we're mostly spending our time 'translating' (for lack of a better word) the current models and textures we used in the Unity version to a structure and set-up that we can use in Unreal. Were taking a bit of time there, as simply 'moving it over would be a waste of the new and exciting opportunities that Unreal offers us as well, in terms of graphical fidelity, the complexity of the model, etc. Very simply put: we take a part of the U-Boat, we rework it (add detail, revamp the textures, and the like) and store it until we feel enough of the U-Boat, or a system of the U-Boat, is ready to make sense of it in terms of game-play as well. In the next couple of updates, I'll be going into more detail about that process, as well as which systems we're currently working on.

That will be it for now! Let me know if you have any questions or if there's anything you'd like to elaborate on, and as always, thank you all for your support.


Don't forget, Tomorrow, 23rd of October, 08h00 Los Angeles/17h00 Berlin, - Ask-me-Anything! - Join us in the Events channel on the Crush Depth Discord
.

https://discord.gg/T5WS2hb

Asid:
Update #62: first glance at our upcoming Unreal version.
Fri, November 5, 2021


Hi everyone! Time for a video update again. We hope you enjoy it and let us know if you have any questions. In short, we cover how our switch to Unreal is going, what we're working on at the moment as well as some of the reasoning behind that. Thank you all for your support!






Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version