D Code, Software Dev, Inflammatory Rants and More!

Unity3D has quickly become one of the most significant game engines and development tools in the world, fueled in no small part by being insanely cross-platform. But somewhat contradictory to their belief in cross-platform, their actual developer toolset only works on Windows and Mac, with what's become a rather noteworthy disinterest in supporting Linux-based developers. This, despite the fact that the #1 voted feature request on their own feature request board, by a wide margin, has long been a Linux-based editor. Naturally, this has been quite controversial with many predictable arguments on both sides.

As a side note, I can personally attest that Wine is not a suitable long-term solution here. I do use Unity under Wine, and I can get work done with it, but there are definite problems (which I'll have to save for a separate post).

With that background out of the way, the rest of this post is mainly in response to this:

"Now, let's be honest, of those 9,175 votes, how many of them would actually be developers who would buy [Unity3D Pro] and develop on Linux? Answer: probably far less than the actual number of votes on it."- liamdawe @ Gaming on Linux:Unity Confirms They Have No Plans For A Linux Editor

Let's do a little basic gradeschool arithmetic:

In the time since that original post, the votes have increased to 16535.

Up to 10 votes are allowed per user, so let's be maximally conservative and pretend that everyone voting on it used all 10 votes (I didn't, but let's pretend I did). So that's 1653 people.

As for the number of people who would actually buy the Pro version: First, let's make the questionable assumption that the people who have already voted are the only ones who would actually buy it. Second, would you say 10% qualifies as "far less" than the number of people? Hmm, yea, I'd say 10% qualifies as "far less" than 100%. So that makes 165 buyers of Pro.

Let's completely ignore the fact that using Pro for two of the most popular platforms (Android and iOS) carries an additional per platform cost equal to that of the basic "Pro" itself.

There are two pricing options: Flat $1500 until the next major release (at which point an upgrade free is required), or monthly fees that total $1800 every two years ($75 * 24) which is roughly in the general ballpark of the lifespan of each major release. So let's go with the lesser: $1500, and completely ignore upgrade frees.

Unity also profits off their Asset store, even from non-Pro users, and soon they will also offer other value-extras to non-Pro users (hosted build servers and analytic tools). Let's completely ignore all of that.

That makes an estimated minimum baseline of 165 * $1500 == $247,500. Nearly a quarter million dollars US just for a conservative baseline estimate on Linux developers alone. (Don't forget, software developers are much more likely to be Linux users than average computer users are, it is arguably a programmer's OS after all.)

Oh, but wait, there's costs:

Unity Editor is built primarily on what? Unity Engine and Mono. Both of those already run on Linux, with full support. And most of Unity's C++ code (yes, it has C++ code) is in the engine (again, already fully supported on Linux), not the editor. And Unity Editor already runs on one Posix system: Mac.

Additionally, what most people who have never done cross platform development (I have) don't realize is that unless you're doing things really, really, REALLY badly, the vast majority of even a natively compiled (let alone CLR/Mono) program is completely OS-independent.

There's also the well-known developer's rule of "0, 1, infinity" (if you don't know it, look it up). Applied to cross-platform development, it means that adding your first extra platform (already done - Mac) costs far more than adding your second, third or fourth extra platform. (Ok, yes, I'm aware that "0, 1, infinity" technically refers more to not imposing arbitrary hard numeric limits, but the practical reasons behind that are rooted in exactly the same principle I'm applying here.)

All that combines to mean that the real costs (as opposed to imaginary scenarios by peanut gallery members who know exactly nothing about real-world cross-platform development) of creating and supporting a Linux editor is minimal.

There is money on the table, and Unity is throwing it away. They are giving that money, userbase and mindshare to their #1 competitor: Epic, a company who has historically been somewhat MS-centric and yet has already become vastly more friendly to Linux developers than Unity.

Is Epic really their prime competitor? I had a feeling they have a hard focus on AAA scale developers and Unity has traditionally been favored by indie. Which is even more ironical as Linux game market seem to be mostly dominated by indies of all sorts.

It's possible I could be wrong about them being "prime" competitors, and yes, their respective engines do both *originate* from different sides of the game world (Unity from the Indie side, and Unreal from the AAA side). But, they're now both actively pursuing each other's market, closing the feature gap and have definitely *become* big competitors. Unity3D and UE4 actually both resemble each other quite a bit now, and IMO it's looking like that gap is only going to shrink further.

If you follow along with Unity's blog and feature sets, it's clear they've been putting major, major efforts into AAA-level features and capabilities, and their marketing has pretty much been saying straight out "AAA feature X, AAA feature Y, feature Z for big studios, etc". They're definitely trying to attract the big dogs in the industry now, and I suspect that's been their plan all along: Start simple, build up respect and experience with a strong indie userbase, then leverage that success to make inroads into the big money studios who have much higher technical demands and more conservative decision-makers.

Conversely, while Unreal Engine 3 was very clearly AAA-oriented (big price tag, and from what I gather, not very easy to work with), most of the technical *and* business changes in this Unreal Engine 4 era have firmly placed UE in a territory that overlaps Unity3D: Some of Epic's big focuses with UE4 have been ease-of-use, wider platform support, and reduced pricing for lower budget developers. Ie, greatly reduced barrier to entry. In fact, Epic has made no secret that they're going after the indie market, they pretty much say it straight out. But I think it was inevitable anyway: It would've been very difficult for them not to see what's been happening with indie, and recognize the wisdom of getting onboard.

In fact, I was actually planning to make another post specifically related to the Unity/Unreal competition.