Live data from Hacker News

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

natoshabard.com

21–30 of 114 posts

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

#21

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

[deleted]

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

#22

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

Case insensitivity is a nice way of phrasing "there are these arbitrary mappings between two sets of character codes which are meaningful only to the human being looking at the screen." This only works for ASCII and is complete madness as soon as you consider that any symbol you support for input anywhere in the world can and probably will be used by someone to name their files (try explaining why they can't to an irate user). Really, of the hundreds of thousands of unique symbols that human beings use an arbitrary subset of 26 of them have been deemed to be identical when it comes to naming things with symbols. I would say more but it would come out even worse.

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

#23

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

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

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

#24
So this is framed as a "things we should have done back then", but I think that the part about case-sensitive filenames show why that wouldn't work:

"Of course we tried to be smart in the early days, but if you don’t set up a way to actually verify that what you’re doing works on a case-sensitive file system, then it will never fail that some well-intentioned programmer throws a toLower() in somewhere and ruins the party."

Because yeah, if nobody's running or testing a code path, it will absolutely decay. You can't write anticipatory code to work for hypothetical future requirements that you don't necessarily understand and are never testing. 

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

#25
post #13

Earlier quoted context omitted.

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 co…

That 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 (…

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

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

#26
Wow, I wouldn't have thought that folks would be sloppy about case, but I guess it makes sense if all one's used to is a case-insensitive system.

> Same policy as with our runtime; in order to keep our own sanity, we will officially support Ubuntu Linux.

> Installer will (most likely – it’s one of the things we didn’t do yet) just be a .deb package.

I really wish folks would support Debian first, and let Ubuntu support flow from that.

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

#27
post #13

Earlier quoted context omitted.

That 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 (…

> 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 U…

It means: Xamarin offered a commercial license to Unity for $X under Y terms. We don't know what X and Y are, since this was not a public negotiation. X and Y could be reasonable, or they could be totally unacceptable. They could be offered in good faith, or they could not.

We just don't know the answer, and you're assuming the party offering X and Y is reasonable. But it might not be. We don't know.

edit to your edit: if you heard people on the internet being wrong in some way, that doesn't justify you being wrong in the opposite way.

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

#28

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 ro…

I 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

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

#29
post #12

Earlier quoted context omitted.

Because native GUI on Windows and OSX is better for those users and already exists?

I'm new to GUI programming and foreign to both Windows and OSX so please forgive my ignorance. In what way are the native GUIs better? Are they faster/more responsive or do they look better? Which would be more work over the e.g. 1,2 and 5 year period maintaining three guis or one? (Or is QT not quite cross platform so one ends up maintaining three inferior versions anyway?)

Qt is cross platform. The difference is that there are UI rendering (say, scaling) behaviors the native toolchains use Qt does not. It comes as close as possible within its widget layout engine it can get away with to native on every platform it supports (which when you consider thats everything from Android to Windows is a feat) but is never a perfect reproduction. Its not something that is going to be "work" for you - you just aren't going to fix it. You get a portable codebase without any of the if WIN else OSX soup, but the experience will never be perfectly native. Though nowadays I don't even know what native Windows means anymore, is it that ribbon crap, or the metro thing? Because Qt apps just use oldschool Windows Forms style menubars / buttons / etc.

You can just go test it yourself, go run VLC and see how "native" it feels. Its using Qt everywhere except Android.

But if you want to develop cross platform native looking software... Qt is absolutely it. Only option. And it gets better each release. Otherwise you are going the route of the Unity guys, rewriting your program for every single system.

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

#30
post #23

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

.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 t…

Seriously?

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

Post reply on HN