My understanding, from previous versions, is that Unity offered a lot more tooling than Unreal. Also, Unreal's SDK demanded a lot of C++ code, which can be unappealing for small studios compared to Unity's Mono and several possible (managed) language choices.
However, Unreal appears to be much more capable, and better performing.
Also, is Crytek still competitive? It used to be competitive with Epic's offering, but was Windows-only.
It's hard to compare unity and unreal. To answer the question about c++, with UE4, the blueprint system removes almost all of that. Entire games can be written in their visual programming language. I also think there are ways to use c# (https://mono-ue.github.io/), if you prefer that as well. C++ is needed if you want to extend the native classes.
Regarding the editor, unreal is pretty amazing. It really shines in the tools department. Check out the landscape editor, materials editor, and animation tools on youtube. Pretty fantastic stuff.
The game engine itself is better than unity in almost every way with a few big exceptions:
1) multiplayer map size. unity can pretty easily support large online worlds
2) support for mobile/tablets. unity is the dominant platform on those devices.
3) community support. unity has a much larger community, better documentation, and a much more populous online store (though unreal is catching up)
According to this thread, as of version 4.6, the maximum supported multiplayer map size out of the box is 20km x 20km. Is this the limitation you were referring to? That wouldn't accommodate an MMORPG or Minecraft, but otherwise seems quite big.
Never understood the concept of measuring map size in km. It's like measuring distance on a map while ignoring scaling. Something like source's hammer units make a lot more sense to me.
1 unit = 1cm in UE, so 20km has some value as a measurement in game.
Of course, what matters more is what you do in that 20km, but it's also a limit coupled tightly with distant mesh performance and float accuracy issues.
...and that's a big IF. The editor ran like absolute rubbish originally on macs, to the point where it was actually unusable.
They've done a lot of work on that, but it's still miles away from the unity editor.
I think it's really hard to argue the unreal editor is better; it's a lot slower, but it does have some nice tools.
You also can't create extensions as easily (if at all?) as you can for unity.
As you say, they're two different things, and the unreal editor is actually not bad... but if you were to compare them, the unity one would certainly rank more highly.
Actually you can create extensions to the editor, but it requires a lot more of work compared to the counterpart.
Also, i use both UE and Unity on my mac, and while i agree that UE crashes a lot, that's mostly on user error. Unity, on the other hand, crashes while importing textures, generic assets, resizing textures, hangs when clicking play, etc.
OSX support is more or less experimental and macs (except the Mac Pro) have pretty weak GPUs. Also performance on OSX is far worse, so you are better off just building a budget workstation if you plan to seriously work with it.
definitely OS related, it's fine on windows, even on macs. Just the underpowered GPUs in most macs make it not really a pleasure to work with, Epic recommends workstations for development work. Personally, i'd just build a windows pc for UE work, it's not suited for laptops anyway.
Mostly to do with floating point precision, the devs of Star Citizen ran into the same issue with Cry Engine when they tried to make things space-scale, and ended up initially stuck with small battle-arena maps. UE4 can re-origin things for a single player moving through a large world to maintain physics precision, etc. but it doesn't currently work with multiple people and their server model.
That said, keep in mind that you can get roughly a maximum of 20 sq km with the default landscape tool (not sure about performance at that scale).
I believe there's also some hard coded limits around the number of simultaneous players (16?), though it seems fairly easy to work around. Again, not sure about performance.
Evaluation of software, be it library, framework, sdk or a whole engine+tools is much much harder than writing actual software, especially when royalties, copyright and other legal issues are involved.
In reality there is no way of knowing what would do your best, so you can look at specific bad parts and take that into decision making, for example, for what I've heard (and possibly it could be wrong):
- Unity is not really good when lots of people have to edit the same files, merging is not really good, and the server option does not really cut it. (For example Quake's engine .map text files are not so bad to merge in cvs/svn/p4/etc.)
- Unreal had always had the bad "fame" of 30-only fps game, while this is okay for certain shooters, or 3rd person games, it would've never worked for "Call of Duty" where the brand was simply established with 60fps. To some people this might sound a bit pedantic, but 60fps matters! (And >60fps does not really, unless you need to swap frames for a 3D VR device of sort)
That to be said both engines surely have really good parts. From little I've explored in Unity, what got me first was the ability to extend the editor while it's running - I could add menus with functionality while it was running - this is super cool.
Unreal on the other side is well known engine with lots of people from the AAA game industry familiar with it, and while the editor might seem completely foreign to people starting in the game industry, it's pretty well known by many others (I guess they don't advertise it much).
The hidden gem of Unreal for me, was it's internal UI system, which could be used as a separate project - it has docking, controls, etc. - it might be a good replacement for Qt, MFC, wxWidgets, etc.
Sorry, I wasn't clear - from what I know, on the consoles only few Unreal games on one specific console made it to 60fps. I could be wrong, and have old information, and yes this greatly relates to older Unreal engines, and from what I've heard (over and over from people working with it) it was the script language and kismet (maybe I'm confusing terms here) that was the limiting factor.
Now I'm a generalist, that ended up as tools engineer, so I might be talking complete non-sense, but again when I've talked to anyone from my previous studio or others that was the overall sentiment - Unreal can't give us 60fps unless Epic are directly involved and custom version for a game is done.
(Obviously you can do 60fps always, but it may not be up to the visual quality of other 60fps games).
Looking at UE4 and blueprints, it seems that they've understood their weak point and worked aggressively on fixing it. So it could be that UE4 would deliver 60fps just fine matching visual quality of other products at the same fps. (aaah, now someone would add - what about resolution? heh, I dunno - I think upscaling is just fine, but then you have all these crazy journalists digging up... frame rate is much more important though)
Check out some videos on the UE4 Blueprints system (flowchart programming). I'm pretty impressed at the product they created there, IIRC there are some games made on Blueprints alone.
Something that I look for when comparing tools/frameworks are the number of Stackoverflow questions and answers. http://www.arepeopletalkingaboutit.com/tags/unity3d,unreal-e... offers a quick visualization. I may have missed a few tags, but it looks like there's a very large amount of people talking about Unity3d on Stackoverflow relative to Unreal. No wonder they want to open it up to the masses.
Of course that can be interpreted many ways (Are there active email lists? Are there active forums elsewhere?) and raises other questions (What's the best way to learn a tool/technology?) but it's at least one useful metric for checking in on my FOMO.
The graphic of the comparison page is a bit unfortunate from Unreal's POV. I get that they want the arrows to indicate "move to" as in move from Unity to Unreal. Can't help but interpret it as Unity >>> Unreal though which is probably not what they intended.
I really like this easy 5% above X model. Seems fair enough.
I'm actually super curious as to why you have that opinion, UnrealEngine has been around longer, and has always had significantly more in the way of production quality tools and features. There are certainly differences, especially when you get down into the details, but two large features Unreal has had for 10 years, shader graph tools, and animation blend trees, are either new and still painful in Unity (mechanim) or only existent as a third-party add-on (shaderforge)
I think Crytek's graphics look quite a bit better and more realistic then Unreal 4, but I don't know if the tools are just as good. Also not sure if Cryengine is competitive from a performance point of view (could be a trade-off with the better graphics).
For some developers, source access must be a huge deal over Unity free version - if you want to roll your own entity system or do a native plug... WAIT! unity 5 is now out, including all features in the unity engine for free (including native plugins), with no subscription, and entirely invalidating the premise of this comment.
I've been trying to decide which to cut my teeth on, to build a prototype MMORPG. I'm comfortable with C++, though my colleague won't be. Any suggestion on which engine/toolkit would be better for that type of build? Graphics quality is not a big concern, mostly just want to use the tool that have the best chance of becoming proficient with.
I don't think either engine is well suited for an MMO to be honest. You are probably better off looking at something like the HeroEngine.
Unreal Engine's built in networking systems are suitable for 64 players, maybe 128 tops. It's replaceable, but I wouldn't recommend delving into that.
I will say this though, if you have 1 C++ programmer with UE4, they can create functionality not builtin to the engine and expose it via Blueprint (the visual scripting language) for non-programmers to use. Blueprint is a fantastic and very easy to use tool. Take a look at the forums to see the incredible things people have built with ZERO programming knowledge.
I don't know about ZERO programming. If you look at RayCast vs RayTrace here https://docs.unrealengine.com/latest/INT/GettingStarted/From... building anything complicated with Blueprint creates a massive amount of visual clutter. It looks clearer in C++. Maybe it's easier for a novice as they're building it since the autocomplete and component system hold your hand, but reading it after is a nightmare of following lines and looking at a lot of essentially commented out code.
It is possible to copy/paste blueprints as text only. The only caveat is that the output is kilometric (a blueprint of mine with ~60 nodes produces ~2500 lines of text).
To redistribute code written with Mono for Unreal Engine, you must have a commercial license to the Mono runtime. These licenses are available from Xamarin for Mac, Android and iOS online, and you can request Windows licenses through support.
My understanding, from previous versions, is that Unity offered a lot more tooling than Unreal. Also, Unreal's SDK demanded a lot of C++ code, which can be unappealing for small studios compared to Unity's Mono and several possible (managed) language choices.
However, Unreal appears to be much more capable, and better performing.
Also, is Crytek still competitive? It used to be competitive with Epic's offering, but was Windows-only.
EDIT: Unreal does have a comparison page for Unity developers: https://docs.unrealengine.com/latest/INT/GettingStarted/From...