Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Mono for Unreal

Discussion in 'General Discussion' started by jmatthews, Oct 23, 2014.

  1. jmatthews

    jmatthews

    Joined:
    Jul 27, 2011
    Posts:
    199
    Wow.

    http://tirania.org/blog/archive/2014/Oct-23.html

    I'm not an unreal fan boy. The largest hurdle to me giving Unreal a serious look was getting stuck developing in C++ again, now this.

    • Create game projects purely in C#
    • Add C# to an existing project that uses C++ or Blueprints.
    • Access any API surfaced by Blueprint to C++, and easily surface C# classes to Blueprint.
    • Quick iteration: we fully support UnrealEngine's hot reloading, with the added twist that we support it from C#. This means that you hit "Build" in your IDE and the code is automatically reloaded into the editor (with live updates!)
    • Complete support for the .NET 4.5/Mobile Profile API. This means, all the APIs you love are available for you to use.
    • Async-based programming: we have added special game schedulers that allow you to use C# async naturally in any of your game logic. Beautiful and transparent.
    • Comprehensive API coverage of the Unreal Engine Blueprint API.
    Killer list along with complete support for 4.5, which means await/asynch.

    I'm hopeful that Unity's proposed solution is competitive.
     
  2. jmatthews

    jmatthews

    Joined:
    Jul 27, 2011
    Posts:
    199
    Although it is only for Mac and Windows currently. No android support nor IOS. Still some comp advantages for Unity.
     
  3. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
  4. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    Wtf is a mailing list? How come a company doing cool stuff like this hasn't arrived in 2014?
     
  5. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,952
    Unity has one too.
     
  6. Limyc

    Limyc

    Joined:
    Jan 27, 2013
    Posts:
    29
    This is pretty cool. I've been poking at UE4 for a side project and Mono support sounds awesome. I find it a bit humorous that UE4 (unofficially) supports async before Unity. Hopefully we'll be able to take advantage of modern language features in Unity relatively soon.
     
  7. Deleted User

    Deleted User

    Guest

    I'd take heed, we know not of what it costs..

    P.S is it obvious I watch too much game of thrones? :D
     
  8. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    If they can stick to their roadmap and they figure out a pricing structure, this might actually convince me to switch. The fact that Unreal has an apparently friendlier partnership with Xamarin and got .NET 4.5 support while Unity is still stuck on 2.0 is a pretty bad sign.
     
  9. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Their current proposed solution is not, since it only works on WebGL, and might possibly work on iOS in a year, but support for Windows and Mac is even further out than that, if it comes at all. Plus, Unreal is getting actual Mono, whereas Unity is trying to reinvent the wheel with il2cpp.
     
  10. lmbarns

    lmbarns

    Joined:
    Jul 14, 2011
    Posts:
    1,628
    omg how the hell does UE4 get new mono and Unity has such an ancient version???


    I actually have 1 project from a company moving back to Unity after they couldn't get past the basics in UE4. (I guess networking is harder?)
     
    shkar-noori likes this.
  11. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    Probably because you will have to pay Xamarin to use it, and Unity did not want to pay Xamarin for you to use it because they wanted too much.

    Question for me is if they go subscription...
     
  12. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    I thought you get very advanced networking basically for free with UE4? Maybe they could not get it...
     
  13. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Yeah, the fact that Xamarin is working on this at all makes me think they will offer a cheap indie license rather than the current negotiate-your-own-secret-commercial license. Or that Epic themselves will pay for a redistribution license. Epic seems like a company that might be willing to pay Xamarin if it means getting to one up Unity again.
     
  14. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,015
    This is all really awesome, except it is not quite part of UE4 yet. It is still 3rd party code that requires you to manually compile UE4 from source to add the support for Mono. It won't be a serious threat to Unity until it is merged into UE4 and distributed with UE4 by default. But that could happen really quickly.
     
  15. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    I don't think this is gonna happen. Too many current UE4 users don't want C#, so bundling by default is no option imho. Next the Python and Lua people come and want it bundled too. This is 3rd party, Epic does not want any responsibility for maintaining it besides providing a stable scripting API all other languages can use.

    But they probably take over the hooks needed, so users could just download and use the thing without compiling UE4.
     
    Last edited: Oct 24, 2014
  16. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    736
    From what I have heard and take this with a grain of salt. Epic Games does maintain a version of LUA for Unreal engine 4.

    I welcome C# support :)
     
  17. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    This is really cool. I'm looking forward to playing around with UE4 with this to better evaluate the engines.
     
  18. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    The Lua binding is a very simple example for usage of the scripting API implementation, it is probably like 50 lines of code (just assuming so your salt is right, maybe they created a full one now, but thought it is just the example). Not sure, but maybe you have to download the Lua runtime yourself.

    I'm also for C# support. But the user can download the binding and Mono himself, as long as he does not have to compile the engine for it. Or it could come from the Store, like other plugins/addons.
     
  19. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    736
    I just heard that Epic does maintain a version of Lua for their engine that is all i know :)

    I am for C# Support as well. Really cannot wait to see where this goes over the next six months.
     
  20. TomasJ

    TomasJ

    Joined:
    Sep 26, 2010
    Posts:
    256
    Actually IL2CPP works on Windows and Mac (and a few other platforms) today. It's just not ready to be shipped yet.
    As for "reinventing the wheel" - Mono itself is a reinvented wheel of the .NET runtime (jit engine). IL2CPP takes a different approach, which from the looks of it is not only more performant, but incredibly portable too.

    You wouldn't believe the time and effort required to get Mono running on platforms like Xbox 360 or PS3.
     
    Last edited: Oct 24, 2014
  21. NoPiece

    NoPiece

    Joined:
    Jan 5, 2014
    Posts:
    26
    It is no secret that Epic has been working on enabling scripting language support, and have been implementing Lua as the test case. Unfortunately, work on it has seemed to peter out over the last couple months. Last word from the main dev was over a month ago, and it wasn't encouraging. Maybe they knew Mono was coming, and felt it made their script plugin work obsolete.

    robert.manuszewski said
    A few words on the plans for the plugin: we got to a point where we’d have to commit additional resources to continue implementing Lua integration, with sample content etc. The problem is we don’t really have those resources at the moment. Another problem is that my knowledge of how to use Lua from the gameplay perspective is rather limited so we’d have to bring someone who could help but we really didn’t have anyone like that (well, at least no one who’d be available to commit to it!). We also started considering other alternatives to Lua but haven’t reached any decisions yet, mostly because of the same reasons as I just mentioned.

    In the meantime we decided that for now we should focus on our ‘default’ workflow, which is C++. So I’m currently mostly focused on Hot-Reload improvements.

    I'm not saying we're done completely with any improvements and development though! We just need time to look at all the available options and make the right choice!
     
  22. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,502
    I do not like Xamarins current pricing model at all, especially when it is contrasted with the monthly cost of UE4.

    However I suppose for Indies with less than 5 employees, the current Indie $25 per month, per developer, per platform cost isn't too many miles away from sanity.
     
  23. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    to me it dont really matter since im using unity and not going to switch

    but isnt it basically $300 / yr

    and isnt that only if your shipping something your selling commercially

    and what about if you shipping nothing at all

    and what if your just releasing stuff noncommercially (like totally for free)

    also i think i saw on one of their website pages that if you are a small indie company with few employees and/or not making much money to contact them and work something out... so it maybe less than $25/m if u qualify which many indie would i would think...
     
  24. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    I was looking at the licensing, and it seemed to me that it said distributing anything (commercial or free) requires paying for a license.
     
  25. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    It was clear that this was just an example from the beginning. If Lua people want a more complete Lua binding, they have to implement it. Same for all other languages.
    That's how you do scripting the clever way: you provide an API and a simple example. Then all the language fanboys can implement it. So you get all the languages the people really want and not just the few you select. And you just have to maintain the API.
     
  26. jmatthews

    jmatthews

    Joined:
    Jul 27, 2011
    Posts:
    199
    My problem with the old Unreal Engine was how baked everything needed to be(meaning procedural content was very difficult), and the workflow was quite a bit slower. As evidence I've made two games in Unity and 0 games in Unreal.

    This doesn't change that, it just lowers the margin of advantage that Unity enjoyed. C# was a big benefit for Unity but certainly not the only benefit. F# support is cool but for me I'd only consider using F# for heavy duty server side code, and with Unity I can use whatever language I want unless I need the physics to be authoritative.
     
  27. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Welllll, IMHO, "not ready to ship" doesn't count for much. Xamarin is already shipping this. I do hope il2cpp works out for you guys and I'm sure it has been a crapton of work for you all, but if it's not going to ship for Windows until 2017, then Unreal is going to start looking very attractive.
     
    shkar-noori likes this.
  28. nbirko2928

    nbirko2928

    Joined:
    Aug 20, 2012
    Posts:
    125
    This might be a serious selling point for me. My brother in law is a very talented artist and I'm a programmer, when he shared his interest in working together he suggested we use Unreal 4 but I kind of brushed it off in favor of Unity because I like the way scripting works on Unity better and I'm not a fan of C++. If this get's implemented and you can write scripts in Unreal 4 using C# I might actually give it a try.
     
  29. cannon

    cannon

    Joined:
    Jun 5, 2009
    Posts:
    751
    Just noting that this has been a pretty consistent vibe I get when tracking IL2CPP, that Mono is a pain when it comes to integrating new platforms, and IL2CPP just takes away so much pain from you guys.
    Makes me doubt that Mono integration in UE4 will do anything more than fragment their mid-tier scripting solutions, since there's really a lot less attraction to using a scripting language that doesn't run on all the engine's deployment platforms.

    Hope you guys polish IL2CPP soon, really looking forward to having it available on all platforms.
     
    hippocoder likes this.
  30. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Agreed, IL2CPP on vita would be a much-needed spurt of speed.
     
  31. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    i hope we can see IL2CPP on windows standalone in mid 2015 and not in 2017
     
  32. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,952
    Unity also has a pretty outdated copy of Mono. Xamarin could very well have something developed to ease the process that Unity does not have access to. We'll have to wait and see how this side project develops.
     
  33. pKallv

    pKallv

    Joined:
    Mar 2, 2014
    Posts:
    1,177
    for one who do not know, what is the difference be between our current Mono and the latest version?
     
  34. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    Performance for beginners.
     
  35. reentrant

    reentrant

    Joined:
    Oct 5, 2014
    Posts:
    59
    People forget that Unity forked Mono because of a licensing loophole issue on iOS. Six years later, Unity's forked runtime is insufficient, but because Unity burned their bridges with Xamarin, have been forced to create their own AOT, hence IL2CPP. I also think Miguel De Icaza has his own vested interests in seeing UE4 dominate the market, because the UE4 bindings appear exceptionally comprehensive for a first effort, but that's another topic altogether.
     
    Meltdown likes this.
  36. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Well, Unity needs a specific license which is more than they're prepared to afford. But IL2CPP will enable 4.5 and so forth, possibly faster than xamarin's solution. IL2CPP is actually turning out to be a master stroke.

    Personally, I don't feel comfortable knowing xamarin isn't fully invested in the UE4 product yet, with clear public license fees to look at. In any case were I using UE4, I'd just use C++. It's really not that hard to get back into if you know C#. I guess people are really just missing the goodness the .net framework provides.
     
  37. Necromantic

    Necromantic

    Joined:
    Feb 11, 2013
    Posts:
    116
    Async Tasks and Concurrency are always a big thing for me. Some people underestimate how much performance can be won by multithreading/tasking.
    Another thing is the world is moving forward, many libraries or frameworks nowadays require higher .Net versions than 3.5. Sometimes you can find older versions or if it's open source you can adjust some of them to compile with 3.5. Just the other day I adjusted the Aerospike (key-value store NoSQL database) Client to compile for 3.5 and work with Unity but that's not always possible.

    I really hope Unity can ensure its position in this race of game engines because I like Unity and have worked with it for years. But with Epics efforts to bring Unreal Engine 4 to more people (pricing model and free for students on GitHub as well as free licenses for educational facilities) - not to forget the people that stick with UE4 because of it's cutting edge technology and graphical fidelity - full source access and now this UE4 is becoming a tempting option. Either way more competition/alternatives is always good for us as "users". Looking forward to Unity 5 and IL2CPP.
     
    Last edited: Oct 25, 2014
  38. jmatthews

    jmatthews

    Joined:
    Jul 27, 2011
    Posts:
    199
    I believe the upside on IL2CPP is much higher than the Xamarin solution but it's also much more ambitious and thus risky.

    To each their own but I recently had to do some work on a legacy C++ application and it was like trying to write an essay without using the letters R and N. Possible, but painful and unnecessary.
     
  39. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,952
    There is quite a difference between a legacy C++ application and UE4. At the very least UE4 is using a subset of C++ 11 so there are a number of new toys available.
     
  40. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    Well... we do actually (forgive me if someone already posted this... didn't read the whole thread):
    http://mono-ue.github.io/faq.html

     
  41. Deleted User

    Deleted User

    Guest

    So stick to BP and C++ then, :D.. It has to be supported by Epic to be worth it, especially with the rampant rate at which they release.
     
  42. spraycanmansam

    spraycanmansam

    Joined:
    Nov 22, 2012
    Posts:
    254
    I like C++, I prefer C#, but in all honesty, with the amount of macros provided in the UE4 API there's not much between the two. As great as this sounds, I'm wondering if you'd experience something like their iOS/OSX C# implementation.. It's great, but there's a fair bit of the API missing. Nothing major.. but enough to annoy.
     
    UndeadButterKnife likes this.
  43. TomasJ

    TomasJ

    Joined:
    Sep 26, 2010
    Posts:
    256
    We will have to concentrate on shipping IL2CPP on platforms that require it first, such as WebGL. You wouldn't really have any advantages beyond performance on standalone where mono runs fine. That said I can't confirm that it won't happen in 2015.
     
  44. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    Code obfuscation
     
  45. TomasJ

    TomasJ

    Joined:
    Sep 26, 2010
    Posts:
    256
    Fair enough :)
     
    shkar-noori likes this.
  46. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    performance and security are enough for me.
     
  47. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    <_<
    >_>

    Godot
     
  48. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    The best reason for sticking on BP or C++, C# solution until fully supported and made by Epic could go down quickly.
     
    tatoforever likes this.
  49. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    You mean "you can confirm that it will happen in 2015"? :D ^^
     
  50. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    That's right, until there's no official support by Epic, you can consider it dark waters (be careful).