Unity 4 Adds Linux Support
dartttt writes "After more than 14,000 votes by Linux users and efforts by Brian Fargo, Unity has added Linux support to their popular 3D game engine. Starting with Unity 4.0, Linux will be supported as a publishing platform allowing Unity games to be played natively on Linux. Only standalone desktop games will be supported initially. From the article: 'Unity Technologies, maker of a widely used video-game engine, today announced that its fourth-generation product will introduce new animation technology and extend its support for Adobe Systems' Flash Player, Linux, and Microsoft's DirectX 11.'"
Um.... do you have any concept of what that would cost? You'd have to be offering a huge pile of money. Right now they can commercially licence their engine for all sorts of projects. Even if those projects don't make money Unity can.
Have a look at their people page, they have probably 110 employees. That's probably 12-13 million a year in revenue alone. Are you going to try and get a kickstarter for 100 million dollars to effectively shut them down, or to guarantee them income to keep working indefinitely?
Don't get me wrong, there need to be more open source game tools (no matter how many you point me to there can always be more). As someone on the teaching side of things in trying to train game developers it's a real problem to know what tools you want to use, because the emphasis shouldn't be on the tools, but fighting with tools puts the emphasis on them. But Unity is pretty good about giving away a free trial, and being a good example of the sort of experience you'll have in industry, with some stuff opened up to you. That's about all we can hope for. Asking for a commercial engine that costs millions of dollars to make and maintain to just give up that kind of money is a pipe dream at best.
Now, trying to get them to pull an id software and release old versions of the engine as open source (say release 2.0 or 3.0 when 4.0 goes live) might be a more realistic goal and would still be awesome.
And by the way, you can negotiate your way into source code for Unity3D. I've never worked with anyone that thought it important enough to try until today, though. I literally advised a company this morning that Unity is probably their best bet for an engine given what they want to do, and they were wondering about source licences, which is the only reason I know that at all. Given that, it wouldn't be a huge shock to see old versions end up open sourced, if nothing else because you can't keep something bottled up indefinitely.
It's not the kernel, it's the libraries. That's really all a game engine does - it takes all the libraries and presents a simple interface to them, while integrating the asset tools (ie. model file formats, etc.)
On Windows, almost everything you need is in DirectX. Same for the XBox - it's pretty much the same library. Graphics, audio, networking, input, it's all there except a basic AI library and physics simulation.
On OS X, there's a bunch of less integrated APIs. OpenGL for the graphics, some proprietary library for input, and so on. iOS uses mostly the same libraries.
Android also uses OpenGL, but has it's own, different libraries for pretty much everything else. The same is true for the non-Microsoft consoles - either OpenGL or the OpenGL ES, and custom proprietary crap for everything else.
Linux, again, uses OpenGL. But that's about it as far as "common code". Want to tell if Mouse3 has been pressed? Need new code. Want to play a sound? New code.
Now, it's not quite as bad as it seems - most of the engine is, in fact, the "turn basic libraries into something that does all the work for you", and the renderer *is* the biggest library bit, but it's still quite a bit of work to go from Android to Linux.
Actually, Unity's surface shaders are more or less 3d-system-agnostic. Some features will of course degrade when the underlying system doesn't support them, and some, although supported, will be too intense for the hardware (e.g. fog on mobiles).
It is of course possible to create a platform-dependent game: in fact, it's as easy as File.ReadAllText("C:/Windows/blah").
However, the majority of real content that has been tried has run out of the box with no major issues.
As response to the above I can confirm that Unity is very much used because of the development environment, ease of use for 3D artists, and an incredibly simple tool chain that lets you target many platforms with one codebase. Art assets can be shared between platforms as well, or specified per platform.
For these reasons, Unity is used a lot at small studios, particularly where gameplay is the main focus and the technology doesn't have to be cutting edge. Systems like Unreal and CryEngine are more powerful from a technology and graphics standpoint, but are not nearly as easy to use for small teams of developers.
In particular, Unity's documentation, specifically its scripting documentation, is outstanding. The documentation for other systems is extremely rough by comparison.
I have no affiliation with Unity3D, other than the fact that I've used the software in the past and like it. I know the facts I mention above because I've done consulting and training for many local game studios, many of which have used or are using Unity3D. Also, hundreds of my students currently work in the game industry (many in Vancouver BC) so I often hear about what's going on in local studios.