Hacker News new | ask | show | jobs
by antiuniverse 4133 days ago
In my mind, the use case for Unity is mobile and other downlevel hardware. I still wouldn't try and target mobile or low-end PCs with Unreal Engine 4.

That said, I'm still uninterested in using Unity because of the implications of having a black box engine that underlies your project. Being able to step into the engine code is too important to my understanding and my ability to debug problems, not to mention the possibility to implement your own bugfixes or otherwise modify the engine.

In addition, the collaboration story with Unity still isn't great once your team scales past "tiny." Unreal and its Perforce integration were built and battle-hardened in the forge of AAA studios with hundreds of artists; Unity still encourages you to use a proprietary "Asset Server" which they charge extra for, and even then it gets awkward and prone to irreconcilable merge conflicts once you go past two or three people on a team.

Having said all that, yay competition!

3 comments

> I still wouldn't try and target mobile or low-end PCs with Unreal Engine 4.

Agreed. I'd rather use Unreal Engine for lots of reasons. The technician in me prefers UE4, but the businessman in me made me choose Unity. Here's why.

I absolutely must deploy to Android and iOS. Last time I built the Tappy Chicken sample in Unreal, it was like 900 megabytes and made my phone hot enough to melt, and only ran on very high end Android devices.

I thought that after a year or so, Unreal Engine would get more serious about mobile. Maybe their idea of mobile is just different from mine. I'm not trying to deploy a pocket version of Battlefield 4 onto a phone. I'm trying to do fun little games that make money, and I want to deploy them This Year.

Unreal Engine just doesn't seem like a safe bet for my requirements. Which is too bad, because I love it so much. I wish I could use it for my products. I keep posting that little rant above every few months on the Unreal Engine forums, hoping that someone will explain to me how mistaken I am, and how UE is really getting their act together on mobile, and I keep getting disappointed.

I am delighted with Unity's announcement. And I've upgraded my main project to Unity 5, and it looks much more beautiful, and I'm excited. But I'd be even more excited if Unreal Engine made announcements that show they're a serious contender on mobile.

Unity doesn't suggest anyone use the Asset Server anymore. In my conversations with them, they actively discourage its use and point to their SCM plugins (which they've open-sourced) as the recommended solution.
That's good to hear, I think it's strange that it ever existed in the first place.
You can integrate Unity with Perforce just fine. We started with the Asset Server, and then migrated over to Perforce at the last place I worked for. It did take a little extra effort to get it set up, but once it was, it worked great.
You're right that you can at least use Perforce as the underlying database, but "worked great" is subjective.

The concept of version control is much more integrated into the UX of the Unreal tools, with things like visual diff/merge support for assets built in.

Additionally, one of Unreal's killer features for scaling collaboration up with larger teams is the idea of editing a map in multiple distinct layers which are composed at runtime. This means you can have someone working on audio in the audio layer, someone working on collisions in the collision layer, someone working on lights in the lighting layer... all in parallel. If you tried that in Unity, all you'd end up with is a binary blob with a merge conflict, and n-1 people having wasted their time.

That's an excellent feature. the scenes in unity are binary and not merge-able. That feature alone left me considering other options when I was looking at game engines.
Jonathan Blow wrote an excellent article on the text-based entity file format he developed for The Witness, which was designed to be (more) mergeable:

http://the-witness.net/news/2011/12/engine-tech-concurrent-w...

That was a great post!
I am legitimately surprised they're using a binary format for scenes. That is very anti-source control in general. The only binary blobs in the entire project should be assets (e.g. textures, sounds, etc). Everyone loves to whine about XMl, but I'd happily take XML for scene layout over a binary blob.
By default it is binary, but you can change it to a textual one: http://docs.unity3d.com/Manual/TextualSceneFormat.html

And they've also improved the merging story, see: http://blogs.unity3d.com/2015/02/17/production-workflow-impr...

Scenes and prefabs have been able to be saved in a text format for a while. That said, they were still effectively unable to be merged in all but the simplest of situations for reasons I don't fully understand.

Hopefully this was improved in Unity 5. One of the buried release notes mentions a new merge tool for scenes and prefabs in the engine.

Binary scenes are optional. Text format scenes (similar to xml) are better, but still not easily merged.