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

New version of Mono with Unity 4.3 - Any additional details on that?

Discussion in 'General Discussion' started by Stephan-B, Aug 28, 2013.

  1. Stephan-B

    Stephan-B

    Joined:
    Feb 23, 2011
    Posts:
    2,269
    I realize we get the newer IDE, better auto-completion, etc... Does that mean we get Mono 2.10 or better with all of those features?
     
  2. Tim-C

    Tim-C

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    2,221
    just mono develop
     
  3. Stephan-B

    Stephan-B

    Joined:
    Feb 23, 2011
    Posts:
    2,269
    Thanks for the quick reply Tim!

    I was hoping for more but it is still a step forward.
     
  4. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    Well done Tim!!

    I'm not so hung up with the monodevelop version, but just out of curiosity is it a huge thing for unity to upgrade monodevelop or is it because you don't see it as big step forward by upgrading?

    in other words do you look at it as for amount of work you would put into upgrading wouldn't be worth it as there would still be garbage collection issues?
     
  5. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    MonoDevelop is irrelevant for garbage collection. It's the code editor, essentially a fancier version of Notepad. It has nothing to do with how the code is run in your game.
     
  6. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    @angrypenguin oh yes sorry. what I should of said is C#, is that correct? C# is what takes care of GC right??
     
  7. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    Mono is what takes care of garbage collection. C# is one of the languages that can be used in Mono.

    Updated MonoDevelop would be really nice, though, assuming that the update fixes some of the really common bugs that it has.
     
    Last edited: Aug 29, 2013
  8. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    ok you got me a little confused there. So Mono and Monodevelop are two different things??

    So what I mean is upgrading "mono" ect

    edit

    Tim jump in anytime you to help my little mind :)
     
  9. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    Yes, they're different.

    Mono is a runtime environment in which code is executed.

    MonoDevelop is an editor in which code is written.
     
  10. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,770
    Unfortunately no. "Just upgrade to latest Mono runtime" is not that easy due to licensing issues (Mono is LGPL, so is only "free" on PC-like platforms). We're very actively looking into possible solutions, but so far we can't upgrade to a later version of Mono just yet.

    MonoDevelop (the code editor), we are upgrading in Unity 4.3, since no licensing issues there. If anyone is feeling adventurous about building it yourself from source, it's all on github: https://github.com/Unity-Technologies/monodevelop (may or might not work with Unity 4.2 - I don't know).
     
  11. _Max_

    _Max_

    Joined:
    Feb 21, 2013
    Posts:
    160
    in terms of MonoDevelop the code editor, is development for this finished, I thought they moved onto Xamarin xamarin.com/studio, the future version of the editor..
     
  12. Harissa

    Harissa

    Joined:
    Nov 13, 2008
    Posts:
    138
    That's interesting. Does that mean that the license for Mono has changed and that Unity will have to fork the old version to make improvements on mobile platforms?
     
  13. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    They most likely had to buy the license for the version they have right now. Making a fork from that one would be pointless, because Mono has evolved a lot with many awesome new features. What they need to do is to get a good license deal with Xamarin.
     
  14. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,770
    MonoDevelop 4.x is "Xamarin Studio". Or rather: Xamarin Studio = latest Mono Develop + their plugins for their iOS/Android/Mac/whatever APIs.

    We (in 4.3) are including the "latest MonoDevelop" part with our plugins for UnityScript unity debugger.
     
  15. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,770
    We have a license deal back from the Novell days that lets us use the Mono version we're using now. That old version is what we're doing occasional bug fixes on. We don't have the license for more recent version from Xamarin.
     
  16. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    862
  17. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    I'm struggling to accept this. The most widely distributed game engine on the planet should have the business savy and $$ to negotiate a license for up-to-date versions. Fix this.

    Gigi.
     
    elmar1028 likes this.
  18. _Max_

    _Max_

    Joined:
    Feb 21, 2013
    Posts:
    160
    Got it...This makes sense now, clears up the confusion people are having between Xamarin Studio/Mono Develop IDE and Mono..
     
  19. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Seriously :)
    Unity probably wants to get a long lasting contract, which will allow them in the future to update to the newest versions more easily. This is called learning effect.
    On the other hand, Xamarin wants to charge as much as possible for it. So it goes back and forth and back and forth, ... . If Unity wants to push it through as fast as possible, they have to pay too much. That means as a consequence, every dollar they pay for licenses can't be invested for the development/bug fixing of Unity itself. And that is called business.
     
  20. r618

    r618

    Joined:
    Jan 19, 2009
    Posts:
    1,302
    It's not a question of money, but rather the question of mainly breaking teh Unity codes should they upgrade to the latest - IMHO.

    On a slightly different note; this renders secure sockets on iOS - http://forum.unity3d.com/threads/195917-SSL-TLS-socket-write-JIT-ted-on-iOS
    even less likely to be fixed and accessible on iOS anytime in near future :/
     
  21. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    862
    Anyway I am not sure that mono 3.2 is full cooked yet. Better to wait a little while longer.
     
  22. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    They have a license issue, that means it is all about money... Of course there will be compatibility issues, but they could be solved comparably easy.
     
  23. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,788
    Well, not necessarily every license issue is about the money. It could be anything, from licensing model incompatibility to law conflicts.
     
    Last edited: Aug 29, 2013
  24. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    862
  25. thempus

    thempus

    Joined:
    Jul 3, 2010
    Posts:
    61
    Someone needs to create a Kickstarter project to fund updated Mono license for Unity :).
     
  26. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    All of which are solved by someone agreeing to give someone else an appropriate amount of money. That is indeed what licenses are about - what one person has to agree to do or pay in order to use someone else's intellectual property.
     
  27. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,964
    Is anyone having an issue with the auto-completion dropdown list? It works 40% of the time here...
     
  28. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    UT should have made use of the sinking Novell Ship and hire what became Xamarin themself and buy the rights to keep mono going

    I'm rather sure that this would have been much cheaper than whatever license deal can now be struck after Xamarin had this much success and confidence on their long term existance and business sustainability ... though even now, the cheaper longterm solution might be to just attempt to buy them ;)
    Though with the business relationships with MS, who knows if it wouldn't become possible to actually go forward with a modified MS .NET instead.
     
    Last edited: Aug 30, 2013
  29. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    You have to ask hard questions, for example if unity pay 1 million, what quality of development (QOD) do the end users get? What if 1 million was invested into virtual texturing and mesh/occlusion/other streaming plus new tools?

    hardware is getting faster all the time. The requirement for a faster mono is reducing all the time. In a year we'll not be too concerned with how fast mono is. I don't think Unity need to upgrade mono as they're currently doing their own work on the garbage collector. If they can solve this, mono is good for another few years and they'll have saved considerable cash which can be ploughed into making unity's development tools stronger.

    Yes in the past I've advocated mono itself being upgraded, but having seen the issues surrounding it I'd rather they focussed on an even better Unity core (so long as we can adjust the performance cap for GC).
     
  30. Deleted User

    Deleted User

    Guest

    Will the latest version that gets packaged with the next Unity version allow for split view? (Not of the same document, but having multiple scripts visible and editable at the same time)
     
  31. chelnok

    chelnok

    Joined:
    Jul 2, 2012
    Posts:
    680
    +1 ..diamonds last forever, but money talks.
     
  32. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    I would hate to see Unity have a closer dependance on MS for platforms other than Windows.

     
  33. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,788
    So true! Forgot about that...

    I guess no since that's not possible even in Xamarin Studio, see http://xamarin.uservoice.com/forums...rt-split-screen-with-different-files-in-xamar

    (but you can do that with Script Inspector 2) ;)
     
  34. r618

    r618

    Joined:
    Jan 19, 2009
    Posts:
    1,302
    I still think that the cost of adjusting latest Mono is for Unity higher in terms of actual money and resources put into the effort than the cost of the license itself.
    And since current Mono is sufficient in most of the circumstances* there's no reason form them to actually make that happen

    *except those bügs which are fixed in the latest and not backported to Unity :(
     
  35. Mr.T

    Mr.T

    Joined:
    Jan 1, 2011
    Posts:
    546
    I think there is some incomplete information vis a vis this discussion.

    What is the license amount that Xamarin are asking?
    What other terms are Xamarin asking for that would determine the nature of that license?

    I did go through that link and at least from my initial cursory examination I didn't see any fixed license fees terms posted.

    If this is true this leads me to think that this potential license deal that is being talked about here is some kind of custom arrangement that differs depending on the each Xamarin customer. In which case the details of those negotiations would only be known by Unity management.
     
  36. Deleted User

    Deleted User

    Guest

    Ah I hadn't realised, that's a shame. But thanks for the info. Currently got it setup to Visual Studio 2012 for now, multiple panes working and I personally love the dark theme.
    Heh, nice plug ;) Actually that looks very neat! I shall be looking into that, you might have just scored another customer.
     
  37. inafield

    inafield

    Joined:
    Feb 26, 2013
    Posts:
    281
    I think some people partially misunderstand the implications of some of what Aras said. Licensing isn't just about money, it's also about legal terms. When something is licensed as LGPL, which is different from the original terms that UT got from Novell, it means that any changes UT makes to Mono has to be released publicly if they modify an LGPL'd version of Mono.

    This would likely mean the end of any competitive advantage UT has. Basically it could mean giving away their secret sauce. LGPL is one of those licenses that if you don't treat it carefully, it will infect the rest of your code and result in you having to make EVERYTHING opensource. UT would have difficulty getting funding sources. No funding, no updates, no product. Developers can't live indefinitely on promises and IOU's.

    Those sorts of details aren't really that important because as a business, it's UT's job to manage things like this. They've got some very smart people working at UT and I think they have those details in hand. What we as a community just need to do is communicate needs and importance levels. I believe they are trying to prioritize the most important things first, and when you look at the effort and risk involved in updating something like Mono, they're going to need to hear from us about the benefits in order to win them over to a new version of Mono.

    I could be wrong, but I think I'm pretty close. Lessons from my boring day job and listening to people with more experience than myself... and it's how I've treated my own day job's clients when they want a new feature or something updated.
     
    Last edited: Aug 31, 2013
  38. Mr.T

    Mr.T

    Joined:
    Jan 1, 2011
    Posts:
    546
    I don't dispute any of that.
    I was just trying to point out that no one here knows exactly why the Unity and Mono Licensing deal isn't happening because those discussions are confidential and not in the public domain.
     
  39. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    They already do that, though.

    Unity's "secret sauce" isn't modifications they've made to Mono, it's their overall approach to development, decisions they make about design and priorities, their business relationships, the people they've brought together, etc.
     
    Last edited: Aug 31, 2013
  40. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    862
    There are other reasons to upgrade mono then just the GC. Some libraries need newer then .net 2.0 like Math.NET Numerics. Also await and new language features.
     
  41. mokko6

    mokko6

    Joined:
    Nov 21, 2012
    Posts:
    88
    Bypassing the GC altogether would be preferable in many scenarios.

    It's an extremely unpopular idea around here, but there are simply many things that Unity cannot do and areas it cannot be used in primarily because of the garbage collection occuring.

    A Unity C++ API was floated around the time Apple was contemplating a non C/C++/Objective-C code ban on iOS, but was ultimately dropped as it was discovered that Apple's real objective was to keep only Flash off the iPhone/iPad.
     
  42. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    It's my understanding that UT are already taking the most logical course of action and exploring options other than new licensing by :-

    a) Trying to improve the current GC by allowing devs to exert more control by capping it's per frame overhead - being slow isn't an issue if you can spread that workload over multiple frames, especially at slower times during gameplay when you have more CPU time available. The issue is that it's slow and freezes all threads until it completes, causing the frame rate cliff.

    b) Removing unnecessary allocations from the scripting API. This is the last piece in the allocation jigsaw as we can front load allocations in our own code and that of third party assets ( which many of the leading authors have already done ) and use pooling during gameplay.

    c) Exploring options other than Mono ( my original thought was a closer alliance with MS, but given .Net is PC only that seems unlikely ) - if I was to guess I think they're stuck with Mono 2.6.

    Based on the above, and echoing hippocoder, I'd rather they pursue a) and b) and save the licensing cash to fund more engineers to improve the core tech.
     
    Last edited: Sep 2, 2013
  43. Smooth-P

    Smooth-P

    Joined:
    Sep 15, 2012
    Posts:
    214
    Updating mono, which would include a non-alpha quality GC as well as other productivity boosting language features and classes, would mean higher productivity and thus cost reduction for every Unity user.

    Conversely, not updating mono means increased development costs for everyone using Unity. I'd rather put all the time and effort I currently spend on allocation avoidance towards actually making my product better.
     
  44. keithsoulasa

    keithsoulasa

    Joined:
    Feb 15, 2012
    Posts:
    2,126
    Will this fix the gkt bug I'm having on windows , luckliy I have visual studio on mu PC , but this makes writing js pretty hard
     
  45. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    A newer Mono would probably be handy indeed, but I'm still unconvinced that a better GC would be a significant benefit. Of all of the many wide and varied projects I've done with Unity, not once have I ever sat back and thought "crud, if only there were a better GC I could do this better/faster".

    As Foundry says, giving us API options that allow us to avoid allocations and allowing collections to occur over multiple frames are likely to be more beneficial.
     
    Last edited: Sep 2, 2013
  46. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    A very valid point Smooth P.

    We could however make an educated - albeit speculative - guess as to the decision making process and *probable* outcome.

    Commercial logic dictates business investments contribute to the top line ( revenue generation ), reduce the bottom line ( cost reduction ), or deliver big benefits to existing customers for little cost ( retention ). In the case of new licensing, the latter may not apply because of high cost or undesirable terms.

    For the sake of illustration let's say the new licensing TCO would be $3m. If you were sat on UT's board of directors where would you direct investment? $3m on an intangible hard-to-quantify productivity booster that mostly benefits only top echelon developers ( given the pyramid structure of Unity's user base ), or on new/improved highly visible marketable features that can shift large volumes of pro licenses?

    Other stakeholders that might influence smaller investment decisions are high profile developers and publishers than bring credibility if they use Unity. Blizzard's Hearthstone or Notch's Scrolls being examples. Were they to make special feature requests and you were UT, you'd try to accommodate them assuming the cost/benefit equation worked for you.

    As for the majority of us, our role in this symbiotic relationship is to primarily help UT to identify and prioritize features that will assist retention.
     
    Last edited: Sep 2, 2013
  47. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,788
    If that's really the cost I would sit and do the fastest possible GC for Mono 2.6 for only half that price within a month or two $-)
     
  48. Santtu-S

    Santtu-S

    Joined:
    Jul 9, 2012
    Posts:
    26
    When I juggled between different engines and finally decided to go with Unity (even tho I hated the fact that it indeed uses ancient mono), I made a promise to not fork any money for UT before they update the mono version. I'm voting with my wallet and intent to keep that promise, Unity people can demand receipt if they choose to update mono for proof that I'm keeping my promise...

    I hope people will stop using the GC as the main point for upgrading mono. Sure I'd like that one too, but I think the main point - at least for me - would the new features of C# and the actual possibility to use newer .NET libraries with games (portable class libs anyone?). New GC is a must feature with the new mono that would come as a sweet by-product from the update.

    There have been many different reasons floating around why UT haven't updated their mono version (heard from Unite, Ninja Camp, at bar, read from the starts and so on). Be it the size of the web player, difficulty with the internal api changes in mono, problems maintaining ios/android specific version of the class lib, would-be broken asset script/whatnot when upgrading mono, concurrency/multithreaded aspects of the new .NET and now when the 'cat is on the table', it boils down to the licensing issues - fair in enough.

    Size of the web player I think is not the issue as discussed here in forums (don't have the link to the thread, lazy), internal api hasn't changed that much (presuming that it's mainly the mono embedding side Unity is using, we did that for non game related project on linux internally with 3 developers, I think that is a no-problem for the army of UT coders to refactor the code to use the newer api), issues with mobile specific class libs went out of the window with Xamarin (they support almost the entire .NET base class lib on IOS), the concurrency of the 'new' .NET I think is not an issues (let Unity be single threaded, that doesn't mean extensions should be, there are many multithreaded stuff on asset store today and they work fine) and broken assets? Well if it - like many assets today - targets .NET, there really shouldn't be a problem, there still is the same .NET under there.

    Even if the new Mono license costs a lot (I think the problem with Xamarin is that they want a cut per sale), I still think I would be more psyched with a new mono than a native 2D solution. Why? I'm more programming oriented developer than asset oriented and a current version of the tool set I like to use would be more of a selling point for me than any other "nice to have" feature. It would still be a BIG feature for Unity, not just as flashy as mecanim or substance for example.

    Didn't Delta Engine solve this issue by compiling the actual platform specific stuff on their own servers? You would only need the licenses for those build servers, development still happens with PCs and Macs where LGPL + commercial combination is 'allowed'. Now that You're drumming for Unity Cloud, this would be a possible solution as well.

    I think the Unity is coming to a point where UE was with before design of the UE4. Didn't they decide to ditch Unreal Script for C++ after careful thought that Unreal Script is dated and not really usable for too long? That day for Unity is coming; new .NET engines are popping up with the support of new .NET and making Unity seem really outdated. I think UT should keep Mono as that is just a sweet environment to code with, but please PLEASE update runtime as it is the core of the whole damn thing upon which we all base our entire code base. Or just ditch the whole .NET and make us code with fe. c/c++/lua/whatnot, just make up Your mind with this.

    My 2 cents...

    Update : by .NET I mean the runtime, not the MS one.

    TLDR; just update that damn mono and get my money.
     
    Last edited: Sep 2, 2013
  49. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    862
    Xamarin has done a lot of work on mono. They deserved to get paid. Changing away from mono is impossible for unity for a number of reasons.
    1: .Net does not support all platforms.
    2: .Net is not currently being pushed forward by Microsoft.
    3: Not using Mono or .Net would break everyone’s code.
     
  50. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Great discussion. I learned a lot. Thanks.
    Gigi