RustyFist
|
|
« Reply #3 on: February 10, 2016, 09:24:16 PM » |
|
Though the statements made above totally ring true, I would put forward my two-cents on the question. As someone who's been using Unity now since v2, has dabbled in UE4, and have many colleagues using both, I would break down the decision-making matrix thus:
UE4's greatest two strengths are its out-of-the-box aesthetic quality (relevant primarily to 3d games), and its visual scripting system called blueprint. If one includes the Unity Asset Store, Unity can provide close equivalencies in both of these categories, but will require both an outlay of money to buy UAS products, and some DIY spirit/experience.
The trade-off however, is that if one doesn't possess the background of a crack C++ programmer, you will be limited to the functionality of the blueprint system, and what custom blueprints you can find among the community. The skill-curve jump from 'using blueprints' to 'making blueprints' is significant.
Unity's advantage in this regard is that one can making fairly complex things with next to no programming background, and the process of learning to make more and more complex things is a much more smooth/gradual one. With Unity, you have javascript and C# to pick from, but MUCH more importantly, Unity's API is significantly more robust than UE4s. When I started with Unity 2, I was a capital-A-artist who knew a touch of python from college. Now there's not much that scares me code-wise. I'm certainly biased in this regard, but I think Unity is a simply unmatched platform to _learn_ how to make games using.
Simply put, Unity is designed to _not_ require source-code access, and so the sheer volume of helper/accessory/utility functionality that has been filled out is much greater. Couple the asset store with this, and if you can think of a problem-space, someone has probably already built a system to address it. It may not be ace-level, but it will at least be something usable/that can be built upon/learned from.
Additionally, Unity has been built around a component-based model (compared to UE4's much more classically insanely polymorphic model). In laymans terms, all of Unity's functionality is significantly more 'kitbashable'. It doesn't enforce a design/usage pattern on you. Granted, this means that it takes a great deal more careful work to really SCALE a game, but for small/mid-size projects (be they games, arch viz stuff, etc.) its much more nimble, flexible, faster to iterate on.
Unity has its problems as an engine, some of its systems are in perpetual WIP in a really shitty way, it is not terribly fast for really high fidelity stuff, its serialization system blows goats for quarters, but I can't imagine personally ever giving it up.
Also of relevance, being part of a contract studio, and being used to budgeting whole projects, I will put this out there. Whatever it is you want to make, big or small, if you're doing it in UE4, you'll need 3x+ the budget. The asset workflow is more cumbersome, it simply burns time. C++ programmers are more expensive than C# folk typically, and there'll be a larger volume of code that has to be written on the UE4 side typically. This doesn't mean UE4 is 'worse', as in many ways it is a more powerful engine, and you have the ability to fork and _deeply_ modify its source code if you need such a thing, but its clearly more expensive to utilize (as is cryengine, likely it's weird new sibling lumberjack, and unigine).
To give you a flippant conclusion to this, I would say this:
If you're making a visually high-end game, especially one you want to bring to xbone/ps4, are a C++ programmer, need massive terrains, or are making a game that you are certain you can top-to-bottom build out with a visual scripting language, give UE4 a shot.
For almost everything else, I'd give Unity the recommendation.
|