First off, it’s been a long while since I posted. I’ve been, as I suspect the youths might say, hella busy. Including of course lots of new game stuff, which I’ll blog about soon. But in the wake of some huge engine announcements at GDC ’14, I thought I’d sit down and have a good old reckon.
If it wasn’t clear, my game currently uses Unity and I’m already very fond of it. I like the component paradigm, I like the editor-centric development, and I’ve surprised myself by really liking C#.
Perhaps more importantly – I’m a big fan of Unity the company, and I want them to succeed. I have numerous bones to pick with them but I love what Unity has done to indie games. It’s been a driving force in the democratisation of game development, and that is in every way a good thing. I like their business model – having a solid free version which allows commercial usage is fantastic both for devs and Unity, and I think the Pro version is pretty reasonably priced. So – this post is born of love.
Right now Unity could be in serious trouble. On Tuesday 18th, Unity announced Unity 5. It answers a few outstanding issues and introduces a raft of new shiny. Release date TBC, but optimistically, this summer. Pre-orders are live, and you get 4.x Pro included in the meantime. Nice.
On the 19th, Epic Games shat all over the Unity announcement. Arguably the biggest engine in the world, Unreal Engine, got an upgrade to version 4, and came down in price from ~$500K… to $19 per month plus a 5% gross revenue cut. Nineteen dollars per month. Then I read on. That $19 includes the entire source code. I genuinely thought it was a hoax.
Then, on the 20th, Crytek joined the brawl and tried their best to out-ridiculous Epic by announcing CryEngine3 was now $10 per month per seat with no revenue share. Honestly, I was still too stunned by Epic’s move for this to have the intended effect.
So, I titled this post Engine Fight. But I’m not actually too interested in all the new features. Here’s where I take a long hard look at what I like about Unity, and in contrast, what it makes me put up with. Those little niggles that aren’t so little when you suddenly have cheaper, arguably more professional options shoved in your face, threateningly grunting and gesticulating at you with imaginary pistols.
I also put CryEngine in the title, but honestly I don’t really care about CryEngine. It’s challenging to work with (so I hear) and I suspect the vast majority of indies will go with UE4 almost by default. The price difference for small indie teams is minor, and lots of people might think source code access will mean they can solve any problem that comes up. It’s an interesting piece in the HOLY SHIT WHAT JUST HAPPENED puzzle, and indicative of the way the industry is shifting, but if UE4 hadn’t done its thing I still wouldn’t be considering using CE.
The major, major issue for me is what I would call solidity. Unity is a nice engine. It’s got nice things. It’s easy to learn. But christ on a bike does it have some bizarre holes and oversights. Let me count the ways.
- Networking is half-baked.
- PhysX and physics in general is half-baked.
- The prefab system is half-baked.
- Sound is half-baked.
- Input management is half-baked.
- Level management is half-baked.
- The GUI is half-baked, and then half-baked again, in a laws-of-cooking breaking multiplicative baking process, leaving it quarter-baked.
All of these things and many more look great on the surface and then… just trail off once you dig a bit deeper. In so many cases, it feels like Unity threw in a cool new feature and got bored before actually finishing it. An oft-levelled criticism in the community.
And for me that’s their fundamental problem. They’ve been after the big boys, trying to get new users by chasing feature-parity. But it can’t rival UE or CE for bells and whistles. Unity may be about to start haemorrhaging their core users, because UE4 and CE3 offer professionalism and attention to detail. And, suddenly, a lower price than the engine which revolutionised indie development.
In so many cases, it feels like Unity threw in a cool new feature and got bored before actually finishing it
MY SELF-IMPORTANT, DEFINITELY CORRECT OPINION
Here’s what I hope will happen. This move will push Unity as a company to get more focused and less scatty. They’ll realise their strength is in accessibility, and that if they double down on completing all their half-baked features, update Mono and so on, they will hopefully have a significant and loyal niche amongst those who know that the best tools for the job are the ones you can actually use, not the ones that promise AAA quality – if only you had a AAA-sized dev team. If Unity was more solid and dependable, with no major gotchas, I honestly wouldn’t be looking at UE4 twice.
I’d be lying if I said cost wasn’t a concern. It’s not the big one, personally – the point is UE4 is available at all, not that it’s cheaper. But the Unity subscription model can’t survive this. $75 per month per seat without all the iOS, android addons etc is a farce compared to the new competition.
Unity will hopefully have a loyal niche amongst those who know that the best tools for the job are the ones you can actually use, not the ones that promise AAA quality – if only you had a AAA-sized dev team
Here’s what I fear might happen. Unity could go completely the opposite way, panic, and scramble harder for feature parity. I fear that for two reasons. Firstly, it means the engine I use and like doesn’t get the care it deserves and needs. Secondly, I think it would mean that Unity won’t exist within about 5 years, and that would be a sad end for such an important company.
In conclusion – will I be switching my game to UE4? No. I like Unity, I’ve got enough work invested that it doesn’t make sense, and I think I’ve got the experience and skill to work around the holes.
But if Unity don’t take this seriously, I might well use UE4 for my next game, and I think a lot of people are pondering the same thing.
UPDATE: A SUGGESTION
Having looked at a lot of ideas and participated in some discussions, I may as well give my thoughts on a possible solution. I have no illusions that I know what I’m talking about or that this suggestion is worth anything. Anyway.
Firstly, a lot of the ideas I’ve seen people throw around are very complex. At a time when Unity needs to really focus on who its audience is, that’s going to cause confusion and turn people off.
Secondly, the problem is that UE4 is offering loads for very little. Compare the full feature set of UE4 for effectively $19 one off (and another $19 any time you want to update to the latest version), to the limited feature set of Unity Free. $19 is pretty attractive, no?
So I’d lean towards removing the distinction between Unity Free and Pro. Just have one version with all functionality, and all platforms. Make it free for users with less than, say, $10k revenue. After that, they need a subscription or flat payment similar to the existing Pro license.
- No up-front cost means no risk for small devs and hobbyists.
- No revenue share means no risk for large devs, or small devs who might hit it big.
- Subscription option means small devs who manage to make $10k aren’t suddenly hit with a $4500 bill.
- Full feature set plus Unity’s ease of use makes it very attractive compared to UE4.
- Simplicity means people don’t have to worry about what they get, what they don’t, hidden costs etc.
Additionally it would be hugely beneficial to both Unity and devs to open source code to Pro licensees. Middleware licenses may hamper this, but that’s nothing Unity can’t negotiate with their partners.