The State of Unity on Linux
Hello lovely people!
Last week at Unite Europe, the Unity roadmap was made public, and it included a highly-voted feature on our feedback site: a Linux port of the Unity editor. This past weekend I wrote a post on my personal blog about my own thoughts about our experience porting the Unity editor to Linux. It turned out to be a pretty popular post, and it was amazing to see so many positive comments and reaction from our community, so we thought it would be nice to do something a bit more ‘official’ on the company blog and explain what you’ll be able to expect from our Linux port.
Unity was originally written for Mac OS X, and the Windows port came along in 2009 with the release of Unity 2.5. Porting Unity from Mac to Windows was already a lot of work, and as you can imagine, Unity has grown considerably in size and complexity since 2009. So porting to a third platform has been a lot of (very fun) work and taken a lot of time.
There are some of us who have been working on the Linux port of the editor since the beginning (which started in 2011 at an early ‘Ninja Camp’, according to our version control history), but several different people at Unity have helped work on one aspect or another along the way (lately it has been Levi spending the most time on the project, with myself and others, helping whenever/however possible, so buy him a beer if you see him). Like I mentioned in my personal blog post, a lot of focus during this time has been on dealing with case-sensitivity issues (NTFS is case-insensitive, as is HFS+ by default; Unity doesn’t work on a case-sensitive system — sorry about that!) and native window management / input handling. But we’re getting there!
What We Expect it Will Do
- Run on 64-bit Linux (just like with our player, the ‘official’ support will be for Ubuntu due to its market share, and just like with our player, it should run on most modern Linux distributions); the earliest version of Ubuntu supported will be 12.04 (which is what our build/test farm is running).
- Export to all of the same platforms as the Mac OS X editor (except for iOS; maybe someday we’ll enable exporting to iOS the same way we do from the Windows editor, but not initially)
- Import all asset types not dependent on non-portable 3rd-party middleware
- Support global illumination, occlusion culling, and all other systems reliant on portable 3rd-party middleware
- It will require modern, vendor-provided graphics drivers
- Some of the model importers that rely on external applications (i.e, 3ds Max and SketchUp) won’t work; the workaround is to export to FBX instead
The Plan Right Now: An Experimental Build
The Linux port of Unity currently lives in an internally ‘forked’ repo. Our plan is currently to prepare an early experimental build for you from this fork (that is kept more or less in sync with Unity’s mainline development branch) that you will be able to try out. Based on how that experiment goes, we’ll figure out if it’s something we can sustain as an official port alongside our Mac and Windows editors (the Linux runtime support was also released as a preview initially, due to concerns about support and the fragmentation of Linux distributions, and the support burden turned out to be very low, despite a very significant percentage of Linux games on Steam being made with Unity, so I’m hopeful; we’ll have to see how it goes).
It’s been a really long time and I couldn’t be more excited. Levi, myself, and all of the other people who have helped with the Linux port over the years (the list is pretty long!) can’t wait to get it into your hands.
P.S. Here are some more teaser screenshots:
P.P.S – We’re really interested in hearing how you will use the Linux Editor — what platforms you will be exporting to, whether you’re interested specifically in doing regular development on Linux or mostly interested in automated build pipelines, etc.
Much love from Unity,