Live data from Hacker News

Mono for Unreal Engine

tirania.org

31–40 of 94 posts

Re: Mono for Unreal Engine

#31
post #17
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.

That was my number one reason for moving to UE4; announcing Unity 5 with no Mono runtime update was the last straw. Current versions of Mono could probably do a serviceable job with simulation-heavy games, but not Unity's ancient one. Bizarrely, they don't even have a C or C++ API. You can add native code libraries to your project in Unity Pro, but you always have to go through Mono to interact with the engine.

Unity is writing a C#-to-C++ compiler, il2cpp, see

http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-...

it's much faster that Mono on some things currently,

http://blogs.unity3d.com/2014/10/07/benchmarking-unity-perfo...

but it is so far only used in the WebGL port. Long-term, il2cpp is meant to replace Mono in Unity, according to the first of those links.

Re: Mono for Unreal Engine

#32

Hopefully, Xamarin will add Visual Studio support in the Indie dev plan at some point. Currently, if you want to support iOS, Android and use Visual Studio you need to pay $1798 per year which is a bit more for a one man shop.

Or you could look at Apache Cordova. Support is in CTP now and full release in Visual Studio 2014 hopefully.

Not even close to being the same thing.

Re: Mono for Unreal Engine

#33
post #30

One concern here is portability: If you write your game logic in C# on Mono, it won't run on all platforms (possibly for either technical or licensing reasons - you're limited to where Mono runs). For example it won't run on the HTML5 target. For comparison, Unity has written il2cpp to replace Mono to get around that, http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it basically compiles C# to C++, whi…

Mono is a well designed, very portable codebase. The only platform I can imagine having trouble _is_ the browser, but I would bet that you could compile mono with emscripten quite easily. Also, there's http://www.jsil.org/

Re: Mono for Unreal Engine

#35
post #31
post #17

Earlier quoted context omitted.

That was my number one reason for moving to UE4; announcing Unity 5 with no Mono runtime update was the last straw. Current versions of Mono could probably do a serviceable job with simulation-heavy games, but not Unity's ancient one. Bizarrely, they don't even have a C or C++ API. You can add native code libraries to your project in Unity Pro, but you always have to go through Mono to interact with the engine.

Unity is writing a C#-to-C++ compiler, il2cpp, see http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it's much faster that Mono on some things currently, http://blogs.unity3d.com/2014/10/07/benchmarking-unity-perfo... but it is so far only used in the WebGL port. Long-term, il2cpp is meant to replace Mono in Unity, according to the first of those links.

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!

Re: Mono for Unreal Engine

#36
post #30

One concern here is portability: If you write your game logic in C# on Mono, it won't run on all platforms (possibly for either technical or licensing reasons - you're limited to where Mono runs). For example it won't run on the HTML5 target. For comparison, Unity has written il2cpp to replace Mono to get around that, http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it basically compiles C# to C++, whi…

Mono is a well designed, very portable codebase. The only platform I can imagine having trouble _is_ the browser, but I would bet that you could compile mono with emscripten quite easily. Also, there's http://www.jsil.org/

There are also issues with Mono on some consoles and mobile devices, due to how linking works as well as some non-technical (legal) restrictions the platform owners place.

From talking to Mono devs, definitely Mono can be ported to new platforms, at least if there are no license problems. But even then, it can be quite a lot of work. il2cpp avoids all those issues, it emits C++ which every significant platform can handle very well.

Re: Mono for Unreal Engine

#37
post #30

One concern here is portability: If you write your game logic in C# on Mono, it won't run on all platforms (possibly for either technical or licensing reasons - you're limited to where Mono runs). For example it won't run on the HTML5 target. For comparison, Unity has written il2cpp to replace Mono to get around that, http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it basically compiles C# to C++, whi…

Mono is a well designed, very portable codebase. The only platform I can imagine having trouble _is_ the browser, but I would bet that you could compile mono with emscripten quite easily. Also, there's http://www.jsil.org/

Also, there's NaCl.

Some Mono games (like Bastion) have already been ported to run on the browser:

http://www.supergiantgames.com/blog/surprise-bastion-now-ava...

(then again, NaCl is not probably what most people have in mind when they think about browser support)

Re: Mono for Unreal Engine

#39
post #31

Earlier quoted context omitted.

Unity is writing a C#-to-C++ compiler, il2cpp, see http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it's much faster that Mono on some things currently, http://blogs.unity3d.com/2014/10/07/benchmarking-unity-perfo... but it is so far only used in the WebGL port. Long-term, il2cpp is meant to replace Mono in Unity, according to the first of those links.

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 benchmarks showing Mono matches .NET and/or native C++?

Re: Mono for Unreal Engine

#40

Hopefully, Xamarin will add Visual Studio support in the Indie dev plan at some point. Currently, if you want to support iOS, Android and use Visual Studio you need to pay $1798 per year which is a bit more for a one man shop.

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

Post reply on HN