Live data from Hacker News

Mono for Unreal Engine

mono-ue.github.io

21–30 of 98 posts

Re: Mono for Unreal Engine

#21

C# is Unity's main programming language, now there's this for Unreal, and Godot 3.0 will also have C# support. Is C# becoming the lingua franca of modern game engines?

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

Re: Mono for Unreal Engine

#22

C# is Unity's main programming language, now there's this for Unreal, and Godot 3.0 will also have C# support. Is C# becoming the lingua franca of modern game engines?

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

Do you know if this is still true with the newer "concurrent" garbage collector in more recent Mono versions? I work on an audio player app rather than games, but also have problems with the GC in Mono on IOS. We're hopeful that eventually they'll go away, but haven't tried again recently.

Re: Mono for Unreal Engine

#23

Earlier quoted context omitted.

C# has value types, it takes some careful coding to avoid GC stutters, but imo not nearly as careful as C++

Uh, what? C++ doesn’t have garbage collection. Did I misread this comment?

Still possible to have huge deallocations in C++. On top of that, C++ makes it possible to fragment memory, whereas .NET's GC can compact references.

In both languages you have to be conscientious of types of allocations.

Re: Mono for Unreal Engine

#24

C# is Unity's main programming language, now there's this for Unreal, and Godot 3.0 will also have C# support. Is C# becoming the lingua franca of modern game engines?

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

The version of Mono that is shipped with Unity is bad specifically for licensing reasons, there is no technical cause.

Re: Mono for Unreal Engine

#25

Earlier quoted context omitted.

C# has value types, it takes some careful coding to avoid GC stutters, but imo not nearly as careful as C++

Uh, what? C++ doesn’t have garbage collection. Did I misread this comment?

I read that as "[C#] takes some careful coding (to avoid GC stutters) but not nearly as careful as C++ [requires in general]".

Re: Mono for Unreal Engine

#26
post #22

Earlier quoted context omitted.

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

Do you know if this is still true with the newer "concurrent" garbage collector in more recent Mono versions? I work on an audio player app rather than games, but also have problems with the GC in Mono on IOS. We're hopeful that eventually they'll go away, but haven't tried again recently.

I am not certain. Theoretically, it should be better, because I think they implemented a GC algorithm similar to the one on Windows. But I have never actually run it.

It's hard to emphasize how bad the Unity Mono GC is. It's a Mark-and-Sweep garbage collector, which is like the simplest-yet-least performant approach to GC there is. Nearly every other GC in production use in other stacks is better.

Re: Mono for Unreal Engine

#27

C# is Unity's main programming language, now there's this for Unreal, and Godot 3.0 will also have C# support. Is C# becoming the lingua franca of modern game engines?

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

Unity 5.x only uses Mono for the editor. On non-Windows platforms they use their own AoT .Net implementation, IL2CPP.

Re: Mono for Unreal Engine

#28
post #25

Earlier quoted context omitted.

Uh, what? C++ doesn’t have garbage collection. Did I misread this comment?

I read that as "[C#] takes some careful coding (to avoid GC stutters) but not nearly as careful as C++ [requires in general]".

That would make more sense. I can see that now.

Whether that tradeoff is the one to make probably depends a lot on what kind of game you are making.

Re: Mono for Unreal Engine

#29
post #24

Earlier quoted context omitted.

I would certainly hope not. C# implementations are terrible for lots of games on not-Windows. The version of Mono that has been included with Unity is particularly bad with respect to stop-the-world garbage collection pauses.

The version of Mono that is shipped with Unity is bad specifically for licensing reasons, there is no technical cause.

What's wrong with the licensing? Not disagreeing with you; this is just the first I've heard of it.

Re: Mono for Unreal Engine

#30

C# is Unity's main programming language, now there's this for Unreal, and Godot 3.0 will also have C# support. Is C# becoming the lingua franca of modern game engines?

If you download VR games, all the ones I have seen so far - that give credit - have been done with Unity. I know ones made with Unreal are out there, I have not download any with the Unreal logo yet though.

I dabbled with the Daydream Google VR NDK C++ sample app and did a demo app for myself of simple shapes moving around. While I could do simple things, I couldn't imagine doing the type of games others have done on the platform (or Oculus, or Vive) without Unity. For most people the question will be, why reinvent the wheel?

I don't know if C# will be the lingua franca of modern game engines, but for the foreseeable future, I think it will be the lingua franca of VR.

Post reply on HN