Live data from Hacker News

Mono for Unreal Engine

mono-ue.github.io

81–90 of 98 posts

Re: Mono for Unreal Engine

#81
post #32

Earlier quoted context omitted.

I don't think so. If I remember it correctly, the Epic guys said something about switching back (for the Unreal Engine 4) from their own scripting language to C++, because multi language debugging was a nightmare, and working on a big Python/C++ project myself, I can comfirm this.

Without the right tools, multi language debugging is a nightmare. A mixed C/C++ callstack is so benign and common that it likely won't even register as being a "multi language" debugging experience. You get a single unified stack display, breakpoints, the works. There's a caveat or two around exceptions - that's about it. Everything just works . C#/C++ isn't quite as solid, but it's still ahead of Python/C++ IME. Nam…

"C#/C++ isn't quite as solid" is a bit optimistic, in my experience.

Re: Mono for Unreal Engine

#82

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 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 could think of:

Blender: Python only

CryEngine: Lua and C#

Gamebryo: C++ only

Unity: C# and Java (Boo is no longer supported)

Unreal: C++ only (UnrealScript no longer supported)

Amazon Lumberyard: Lua (maybe C++ too?)

id Tech: C++

I was actually surprised at how common Lua was, but now that I think about it I have heard of it being used increasingly in games.

Re: Mono for Unreal Engine

#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 the troubles of Mono that meant for Unity for many years, they had to fork an old version due to draconic license changes - Mono was a bad choice for Unity. As triple-A games are developed for Windows7+ and PlayStation4 (and less often also macOS, Linux, XboxOne, Switch) usually cross platform languages like Lua, Javs, JavaScript or Squirrel are used.

We are talking about the game scripting language, the game engine is always coded in C++ for triple-A games, with only a handful outliers. It's different for indies. We all know how the "Managed DirectX" and the incompatibile successor XNA turned out, the C# DirectX community is dead, end of life and last supported on the old XBox360, dead like Silverlight https://en.m.wikipedia.org/wiki/Microsoft_XNA .

Re: Mono for Unreal Engine

#84

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?

C# has been in the gamedev toolkit since XNA, over a decade ago.

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.

Re: Mono for Unreal Engine

#85

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?

Tim Sweeney gave a good explanation why they went C++. Seems reasonable, but I'll be happy to see C# support. https://forums.unrealengine.com/showthread.php?2574-Why-C-fo... - As an engine and its community grows, there is increasing pressure to expose more of the its native C++ features to the scripting environment. What starts out as a sandbox full of toys eventually grows into a desert of complexity and duplicatio…

[deleted]

Re: Mono for Unreal Engine

#86
post #82

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

Re: Mono for Unreal Engine

#87

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.

Implementations is the keyword here, it doesn't have anything to do with the language itself.

GCC was for almost twenty years quite bad versus other commercial compilers, yet it is worshipped nowadays for its performance.

Re: Mono for Unreal Engine

#89
post #80

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?

> Is C# becoming the lingua franca of modern game engines? Unfortunately. It's a decent language, but it just seems a bit too heavy to use as a scripting language, but not as good as C++ for heavy lifting. I'm doing some stuff on Godot, and will probably just end up using GDScript for basic stuff, and GDNative for more intensive stuff (It's a C/C++ API for shared libraries that you can load up through the editor).

> but it just seems a bit too heavy to use as a scripting language, but not as good as Assembly for heavy lifting.

> but it just seems a bit too heavy to use as a scripting language, but not as good as C or Pascal for heavy lifting.

Are two variations of that statement I have heard among games developers since I am in computing.

Re: Mono for Unreal Engine

#90
post #84

Earlier quoted context omitted.

C# has been in the gamedev toolkit since XNA, over a decade ago.

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.

Post reply on HN