Jump to content

View more

Image of the Day

Adding some finishing touches...
Follow us for more
#screenshotsaturday #indiedev... by #MakeGoodGames https://t.co/Otbwywbm3a
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

Unreal Engine vs Unity Engine

4: Adsense
  • You cannot reply to this topic
94 replies to this topic

#1 deltaKshatriya   Members   

Posted 15 March 2017 - 12:42 PM

I wasn't super sure where to post this, since I'm not really looking for advice as much as discussion, but feel free to move this to the appropriate forum mods!

 

As some of you may know, I'm primarily a Unity user (although I use user in the loosest sense, since I don't really code much these days. I mostly work on game art for fun) and I really like the engine a lot mainly because it's the one I've used the most. I did have to use Unreal engine recently for a job I did, and while it's not wildly different from Unity, there were some obvious differences (such as C++ as the main scripting language, etc.). I've found them to be more or less comparable and similar.

 

As the title of the thread implies, the question is, which one do you like more? 


Kryotech

#2 frob   Moderators   

Posted 15 March 2017 - 01:17 PM

I was tempted to close this as it is a "this vs that" thread, but it is in the lounge and we haven't had a good bash lately, so maybe this one will survive for a while.

To me the question is akin to:  Do you prefer Rocky Road ice cream, or Chocolate Brownie ice cream? There are some small differences between the two and you can debate minor ingredients differences, but on the grander scheme of things they're effectively the same, provide fundamentally similar services.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.


#3 ApochPiQ   Moderators   

Posted 15 March 2017 - 01:58 PM

I don't really like either one.


Canned engines try to do too much, and typically suffer from premature generalization all over the place. The usual result is that you have to endure some serious voodoo if you want performance to not suck, and/or you have to contort your game to do things in the "one true way" so that the engine doesn't vomit all over itself.

In order to do something highly unique and "custom", you have to either mutate the engine (which is a nightmare if you ever want to get updates from the vendor!) or you have to compromise your design in some way.

I'm not an advocate of everyone writing their own engines, but for the kinds of games I like to work on, neither Unity nor Unreal is ever going to really cut it.


For rapid prototypes or relatively unambitious (technically speaking) titles, both are basically fine, and some people will find one flavor slightly preferable to the other based on any number of personal factors. I don't think there's objectively much point in trying to make a comparison in vacuum, because each individual's goals, experience, and preferences will weigh too heavily in the final decision.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

#4 Alundra   Members   

Posted 15 March 2017 - 02:07 PM

These engines are far to be clean and not designed to be threaded correctly, these engines are good for prototyping.
My experience on shipped games : I got less issues working on Unity for mobile games than Unreal Engine.
You can write a game without writing an engine, simply working on needed features.


Edited by Alundra, 15 March 2017 - 02:45 PM.


#5 Luckless   Members   

Posted 15 March 2017 - 02:15 PM

Another important factor to consider when looking at middleware solutions to a problem is what problem are you trying to solve?

 

Of course a rather annoying bit that throws a wrench into debating between the two is that it is kind of hard to truly get a good feel for either of them until you have spent time digging around in the guts of them. And I don't mean "I spent a weekend and poked around some demo code", but rather spending time digging down and working with one or the other for months. And the problem with that is: The other one will have changed since then while you're exploring the other. 

 

There is still kind of an unfortunate bias against Unity because of its history of use in relatively low budget projects compared to the bigger names and larger budget games that Unreal has attracted. Larger studios have had the time and money to polish things to a greater degree in Unreal than much of what we get to see in Unity based projects. 

 

I've not be involved with a serious 'from scratch' project in either of them, and haven't done anything with Unreal in the last while, but rather have jumped on board mid/late development with both of them several times. Unreal seemed to start off a few steps ahead and a little more polished if you were looking toward something more "FPS" like in design nature, while Unity seemed to have a toolset laid out for a broader and more general setup but left a little more legwork to bring it toward any specific interaction style.

I'm curious to see other's opinions on whether that is remotely relevant with how either engine stands today, or if it is just a weird bias leftover from old internal development notes.


Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

#6 frob   Moderators   

Posted 15 March 2017 - 02:40 PM

I'm curious to see other's opinions on whether that is remotely relevant with how either engine stands today, or if it is just a weird bias leftover from old internal development notes.

That is mostly gone these days. While implementation details are different, both work the same on a feature-by-feature basis.  They both provide different defaults, and as you mention the defaults tend to favor a gritty FPS feel on Unreal and tend to favor a playful/cartoonish feel on Unity, but they can handle the same if you replace default shaders and replace default controllers.

Regarding the comments up top about threading models, both are designed fundamentally so they only expose single threaded gameplay. However, there are no restrictions on incorporating your own asynchronous libraries or doing multithreaded processing if you choose. I've seen several games that add it quite effectively, using all the cores continuously to good effect.  Neither engine does it for you out of the box because typically entering the realm of concurrent processing expands your bugs and code complexity by orders of magnitude. Multiprocessing introduces the potential for bugs that change by observation, values that change mid-read or mid-write, deadlocks and livelocks and other frustrating or nightmare-inducing scenarios.  Nothing prevents developers from using concurrent processing and the tools and libraries are available to those who want them, but I think both engines took the right approach to keep the general users in the relatively safe land of a single visible thread.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.


#7 FreeFly   Members   

132

Posted 15 March 2017 - 02:57 PM

I just asked this question to myself in the last days. I've been looking for a job in almsot every company in the world, and 80% of them are requiring C++ experience, which means UE in most of the cases.

I've been using Unity almost every day for the past two years and I must say that now that I know it, I wish I started the Unreal Engine before. Don't take me wrong, I love Unity and it has a lot of great qualities, but I feel like that it's still too heavy for AAA projects, and has some behaviors that just let you ask "Why". Unity is great if you are new to gamedev, if you are a non experienced programmer, if you are a one-man show, or if you are developing for mobile.

The unreal engine has a learning curve the resembles the cliffs of Moher, but once you get into it, you can do magic (and find a way better job, if you are looking to work in the industry).



#8 Scouting Ninja   Members   

Posted 15 March 2017 - 03:02 PM

For me as an professional 3D artist I can't understand how people can even make a full game with Unity.

On the surface Unity looks like a full engine, however once you get to the real implementation stage you find that the tools you have are half made and a lot of the basics is just missing. ironically this is what makes it a good engine for mobile games, it has a lot less extra's that won't be used.

The worst for me is Unity's Prefabs and how they don't even work with batching, even if Unity is a batch engine. Why even pretend that the editor is any thing more than a placement tool, when all the tools are broken and the prefabs work against the batch manager?

I understand why so many programmers like Unity, because it's still a old code based engine disguised as and toolset engine. Sorry for the rant Unity is just getting on my nerves, indie devs please stop using it, it's broken and your artist hates it. <_<

Unreal is the better engine, no doubt listing the differences would take ages, they key point about Unreal is that it's made so that all of the people on a team can use it. The blueprints allow everyone to fix small problems and if needed a programmer can write code to add blueprints for special needs.

True because of Unreal's fully functional, feature filled, easy to use tools; it's a bit on the bulky side. However it is possible to dump what you don't use before packing the game.

The down side to Unreal is that it didn't keep any of the old shaders and tools, this combined with it's behemoth size makes it impractical for mobile games.

Also the 2D engine in Unreal isn't great, there are many free 2D engines that exceed it and even Unity's half build 2D tools is better. For 3D games Unreal is the best engine. ^_^

About self made engines, first I admire your skill and dedication, these engines are often slick and elegant. Unfortunately they are hard to use, if the developer isn't around to show you all the quirks things get messy fast.

Second, it would be near impossible for a single developer or indie group to make a engine like Unreal, even a streamline one.

I would never discourage anyone from making there own engine, I find that developers who made a engine in some point in there life, are just better to work with. So you have my admiration, however I have made a small engine in the past and I will never be doing that again. :lol:



#9 deltaKshatriya   Members   

Posted 15 March 2017 - 03:07 PM

Another important factor to consider when looking at middleware solutions to a problem is what problem are you trying to solve?

 

Of course a rather annoying bit that throws a wrench into debating between the two is that it is kind of hard to truly get a good feel for either of them until you have spent time digging around in the guts of them. And I don't mean "I spent a weekend and poked around some demo code", but rather spending time digging down and working with one or the other for months. And the problem with that is: The other one will have changed since then while you're exploring the other. 

 

There is still kind of an unfortunate bias against Unity because of its history of use in relatively low budget projects compared to the bigger names and larger budget games that Unreal has attracted. Larger studios have had the time and money to polish things to a greater degree in Unreal than much of what we get to see in Unity based projects. 

 

I've not be involved with a serious 'from scratch' project in either of them, and haven't done anything with Unreal in the last while, but rather have jumped on board mid/late development with both of them several times. Unreal seemed to start off a few steps ahead and a little more polished if you were looking toward something more "FPS" like in design nature, while Unity seemed to have a toolset laid out for a broader and more general setup but left a little more legwork to bring it toward any specific interaction style.

I'm curious to see other's opinions on whether that is remotely relevant with how either engine stands today, or if it is just a weird bias leftover from old internal development notes.

 

It's kind of unfortunate that Unity got such a bad rep, cause it's not super different from Unreal imo. Why is it though that larger studios have stayed away from Unity as opposed to Unreal? I'm genuinely a bit curious about this (seeing as we are debating the two engines).

 

 

I don't really like either one.


Canned engines try to do too much, and typically suffer from premature generalization all over the place. The usual result is that you have to endure some serious voodoo if you want performance to not suck, and/or you have to contort your game to do things in the "one true way" so that the engine doesn't vomit all over itself.

In order to do something highly unique and "custom", you have to either mutate the engine (which is a nightmare if you ever want to get updates from the vendor!) or you have to compromise your design in some way.

I'm not an advocate of everyone writing their own engines, but for the kinds of games I like to work on, neither Unity nor Unreal is ever going to really cut it.


For rapid prototypes or relatively unambitious (technically speaking) titles, both are basically fine, and some people will find one flavor slightly preferable to the other based on any number of personal factors. I don't think there's objectively much point in trying to make a comparison in vacuum, because each individual's goals, experience, and preferences will weigh too heavily in the final decision.

 

Yea I don't know nearly enough about graphics to write my own rendering/game engine. Most of what I've actually studied/know is machine learning and systems programming/networking from my computer science career/studies so far. I'm more into the art side of game dev rather than the actual gaming side, so most of my game work is to showcase the art, hence why I really like engines like Unreal and Unity (though I am admittedly biased towards Unity since I learned it first and used it more).


Kryotech

#10 Scouting Ninja   Members   

Posted 15 March 2017 - 03:12 PM

Why is it though that larger studios have stayed away from Unity as opposed to Unreal? I'm genuinely a bit curious about this (seeing as we are debating the two engines).

Simple it can only reach 60% of Unreal's power out of the box. Also even if the differences between batching and instancing is considered small, once implemented instancing just outperforms batching in the long term. Especially because instancing works with a modular approach.

 
Unity get's a bad rep because the great games made with it replaced almost half the engine before they started adding there own stuff on it. With Unreal you have great tools, a working engine, huge amount of power and flexibility; all out of the box, then just addon what you need.

Edited by Scouting Ninja, 15 March 2017 - 03:42 PM.


#11 Kylotan   Moderators   

Posted 16 March 2017 - 04:04 AM

I've worked with both commercially. Shipped an early access prototype with Unity, currently working in Unreal.

The first thing I would say is that I'm amazed that some people would still rather do it all themselves. Of course, you can do everything that these engines do, and in some cases better. But there is just so much work in these engines that to replicate it would take so long. I've worked commerically on in-house "code what we need" engines, and literally once a week a different artist or designer would come and ask, "how do we do <X>, like in UE4 or Unity" and the answer is, "we don't have that yet. It'll take a couple of months to code it", so it never gets done and everyone suffers.

I'm perfectly happy with Unity for the most part. I use it for my personal projects and I recommend it to newbies when all other factors are equal or irrelevant. But I'm concerned that the success of their Asset Store basically discourages them from improving the core product, which we've seen from them ignoring UI for years and then shipping the new UI in a suboptimal state, for example. Some say the same applies to Mechanim, though I've never used it. And I'm also concerned that they want to get in a toe-to-toe fight with Epic over rendering features while leaving everything else sub-standard or broken. But maybe they feel they have the hobbyists and indie market already sewn up, so it's only AAA left to compete for.

Comparing UE4 to Unity is interesting. UE4 is much more fully featured - the animation system, the controllers, Blueprints, data tables, behaviour trees and tasks, integration with source control... and that's before you even consider the higher performance and scope for graphical quality.

But a lot of things in UE4 are underdocumented or simply undocumented, the community is not very helpful, and there are still plenty of bugs. If you're an AAA studio with a support contract, those bugs will (probably) get fixed for you before you ship. If you're anyone else, get set for hours or days of digging through engine code to try and understand it, only to have to fix a bug in Epic's code. And the code is complex. You get all the downsides of a large inheritance hierarchy with all the downsides of a component-based system, with all the fun of sprinkling magic macros and auto-generated code throughout the code base too. You need to be in it for the long haul, and you need experienced C++ coders to do well. With Unity it's more straightforward; generally speaking, if it's implemented, it's documented, and someone will help you out on the forums if you ask. So a large part of the decision is about whether you're happier digging into other people's code or not.



#12 phantom   Members   

Posted 16 March 2017 - 05:13 AM

It's kind of unfortunate that Unity got such a bad rep, cause it's not super different from Unreal imo. Why is it though that larger studios have stayed away from Unity as opposed to Unreal? I'm genuinely a bit curious about this (seeing as we are debating the two engines).


Plenty of large studios use Unity however you probably don't realise it it - the problem stems from the licensing terms; if you use a free version you have to throw up a splash screen, if you pay you don't.

So, Joe Hobby who produces the poor/basic looking game has Unity splashed all over it.
Meanwhile AAA Developer who has shelled out money doesn't mention it.

Net result; people only see the bad looking games and think that is all Unity can do.

I'd say at this point both UE and Unity could produce the same output, gfx quality wise, the difference is that out-of-the-box UE's post system makes it easier to produce basic shiny; however with an artist onboard both are just as capable.

#13 Hodgman   Moderators   

Posted 16 March 2017 - 07:12 AM

If being used professionally, Unity is way cheaper than Unreal.
If being used as a hobbyist, Unreal is way cheaper than Unity.

I would almost say that Unity is a framework for building a game engine and editor on top of, whereas Unreal is trying to be more "complete" out of the box (which is good if your idea of a complete engine matches theirs...).



#14 FreeFly   Members   

132

Posted 16 March 2017 - 07:34 AM

Plenty of large studios use Unity however you probably don't realise it it - the problem stems from the licensing terms; if you use a free version you have to throw up a splash screen, if you pay you don't.

So, Joe Hobby who produces the poor/basic looking game has Unity splashed all over it.
Meanwhile AAA Developer who has shelled out money doesn't mention it.
 

 

Just two words: "Pokemon GO"



#15 TedEH   Members   

393

Posted 16 March 2017 - 08:01 AM

Not really adding anything new, but I'll jump on the "they're both good, but use the appropriate tool for the job" idea.

I've used both, and prefer UE4 over Unity, but I'm pretty sure that's just because I prefer that workflow (and appreciate the full source access).  To me, Unity is sort of this black box, and I don't always trust that it's doing what I want, but with Unreal, I can just dig in and figure out exactly what it's doing.  On the other hand, I feel like Unity provides a very "fast" way to work, and is a little more non-programmer friendly for some tasks.

For a huge fancy high-performance, crazy graphics, FPS, all-the-buzzwords kind of a game, I'd go for Unreal right away cause I can't think of a reason not to.  For a smaller, more casual game, where performance is not as important, but things need to be done quickly, I'd go for Unity.  For in-my-free-time projects where I'm the only one working on the game, I tend to roll my own "engines" for the sake of learning how all the pieces work, challenging myself, etc., since time is not a concern.



#16 deltaKshatriya   Members   

Posted 16 March 2017 - 10:45 AM

To my knowledge, both Unity and Unreal seem to be more than capable of producing the same graphical fidelity, no? I've seen some posters here saying otherwise, so I'm sort of curious. 


Kryotech

#17 Kylotan   Moderators   

Posted 16 March 2017 - 11:18 AM

In theory you get total control over each pixel one way or another, so yes. In practice, lots of other factors contribute to whether that's feasible or not given whatever performance, competence, or budget constraints you have. In particular you can't dig deep into how Unity implements its rendering so certain approaches are just not available to you.



#18 grumpyOldDude   Members   

Posted 16 March 2017 - 11:40 AM

I'm nothing close to an advanced game developer by any means, but at the start of developing my puzzle game and a few other stuff that share up to ~65% same functionalities, I decided to code them from scratch. It's been a terribly tough hard work so far, but I'm loving every bit of challenge that I'm confronted with. Its been seriously frustrating a lot of times, (with my noob laid bare), not a comfortable zone to be at all, yet I love it and believe I will get out to be much stronger at the end

I think by the time I finish these projects and get to start using engines I could be much better off a hundred fold than if I never coded from scratch


can't help being grumpy...

Just need to let some steam out, so my head doesn't explode... 


#19 Scouting Ninja   Members   

Posted 16 March 2017 - 02:06 PM

To my knowledge, both Unity and Unreal seem to be more than capable of producing the same graphical fidelity, no? I've seen some posters here saying otherwise, so I'm sort of curious. 

 

You could make AAA games with both, however in scale Unreal will win over Unity (Lumberyard should be 10%-20% better than Unreal, although I have no way to confirm it.)

Spoiler

 

What is killing Unity is it's skin deep approach. New developers aren't aiming for a match 3 game or a simple platformer, they want open worlds and cinematic graphics. Unity pretends that it has everything you need to make these games, so people start making them and when they reach the point where the real work is done, Unity just doesn't have the tools, these developers also don't know what is missing as they have never worked on games like this. 

So the developers think this is it, there isn't any more; they publish half made games that at first glance even look like full games. The half games swarm the store fronts, dragging down Unity's reputation.

The half build tools, irritate content creators; we already have to offer our services at a discount so that Indie developers can use us, asking them to buy tools or hire more programmers isn't a option.

In the AAA market content is king and Unity just not keeping up with Unreal. The license isn't a factor for AAA developers, because they can just arrange a lump sum agreement with Unreal. Don't know if it's related, we are using a older Unreal 4.10, could also be that they just don't want to update the custom changes with each release.

Unreal is also advancing at a fast rate (or maybe it just feels that way because I still get to work with a older one). It even now has a way to merge meshes in the engine, when Unity a batch engine that benefits from it more, still only gives a link to a script for it.


Edited by Scouting Ninja, 16 March 2017 - 04:28 PM.


#20 deltaKshatriya   Members   

Posted 17 March 2017 - 07:11 PM

Would anyone say that Unity is easier to use than Unreal, or the opposite? I mean it seems that Unreal does have more power at least out of the box (unless someone else wants to say otherwise).


Kryotech