Search Unity

Linux Publishing in Unity 4.0

It’s Na’Tosha from Team Penguin Pushers here, and in case you missed the news, Unity 4.0 has been released — with a publishing option for Linux! For those of us who have been working on this port, this time couldn’t be more exciting — this project is very near and dear to our hearts, and we’re thrilled to be able to share our love for Linux with you by helping you to bring games to such an open, exciting platform.

With the debut of the publishing option, it seems like a good time to answer some frequently asked questions . . .

So, does it work?

Yes! Two well-known commercial games have been shipped for Linux and are currently available in the Ubuntu Software Center — our Linux launch title Rochard and tower defense game Cubemen, which is also one of the launch titles for the Steam Linux beta. More and more games (like Splice, one of the titles in the Humble Android Bundle 4) are coming in on a regular basis.

What distributions do you support?

We currently only offer official support for Ubuntu Linux, version 10.10 or later. However, users are happily running games on a very wide range of linux distributions, including Arch Linux, Gentoo, Debian, and others.

What hardware do you support?

We support both 32-bit and 64-bit systems, and even provide an export option for a “Universal” build, which includes everything needed to run out-of-the box on both 32-bit and 64-bit systems. We provide official support for machines with graphics cards and graphics drivers that support hardware acceleration.

What are the caveats?

Aah, yes. You didn’t assume it would all be rainbows and unicorns, now did you? There are a couple of caveats with the initial version:

1) There is no screen selector, so you need to use your own input manager if you want to allow users to set their own keybindings — they won’t get a chance to reset them before launching the game. If you just want to set screensize, see the docs for command-line options to the player to set default screen width/height and fullscreen options

2) Although the player runs in batchmode, it still requires a running X session.

Rest assured, however, these are issues we plan to address in later 4.x releases.

What about the Web Player?

We don’t currently have any plans to ship a web player for Linux, but we encourage you to export your game to Native Client, which Linux users can take full advantage of.

What about the Editor? I want to make my games on Linux!

As a long-time Linux user (I’m writing this post from my desktop running Ubuntu), I can certainly feel your pain. Deciding what to do as a company and as a team is hard. We make our decisions based on a lot of things — what you guys ask us for and how the decision will affect our own sustainability are two of these things. Will we support the editor on Linux? We honestly don’t know. We have no official plans to support the editor on Linux, but of course the future is always unwritten. If the publishing option for Linux turns out to be very successful, who knows what the future holds?

@KRIS, the Unity player does not require hardware acceleration in order to run (we even have some virtual machines in-house without hardware acceleration), so the segmentation fault you get must be related to something else. Reporting a proper bug report with as much information you have about the target environment, and a project that, when built, reproduces the problem, is your best chance of getting the issue looked into.

@Na’Tosha Bards Thanks for your answer. In fact we had installed and running X session there. We connected using VNC and was able to launch X applications like GIMP or even Blender. What we didn’t have was GPU acceleration. Fact that Unity requires X is not a problem, fact that it requires graphic card with 3D acceleration is. Thanks in advance for your support!

@KRIS – Unfortunately the player simply won’t run on a machine without a running X session; this is known and expected behavior. We are planning to implement support for purely headless servers later in the 4.x cycle.

We were trying to run server of our Unity application on Amazon EC2. These machines don’t has direct access to GPU (which is required by Unity), so on Windows only way to make these running is to add -batchmode parametr. Unfortunately on Linux it results in “Aborted (core dumped)” error message.
I am talking about Ubuntu with X session running (we’ve connected through VNC). On PC with same system it works, but we want it on Amazon. Please help. If someone would have any ideas, please mail (kris at krej don net)

great work guys!
I think many people will use it for onine servers for games, I think that X dependency will be removed soon in next release and most cloud based Linux servers will be available to devs.

I will definately take a serious look at unity if the editor is ported to linux (even if that is just making sure it doesn’t crash under wine). In the mean time I have access to engines that do have native linux editor support.

It would be really great to see a base-line set of tools (command line etc) be made open source and even if you just throw them over the wall (i.e. no support or builds) the community where interested could take up the baton for the last mile. Please use the developers who can aid you where needed to fill in any economic uncertainties.

Great news! Would like to try out this Unity3D as it seems nice, won’t install Windows for that though, so I’ll wait and see if the editor will be ported. ;) Now we will hopefully see a lot more Unity3D games in the USC in the future.

@Nathan, It’s intersting to hear your clever solution to allow you to do most of your work in Linux. As for why no one asked during our Unite talk about an Editor for Linux, I think it is because most people came to the hands-on labs and asked us directly ;-)

@GFX47, there are sometimes some performance differences between the players for Windows and Linux, but they depend on the game, the graphics card, and version of drivers in use. Most of these differences we have seen in testing are actually a difference between driver support for DirectX vs. OpenGL rendering for a particular card/driver combination. Hardware and driver support are much bigger factors in terms of performance than OS will be. It’s important to note, however, that, if any performance difference exists at all for a particular game on a specific target machine, it is generally minimal — in some cases a release build of the 64-bit Linux player actually outperforms builds for other operating systems.

2) I was wondering why nobody asked about a Linux Editor at Unite during your guys’ session, that would have been my first question, haha

3) I’ve made an external assembly loader in my Unity build so that I can write my code almost 100% in Ubuntu, run the built app and get all my code updates… I jump into Unity only when I need to rebuild because I updated some assets such as textures, GUISkin, shaders, materials, etc… And I do that in a Virtual machine, of course :) Maybe I’ll write an article so that other coders (probably Indie) can spend all their time in Linux too

@GFX47, you can host a server-based game on Linux fine, but as mentioned in the article, even batchmode still requires a running X session right now, so you can’t host on a “purely” headless server. We plan to implement support for purely headless servers later in the 4.X cycle.