Live data from Hacker News

Mono for Unreal Engine

mono-ue.github.io

91–98 of 98 posts

Re: Mono for Unreal Engine

#91
post #83

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?

Why not use Lua, Squirrel or JavaScript as game programming language? Many game engines use one of these languages, especially Lua is very very popular in this niche, and LuaJIT is sooo fast. Also Java is used in several game engines. C# (Mono) was only used in Unity as one of three languages (one being JavaScript/Actionscript). What other well known game engines that are used for triple-A games use C#? We all know t…

It turned out that Monogame is one of the official Microsoft supported ways to develop indie games on XBox ONE.

http://news.xbox.com/2016/03/14/letter-chris-charla-idxbox-u...

Re: Mono for Unreal Engine

#92

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.

Like every other language used for game development: you don't allocate objects in the render loop. All objects are re-used and go into pools. Malloc isn't free (heh): maintaining the free lists can kill FPS just as quickly as anything else. As others have pointed out: the CLR has had a concurrent low-latency GC for a long time now and now that it's all open-source there is nothing preventing Unity from adopting it.

Yeah, I am also surprised by the fact that people are constantly nagging about GC. In real gamedev on Unity, memory management is very serious and everything gets pooled. If GC is a problem, you rewrite the code so that it isn't.

Re: Mono for Unreal Engine

#93

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?

Even outside the engines available to us plebs C# is becoming extremely popular in game dev. It's basically ergonomic C++ so it's very familiar to the kind of people who do games for a living, the VM is world-beatingly fast, and it's an easy language to hire for. Most games companies use Windows anyway so the MS lock-in isn't so much of a downside (obviously C# isn't Windows-only now but it's still controlled by MS).

Re: Mono for Unreal Engine

#94
post #86
post #82

Earlier quoted context omitted.

I doubt it. C++ has been the standard for a long time now and what we're really talking about is scripting languages for higher-level stuff, not the actual game engine. On the one hand, yeah, C# is a good choice since Windows dominates the desktop market. But it's the sort of thing you can easily change and that users might have personal taste and preference for. I went and looked up all the major game engines I coul…

I remember the main language of CryEngine is c++. And Amazon Lumberyard is a fork of CryEngine (so also c++). Maybe I am wrong.

Oh sure, I was listing the languages it was scripted in. They're all C++ or C when it comes to what the engine is written in. Performance is super important in games, so you're just not going to see a high level language as the implementation language in a major engine.

Re: Mono for Unreal Engine

#95
post #39
post #19

Earlier quoted context omitted.

Just because it's GC'd doesn't mean it's constantly allocating memory. Optimizing the most common heap allocation sources isn't very difficult (especially compared to the nightmare of manual memory management). I recommend running the Roslyn Clr Heap Allocation Analyzer extension for VS for a few days - it helps to learn which language features and APIs implicitly allocate objects (or box value type objects). Plus, m…

I wrote games and engines in C++ for 15 years, and Unity for about 5. I strongly prefer manual mem management, hands down. Optimizing for Unity's GC, in pathological situations, is the nightmare. If the game is relatively simple, and the heap relatively small, it's not a big problem. But if you're trying to make a large, complex simulation that's actually pushing boundaries, the GC becomes a constant adversary. Peopl…

Unity GC is a bad example, because it is widely known that their implementation is pretty crappy, frozen in 2007 implementation.

The majority of GC implementations out there are generations ahead of what Unity's GC is capable of.

Re: Mono for Unreal Engine

#96

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?

Actually C++11 has a GC API and Unreal does make use of a C++ GC.

Re: Mono for Unreal Engine

#97
post #78

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.

I hope so, although I particularly hope that more game designers build games such that the windows distribution can be directly run by mono on not-windows. That is the way the game is most likely to stay working for an long time and under multiple operating systems. I'm no fan of Microsoft, but compatibility over time is one thing they do better than anyone else and games are the one kind of application where that is…

Maybe I'm getting old, but you saying Microsoft is brilliant at compatibility made me smile ruefully

Re: Mono for Unreal Engine

#98
post #90
post #84

Earlier quoted context omitted.

Yeah and MSFT showed their stink finger to the community twice, first with C# Managed DirectX, then with end of life for C# XNA. https://en.m.wikipedia.org/wiki/Microsoft_XNA Who would be so stupid and learn-resistant to use C# a third time for games?? Well there are those sheeps, that believes and do everything for their PR department.

They have brought back support for XNA/Monogame when they released the new XBox games program. http://news.xbox.com/2016/03/14/letter-chris-charla-idxbox-u... XNA was a victim of the usual internal wars between Windows Dev and DevTools R&D units, about which way to build software (.NET vs C++). Hence why they are so supportive of Unity nowadays, which is the main way to develop HoloLens applications.

> XNA was a victim of the usual internal wars between Windows Dev and DevTools R&D units, about which way to build software

the reasoning behind it doesn't change the years of my life I spent learning an obsolete tech stack.

which is fine: tech moves on. Except for the fact that MS told me it was the future.

and I don't blame them, but I'm also not going to take them at face value again.

Post reply on HN