Skip to content

Unified Embedded .NET Solution #113518

Open
Open
@CeSun

Description

@CeSun

Currently supports all platforms (Windows, MacOS, Linux, Android, iOS and other mainstream platforms), and can be hot-updated at runtime, only Mono

We all know that C# is one of the best languages ​​for developing GamePlay, therefore, the gaming industry is in great need of a modern, all-platform, hot-updatable .NET runtime.

My friends and I are embedding .NET into Unreal Engine to replace the mainstream TypeScript and Lua. We believe that .NET will improve the development efficiency and runtime performance of Gameplay.

Project Repo: https://github.com/crazytuzi/UnrealCSharp

Two years ago, we started evaluating various runtimes and found that only Mono could support all platforms with one code.

In the long run, mono will eventually be completely eliminated by coreclr, because currently only wasm and Android must be run using mono, and coreclr and nativeaot support for these two platforms is also in progress.

The nuget package of mono on PC has also stopped updating

This is a signal: We must migrate from mono to coreclr or even nativeaot platform

Currently, coreclr only supports PC. Although the coreclr of Android platform can be compiled, the embedded API of coreclr seems to be designed for PC. For example, it searches for .net runtime in the current environment, forcibly binds the path of libcoreclr.so and System.Private.dll, etc. Doesn’t work well on Android

Although NativeAot can supplement platforms that Coreclr does not support well, such as Android and iOS, it lacks the function of dynamically loading IL, and hot updates become a new problem. What's more, the embedding methods of nativeaot and coreclr are completely different, and two codes need to be maintained at the same time,This cost is unacceptable.

The most successful company in embedding .net in the engine is Unity. They still need to modify coreclr and maintain il2cpp to solve these terrible problems.

Therefore, it is more difficult for small and medium-sized enterprises to better use .net in their own games.

In order to make .NET more widely used in the gaming industry, I strongly recommend launching a more unified embedding solution.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions