5 ms·
With .NET Core, is there any reason to not just drop IL2CPP completely? (The whole thing only existed in the first place because they are stuck on a completely
by justthistime_ 11y ago
With .NET Core, is there any reason to not just drop IL2CPP completely?
(The whole thing only existed in the first place because they are stuck on a completely outdated Mono version, due to Xamarin changing the license of newer Mono versions trying to extract money from Unity.)
- reitzensteinm 11y agoI was hoping for a switch to Microsoft's .Net, which would enable use of Arcadia (Clojure in Unity3D) for serious/big tasks. Right now, the GC performance of Unity is horrible relative to what you'd get on the JVM and there's no reason to believe IL2CPP is going to be any better. When you don't have a generational collector, you have to seriously constrain your allocations, crimping your immutable style. The Unity roadmap suggests they're going ahead with a Mono upgrade (I believe they dynamically link every platform sans iOS): http://unity3d.com/unity/roadmap/ http://unity3d.com/unity/roadmap/ So it's probably not on the cards (no pun intended). However, the Mono upgrade will bring a generational GC to the platforms on which it's usable (which will fall somewhere on the spectrum of Editor, PC, !iOS).
- jebblue 11y agoI helped build a web service product that ran on Mono in the early 2000's back when I was still also a Windows dev but with the significant improvements over the mid to latter 2000's to the speed and stability of the JVM I dare say (and consider Mojang's success) the JVM would be a better choice for future game engines than Mono. With so much work having gone into using Mono I doubt it would be changed to the JVM but also Microsoft to their credit is open sourcing some/a lot? of the .NET runtime to open platforms like Linux. The only problem I have with Mono today is Miguel's decision to completely disrespect and disregard the Linux Desktop: http://tirania.org/blog/archive/2012/Aug-29.html http://tirania.org/blog/archive/2012/Aug-29.html
- GFK_of_xmaspast 11y agoThat blog post is correct tho?
- carussell 11y agoCan we kill off the Mono libel already? Mono changed the license so that it could be used in Unity to begin with. Mono was available under a copyleft license. To everyone. Including Unity. Unity couldn't/wouldn't accept it under those terms, so folks at now-Xamarin said, "We'll offer it to you under a commercial license if you won't take the copyleft offering." That's standard fare. Unity said, "Okay, deal." Mono continued to improve over the years. Unity was interested in those improvements. Mono said, "Okay. You can get those under a commercial license, too." Unity balked. So what we're really talking about is that Unity wants the improvements that have been made to Mono, but doesn't want to pay for them. Get this: They're still free at any point to accept Mono under the copyleft license that's available to literally everyone, but they won't accept it under any terms other than their own. That's it.
- azakai 11y agoThat seems like a very unfair description of the situation. Do you know the specific licensing terms that Xamarin offered to Unity? Probably none of us here do. Given that, why would you assume Unity was the unreasonable party, and not Xamarin? Regarding the copyleft license, while it is an option for everyone in general, it isn't an option for Unity, which needs to ship on platforms that do not allow such licenses (iOS, game consoles). Products like Unity will always need a commercial license as long as such platforms exist.
- carussell 11y ago> Given that, why would you assume Unity was the unreasonable party, and not Xamarin? I don't know what this means. What we know of the situation is that Unity doesn't want to pay a commercial license for Mono. This is even the way that pro-Unity/anti-Mono folks frame the situation. What do you have in mind here? > Regarding the copyleft license, while it is an option for everyone in general, it isn't an option for Unity That's all well and good, but it doesn't have much to with any obligations Mono has. Those are completely synthetic restrictions that the platform vendors are placing on the people targeting them. How does Mono get the blame for Apple and Nintendo's choices here? Why do Apple and Nintendo get treated as bedrock? Even so, that's bedrock that Unity knows they're working with. It's their choice to target those platforms. EDIT: > That seems like a very unfair description of the situation. Unfair. Every reference to the Unity/Mono relationhip I've ever come across has been from someone who heard Unity's creative retelling of the conflict and parroted it exactly, down to overtly identifying Mono as the bad guy.
- deleted 11y ago[deleted]
- azakai 11y ago.NET's cross-platform support is still a work in progress. In particular, it doesn't have a web port, which is crucial for Unity. il2cpp is an AOT compiler to C++, which makes it trivially portable to practically everywhere, including the web, and unlike a VM there is no need to write a JIT for a new CPU, no need to port a runtime to a new OS, etc. AOT-compiled code can also be very fast. I'm aware .NET has options there too, but il2cpp is literally focused on doing just that, and doing it very well.
- justthistime_ 11y agoSeriously? The same people who couldn't maintain their fork of Unity are now writing their own home-grown runtime, complete with their own garbage collector. I don't see a chance of this working out "well" for any sane or bizarre notion of "well".
- natosha_bard 11y agoil2cpp has advantages other than licensing (Mono is indeed open-source, but it is LGPL so it can only be used on platforms that comply with the LGPL; Unity runs on various non-LGPL platforms). il2cpp combines ease-of-use (C#) for Unity developers with native (C++) performance. What's not to love about that? :-P
- justthistime_ 11y agoSeriously? The same people who couldn't maintain their fork of Unity are now writing their own home-grown runtime, complete with their own garbage collector. I don't see a chance of this working out "well" for any sane or bizarre notion of "well".