I'm a PC game developer that's been using Unity for 2.5 years, and it was pretty clear after getting involved in the ecosystem that Unity Technologies was just resting on its laurels, and making decisions primarily on marketing to sell even more copies. Just a few pain points:<p>1) Mono hasn't been updated for <i>five years</i> due to licensing issues on iOS. GC pauses with a complex game can be hundreds of milliseconds, being stop the world non generational.<p>2) A similar story of PhysX, though I can't pin down the exact date, 2010 at the latest<p>3) They added a new particle system with flashy features, but <i>no scripting access</i>. I don't even...<p>4) Unity 4 added next to nothing useful (DX11 naturally on Windows only, Mechanim which was broken etc), though it was necessary to purchase to keep getting bug fixes<p>5) No 64 bit editor is very painful (I have 32gb of ram laying around doing nothing)<p>6) The project is riddled with bugs, being added and removed each release, though probably <i>much less</i> than hacky in house solutions which are the norm in the game industry<p>7) Nasty serialization formats make programatically changing the hundreds of meta files in a project next to impossible<p>However, I'm getting the impression that the new Unreal licensing scheme has been a real kick in the ass for UT, and they're taking the competition seriously. Nearly every major problem I've had with Unity seems to be being worked on now, for Unity 5, after a long period of atrophy.<p>I fully expected Unity to die a slow death, and that it was just a question of when to switch to something else (there is not much high quality competition), but now I'm not so sure. If they pull off their roadmap, it'll finally be an engine I will be happy to use and recommend. Right now my feeling is: it does the job, mostly.<p>Note that the experience making small puzzle games for iOS etc may be very different, I've done that kind of thing but not with Unity.
My teammate and I started moonlighting on the first game for our studio about 8 months ago, right before Epic announced the current $19.95/seat pricing model. We decided to go with Unity purely because I already owned a Pro license, that we could use to make final beta builds and be responsible for the advanced visual effects that needed Pro. Additionally I already had lots of experience with Unity, and nearly none with UE.<p>We are only a two-person team, making a fairly limited-scope 3D puzzle racer game. Thus we didn't hit the major issues with collaboration bugs (we did a few times) or platform switching (we're focusing only on PC). We were able to build our MVP in less than 2 weeks of hacking, and it felt amazing. The asset store was also an amazing resource to circumvent the artist issues.<p>However, it's been nearly a year since then, and polishing the game to the standards we'd like has been presenting larger and larger challenges -- performance, obscure shader behaviour, limited editor extensibility (it's good, but not quite good enough), and reading this post, it looks like at this stage of development Unreal would have served us much much better.<p>If we can get our studio rolling and increase our team size to actually incorporate dedicated artists, we'll have to seriously consider switching to UE4 for our next game.<p>Jeff's write-up sheds insight that few people can have, given not everyone has spent the time to get well-enough acquainted with both engines in the team setting to know their professional tradeoffs as well, and I appreciate it a lot.
As someone who tried to develop a Unity game on a big team, it was hell. The collaboration is horrible, there are conflicts all the time for no reason. Simply getting the source, running the game and updating would produce conflicts. We also had to buy the cache licenses to make it somewhat workable.<p>But the worst was the support. It was worthless. Anytime we would open a ticket, they would simply google and return us links to forum threads that didn't address our issue. When we asked about missing important features or bug fixes, they told us to buy something on the asset store.
I recently started getting to know Unity3d and it was extremely easy and quick to learn. One annoying discovery was that their variant of JavaScript is not real JavaScript, it's "UnityScript". It took me quite some time to convert a simple script that I had written for node.js to UnityScript.<p>I need the pro version of Unity3d to generate iOS, Android or VR games for the Oculus Rift.
For someone who is just doing a bit of indie development, that's too expensive.<p>So I checked out UE4 also. You can subscribe for a month for $19 and then continue using the version that was the current version during your one month of subscription. If you need updates later on, subscribe for another month.<p>UE4 is harder to learn but looks a lot better than Unity OOTB.<p>Anyway, I hope Unity will be competitive again regarding pricing with the imminent announcement of their 5.0 release.
I've been bitten before by some of the problems regarding Unity and collaboration with source control. Everyone wants to test out their changes on the same scene, but it just blows up when you go to merge... even if you use a dumb merge strategy like <i>ours</i> or <i>theirs</i> (as a Git user) it seems to break things. Unity seems really cool, but I'm never going to use it again for any project with more than one programmer.
Their entire attitude of accessible, changeable source, accepting patches and responsiveness is really refreshing. If you do windows or apple dev, the frustrations of having none of that available is a big productivity drain. The high amount of responsiveness part is even nicer, since that seems rarer in platforms such as unity or android.
These are my gripes with Unity, in question format :) Would love to hear from anyone that has concrete answers for these:<p>- How does UDK build apps for iOS natively on Windows without requiring a Mac? Are they doing some kind of insider thing that Unity can't replicate?<p>- I see Unity as massively extensible and that's one thing I like about it. Comparisons are often made between vanilla Unity and UDK; what about Unity + PlayMaker + UFrame + Level Builder, etc. I don't see this ease of editor extensibility with UE4 (I'm sure it's there; but the Unity Asset Store just lets me cherry-pick one, click buy and then just have it to use immediately after download - I like that).<p>- My biggest gripe with the editor is the font size. Will the new UI that's coming in 4.6 and/or 5.0 allow me to increase the font size used by the Unity editor to actually make it comfortably usable rather than fatiguing?<p>FWIW I've preordered Unity 5 and I use UE4 at the moment as well. Nothing big completed in either engine (just some side work here and there) but no fanboy-ism for any particular one (though a bit of a fondness for Unity as I encountered it back in the old Mac days when Unity were called Over The Edge Entertainment; GooBall was pretty cool by the way).
I may eventually do the same for a project I'm working on, although for me the draw would be UE's battle-tested network prediction code.<p>For visual programming in Unity, there's PlayMaker -- an add-on available from the asset store. It allows creation and graphical editing (and graphical runtime debugging) of FSMs (though not hierarchical FSMs). It's quite a good implementation of a FSM / event / action framework. It's basically superior to some tech I spent half of 2013 developing for an in-house proprietary engine.<p>I agree on the collaboration problems. Even with purely text-based serialization, collaboration is one of Unity's weak points.
I'm writing my own engine. That's a terrible idea, I'd be much better off with either unity or unreal. But since game dev is more of a hobby for me, and writing the engine is the fun part, I'm ok with that.<p>However, for smallish projects (smaller than Republic Sniper, I mean) sometimes it's the right choice. I see a lot of indies struggling with lugging around and maintaining a huge engine (unity, especially, but even cocos2d), and running up against the limitations like difficulty integrating with native sdk features, and their game's requirements are modest enough that they could probably code it from scratch in not too much time.
I remember being at a private game programming school, there was a school project to make a game with unity 2 or 3. An entire class was using it.<p>Things were synced using subversion.<p>I never really jumped in that. I did not continue at that school.<p>I really think a video game is something that should be made with your custom tools. A good smith makes his own tools. Of course if you want to save time, you can use an expensive, well-made tool, but it will be at the expense of something else.<p>I'll always remember at that school, quickly arguing with a guy, that in C++ a vector is just a linked list.<p>Game programming is often highly technical, and often much more complex than what you're expecting it to be. That's why you should not neglect your tools and highly concentrate on making choices that fit your work.
I have been Producing a very large game project with Unity. We have a large team, at times 50+. Our graphics aren't as state of the art as they could be but the performance of the Unity engine does not seem bad. The cross platform compatibillity is very strong. The third party tools are very strong. It's worked out well.<p>Unity seems like it was built with ease of of entry as a first consideration. As people do larger and more ambitious projects with it they are hitting some of the tradeoffs and limitations. I am sure UE4 is a good choice as well.
Haven't used the tools much, but I'm subscribed, and simply in awe of Unreal's internal UI system (used for the Tools), and hope EPIC release it in some more independent form.
> The other big obstacle was that the UDK tools which were Windows only. MartianCraft is a shop of (mostly) dyed-in-the-wool Mac folk who’d rather not spend their days using Windows.<p>That really doesn't seem like a great way to run a railroad.