Hi Angus:
Just came off a Unity project for my last job
(http://neveralonegame.com/). My advice is exactly the opposite; if you
value your time as an artist, don't even bother with Unity. It's nowhere
near the level it needs to be to even think about competing with
UE4/CE3, let alone other game engines.
I normally don't like to write negative things, but because I feel so
strongly against how Unity is designed (and how they responded to our
support requests for stuff that was clearly broken), here's my breakdown
of why I disliked working with it.
*Shaders*: Even U5's new PBR shaders are a nightmare to work with. No
node-based shader editor (other than Shaderforge, thank god for that)
makes it very difficult for non-technically inclined artists to work up
cool shaders. And I was working with U4, which was terrible in itself in
terms of OOTB offerings for lighting. And as for the "one-click
multi-platform deployment" stuff, yea...the last 3 months of Never Alone
were our main engineer and a few of us frantically trying to figure out
why our shaders were all compiling pink on PS4/fine on PC/geometry not
rendering on XB1/other mad bugs, and Unity pretty much refusing to help
fix their own bugs. At least with UE4 we'd have been able to fix the
problems, whether ours or the engine's.
*Mechanim*: The entire animation system is a nightmare to me. The
retargeting system really pissed me off as an animator, and as a rigger,
I wouldn't ever want to work with it again. Essentially whatever rig you
provide Unity will always be re-targeted to a internal rig that is
pre-defined and unchangeable...and it provides 2 spine bones for
deformation, along with also requiring you to setup RoMs for every
single joint...for every single character that you make. The only
benefit to this? Animation re-targeting. Which no other sensible
re-targeting system (afaik) does in this manner. The alternative? None,
other than using the legacy animation system which is unsupported and
does not have IK solvers. I should also point out that it was in
response to Unity's nonsense with Mechanim that I ended up writing a
custom viewer for Maya just so our animators (and I) could look at our
own animations and critique them objectively without worrying about if
Unity was actually doing some weird stuff with the Avatar system that
was causing them to look different in-engine.
*Shuriken *(particle system): Let me put it this way, having worked with
UE4 and Unity (and a few other particle systems besides), there's no
contest. Shuriken is in serious need of an overhaul; it's way too basic
and buggy (esp. with animated textures and mesh particles), and 99% of
the time effects I want I end up using a combination of
scripting/shaderforge to get what I want, rather than struggling with
the limitations of Shuriken.
*Pipeline*: Unity's YML files (way it stores metadata) is an absolute
nightmare. Apart from the annoying way it generates metadata files (and
regenerates GUIDs for every asset comes in) the way it works (by
randomly writing metadata everywhere within the same YML file) pretty
much ensures that if you have more than 2 people working on the same
level at the same time, you're going to end up with merge conflicts all
the time unless you have very, VERY well-trained artists/designers in
terms of SVN lock/whatever VCS you choose to work with. We ended up with
a gDoc that had people manually update what section of which level they
were working on based on nothing more than an honour system, because
people didn't know how to use SVN lock, and you can imagine how that
went :)
As for animators, because blend state trees also use the same YML file
storage format (and the same dumb ways of using GUID/UUIDs to refer to
animation clips instead of filenames) also ensures that only ONE person
can work on ONE file at a time, and must ensure that their file is
checked in along with the metadata file that accompanies it, or Unity
will start regenerating it on everyone's machines automatically, and
then when they check those files in, enjoy resolving the resulting mess
of conflicts!
I'm not here to plug UE4 really (I personally am a huge fan of CE3 cause
I'm a graphics whore :P), but I will say that if you think it's easier
to 'learn' Unity compared to UE4...perhaps the UI? But I would suggest
that running into technical roadblocks that actively inhibit producing
quality content is far more damaging than getting over a higher learning
curve.
Hope that helps, (and it doesn't sound like I'm bashing Unity too much)! :P
Yours sincerely,
Siew Yi Liang
On 1/19/2015 7:58 PM, Eric Turman wrote:
@Nicolas Esposito
"....In the end you could end up spending A LOT of money just to have
some basica stuff which you could code ( if you have the knowledge... )
For me Unity is a good engine for a team project, not for a personal
one."
I think that you might benefit from considering thinking from a
different point of view:
Purchasing the right asset from the asset store can save a lot more
money in the long run when you stop to consider how much time it would
take you to create that from scratch (even if you are a competent
coder.) When Considering assets from the asset store, the real
questions are:
* Could I script/learn-to-script this in less time than I would have
to pay myself at $n/hour
* Does the asset give enough capability and flexibility out of the
box, and, if possible, what could it take to extend its capabilities
* Is this something that I would rather invest in my time to become
proficient at
Unity allows an individual or very small team to accomplish a wide
variety of projects on a wide variety of platforms that could
otherwise be out of their reach.
There are even node based setups in the asset store for programming.
As for examples in Unity, there are many as well.
Cheers,
-=Eric
--
-=T=-