Live data from Hacker News

Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

natoshabard.com

1–10 of 114 posts

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#3
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.)

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#4
I worked on the Linux version of a large program and after some years of it I mostly concluded that it's hard to know in advance which things work everywhere and which won't, unless you ensure your programmers are familiar with the quirks of all the platforms you intend to run on (which isn't really practical).

(I was working on the Windows -> Linux path, but for some cross-OS examples that aren't that I was surprised to learn that while toupper follows your locale on Linux, OS X uses the "C" locale by default. Or that shm_open has a tiny size limit on OS X.)

I think the best you can do is (1) write a lot of tests; (2) whenever you add an OS-specific snippet, use the same ifdef string so it's easy to grep for.

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#7

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.)

I 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/

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).

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#8

> it’s the place where case sensitivity problems really show up Who made the decision to have case insensitive file systems? If I had a time machine they would be high on the list of people to visit and give a stern talking to.

People always bring up the point that it's supposed to be more user-friendly, but all of those concerns are really better addressed in the UI rather than in the filesystem layer.

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#9

> it’s the place where case sensitivity problems really show up Who made the decision to have case insensitive file systems? If I had a time machine they would be high on the list of people to visit and give a stern talking to.

I don't think the problem is having case insensitive file systems, the problem is having both on different platforms. A similar problem as with different endians. If everything were case insensitive, it wouldn't cause issues.

While as a programmer, I prefer the level of precision case sensitivity provides, I'm hard pressed to make the case that it is better for an average computer user.

Re: Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

#10

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.)

Can 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.

Post reply on HN