Live data from Hacker News

Mono for Unreal Engine

tirania.org

51–60 of 94 posts

Re: Mono for Unreal Engine

#51
post #50
post #42

Earlier quoted context omitted.

Good point about code compiled to C++ not being the same as idiomatic C++ code. However, unlike PHP which is dynamic, C# is statically typed. It is a much more direct match for C++, and performance should be pretty good. But with that said, I think your point still stands, as there are still things like bounds checks in C# which would need to remain when compiled to C++, while idiomatic C# might not have those checks…

C# has very defined behaviour that when "ported" to C++ is going to result in similar speed hits. Allocations are zero'd out. boxing/unboxing objects, array bounds checking. GC is going to be the big hit as you're still going to need to pay for that even in C++ land. I'm not really seeing what you'd get over just C# with a more modern JIT unless you start converting to non-safe C code and doing sneaky c stuff behind…

First and foremost, compiling to C++ means you then optimize it using a full C++ compiler like gcc or clang+LLVM. Not only are those compilers generally better than JITs, they can also do whole-program optimizations. JITs are getting that too (Dalvik=>ART, newer .NET runtimes), but the C and C++ compilers have a big head start.

(In theory a JIT can do all the things C++ compilers do, of course.)

Aside from performance, Mono must be ported to each target platform (I've heard this can take significant effort). On the other hand, well-written C++ code should just run (the rest of the engine is in C++ anyhow).

edit: yes, Unity compiles C# to C++, then to JS to run in the browser.

Re: Mono for Unreal Engine

#52
post #49
post #40

Earlier quoted context omitted.

For a larger corporate, ~$1,800 is very reasonable. Xamarin have a tough line to walk - larger companies will happily pay that price, while still being reasonable for indie developers. Xamarin support is excellent - their forums, twitter etc. I haven't worked with a vendor before that has been that helpful. Xamarin need to cover their costs. I've been using Xamarin Studio for a while now for both iOS & Android and it…

They just need to make two different price plans: you are a corporation? Here the corporation pack. You are a alone dev? Here a very lowered-price alone dev pack. It is not that hard, just put a clause in the license that oblige the corporations to buy their related pack

Or maybe just charge more for the 2nd and later license seats. That may make it even easier to get business to go all-in.

There really should be a one-man shop deep price break. I've used the iOS Pro edition for years since I got grandfathered in for my small iOS app but I don't come anywhere near to breaking even with that so I can't consider adding on Android at full price. I've love to but since I have Pro iOS I can't even add on non-Pro Android licenses either. My little app is a labor of love type of thing with a small, niche user base, not something that will ever cover my costs yet I don't want to give up VS and all that muscle memory and familiarity, etc... I can take a little loss each year for side projects but I can't lose $1800/yr.

Re: Mono for Unreal Engine

#54

Definitely game changing. The barrier to move from Unity to Unreal is really low if this works out. Still best to do C++ where possible but this opens up Unreal drastically.

> The barrier to move from Unity to Unreal is really low if this works out.

Not at all. You still have a huge chunk of your code written specifically for interfacing with UnityEngine. Also, coroutines instead of async.

It still won't be easy to migrate.

Re: Mono for Unreal Engine

#55
post #2

Maybe this will light a fire under Unity to get a recent version of a C# compiler. No one has ever been able to point me to an official explanation for why theirs is so far behind.

> No one has ever been able to point me to an official explanation for why theirs is so far behind.

They don't want to pay Xamarin. Mono commercial licensing sucks...

Re: Mono for Unreal Engine

#57
post #19
post #7

>>This is a project that allows Unreal Engine users to build their game code in C# or F#. F# support is the real kicker.

Blueprint, the default UE4 language, seems functional. All functions are pure functions, with input and output, not methods, there's no 'self' or 'this'. That said, I'm not an expert on Blueprint or FP so maybe someone who knows more can tell me whether that assessment is accurate. (And I totally understand that some people will prefer F# and access to all those .net classes anyway)

Blueprint is essentially a C++ Framework API that you interact with using a GUI

Re: Mono for Unreal Engine

#58
post #39

Earlier quoted context omitted.

Small clarification. It is faster than the old Mono they ship. Their Mono is at best Mono 2.10, about three years old, without any of our optimization work for three years, very notably, a lot of the LLVM support, or the new garbage collector. That said, the il2cpp looks like a very promising an interesting project, so kudos for that!

Yes, I think those benchmarks are based on the Mono they use, which is indeed old. I would be very curious to see benchmarks compared to trunk Mono - should be interesting. My information may be out of date, but typically people tell me that Mono tends to not match Microsoft's .NET implementation in speed, and in turn, .NET tends to not match native C++ either. So I would still guess il2cpp can win here. Or are there…

>NET tends to not match native C++ either

Let's see if with the new RyuJIT and the AOT compiler sharing the Visual C++ compiler backend in the upcoming .NET, that still holds.

Re: Mono for Unreal Engine

#59
post #55
post #2

Maybe this will light a fire under Unity to get a recent version of a C# compiler. No one has ever been able to point me to an official explanation for why theirs is so far behind.

> No one has ever been able to point me to an official explanation for why theirs is so far behind. They don't want to pay Xamarin. Mono commercial licensing sucks...

Compared to what? I fail to see any difference to other comercial software offerings.

Re: Mono for Unreal Engine

#60
post #56
post #18

Earlier quoted context omitted.

Or the Unity guys want to pay too little money.

You haven't seen Xamarin licensing prices...

No, but they are surely cheaper than a lot of comercial software I have to deal with in the enterprise space.

Plus let's not forget Unity was just another 3D engine before they got Mono integrated. Whereas Mono was already being used in multiple areas.

Anyway, this is playing conspiracy theory until someone issues an official statement.

Post reply on HN