Why is Unity the most popular engine?

You got something wrong. With Unity free version you can build to all platforms (for consoles you need to be registered with them as a developer - same for Unreal). Now, all Unity services are bound to paid subscription licenses which makes sense for me. Some of them you can still use in the free version but usage quota could be limited compared to paid licenses - again, makes sense. There are a lot of Unity services that help you build a game - Analytics, Teams, Ads, Performance Reporting, IAP, Multiplayer etc. As far as I know Unreal doesn’t provide such services to engine customers. All Unity services is a plus on Unity side IMHO.

Regarding source code access - yes you got it right. Unity source code access is available via custom license. In my experience - small indie teams in 99% cases don’t need that at all. Unity consists of C++ core (lower level engine that you only get access to with a custom license) and higher level systems usually written in C#. Lots of this higher level systems are open sourced on Unity repo. You can use it and change the implementation to your liking. Systems that you have access to are: Unity UI, Networking, Scriptable Render Pipeline, Editor VR and many others. There is a trend that more and more systems are open sourced so in a way you have “some” sorce code access in Unity - at least to the higher level staff.

You got to be a big studio with some engine programmers on board to actually take udvantage of Unreal’s source code access. Small indie teams don’t have the knowledge and resources to actually use it. Lot’s of Unreal devs didn’t compile the whole engine code ever. Here is an old Unity post on source code access: Why You Probably Don't Need a Source Code License | Unity Blog.

I’m not advocating for Unity here but just want to clear some things up. If you ask me Unity is better suited for small teams that are not very super experienced in game development. If I would have a 30+ experienced game developers (5+ of which would be engine programmers) I would probably go for with Unreal.

That is actually the engine I’d like to try out. I think with Amazon’s money they could take it to the most used engine place in a few years.

If that’s the case, it wasn’t clear when I compared these two pages side by side today - you can see that ‘multiplatform’ is specifically mentioned on the plus page, but not on personal:

Now that’s not true; as both an individual, I’ve made quite a few changes here and there in the engine where I’ve needed to for personal projects, and when working with teams I’ve done the same. Often it’s a case of exposing additional things to blueprint, but I’ve also made changes in core systems before, such as adding additional HMD view modes for VR.

I’d be a little worried about a small indie team that lacks the prerequisite knowledge to make small changes to the source where they need them, since that calls in to question what the quality of their gameplay code is going to be like.

Well I’m not going to defend their misleading comparison info.

FAQ elsewhere on their site answers the question explicitly:

tumblr_ljh0puClWT1qfkt17.gif ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌

Just my last 2 cents about source code access: there is a UE4 source code access and big studios working with it and yet there is still no GI solution like SVOGI implemented whereas Unity has closed source and there are two competing solutions being worked on at the moment. With new render pipeline architecture it will be even easier to implement custom renderer.

Distance Field GI (limited, but already in engine):
http://timhobsonue4.snappages.com/distance-field-global-illumination

VXGI (Free, custom branch):
https://github.com/NvPhysX/UnrealEngine/tree/VXGI

Enlighten (Plugin - same system as Unity 5)
http://www.geomerics.com/enlighten/

Dynamic GI + AHR (Custom branch)

Good to know, thanks for the links!

EDIT: Seems like I have some outdated info about Unreal like some people here about Unity.

To be fair, not all of that information is particularly easy to find.

That is not necessarily true (you are talking about big studio). Programmers are not necessarily needing to understand everything, or have good grasp in graphics programming etc. Here are the scenarios of which my small team making use of the source code:-

  1. Figuring out what the heck this class is doing… therefore gain the understanding. And you can quickly inherit, extend it by copy+pasting some source code and change it according to the needs.

  2. There are many times we dont upgrade UE4 simply because we need one or two bugs fixed. So what we do is to cherry pick the code and implement it ourselves in the engine, and compile (not much engine knowledge is needed).

  3. Crash happened while importing or loading assets. What we do is to simply run the compiled engine code and the offending lines often show far more information than what is reported (if it is reported). Such as the asset name, the null variables and so on.

I am sure there are at least more… but these are what I remember within 5 minutes of me typing… The truth is, without source code access, sooner or later you will hit unique mysterious or crashing bugs (lol) and there isn’t much you can do without source code.

Pretty much this. There’s a lot to like about Unity, but having used it professionally for 6yrs or so before UE4, I would never consider a major project without source access due to this reason alone.

Whether you have the knowledge to use the source is irrelevant, because you have the option to learn. That door is closed in Unity, and sooner or later you’re designing your game around the engine, where with source access you least have the possibility to re-tool the engine to fit your game.

I can’t imagine not having that creative freedom(Well, I can, that was Unity, and it was suffocating).

Also(directed at others), indie != amateur; plenty of indies with engine programming experience, what do you think indies did pre 2010 or so?(we generally made our own engines…)

Because setting up a project in lumberyard is more complicated than creating the game itself.

It took me about three hours to get the engine compiled / set up the project… It is a million times more complicated than Unreal, but for some games it’s really worth it. Same goes for every engine there are pro’s and con’s, it’s up to you to decide which one’s are worth it.

Like @VFe said, whilst I find modern game engines mammoth in size and perplexing (compared to the XNA / QT / LWJGL build your own days) you can’t naturally rely on the vendor to immediatley fix issues unless you want to pony up for a hefty support contract. Even then it doesn’t mean it’ll happen in the time you want, or they might have a different “opinion” on the subject… Access to source whilst again it’s not the answer to all issues is extremely valuable to me.

DFGI: Poor quality, only outdoor. ( and is no longer maintained? )

VXGI: Not in the engine, too resource hungry, indoors.

Enlighten: Not in the engine, too expensive for an indie (free in Unity?).

AHR: Not in the engine and is no longer (abandoned?).

totally agree you:)
By the way, Game development is not only graphics, epic marketplace is extremely behind Unity, all the reason is epic, I submit a plugin and wait almost 2 month no response, on Unity, just 5 minutes.
I think epic care about graphics and showcase more than there users, especially mobile users.
At last, graphics and performance is not the only thing developers care.I write c++ for more than 10 years for my job, but if I can use c#/java or node js to finish it, I will choose the easier way, engine and language is just tools.
I know a lot of unreal engine 4 developers, they even know nothing about c++. they are beginners, epic should care about this people more.

Know this is old, but I also feel that Unreal is honestly extremely bloated and unintuitive. It feels like they just pour everything into graphics and don’t give a crap about anything else, which is pathetic. Add that to a forum in which I’ve seen threads regularly NEVER get an answer to a question, as well as an answer hub the same way, and a company that just goes, “Oh, that’s not something we support” when paid for support via special license, no matter WHAT is asked (as a test, I literally asked how to print a string on the screen. Their answer? “That’s not something the engine supports at this time.” Come on, Epic, you should be better than that; I know perfectly well it IS something the engine supports/can do, but that’s the line you give when you’re paid extra for support? Pathetic.). Add in the Marketplace and other factors, and you have an engine that, again, simply feels like it doesn’t give a crap about anything or anyone but graphical prowess, which makes it worse than 99% of the other engines I’ve developed with.

Of course, considering how critical I was and how many weaknesses I pointed out (don’t forget the “Unity >> Unreal” page also basically goes, “Oh, you know these functions you can implement with 3 lines of code in C#? You can do the same here! And it only takes 10 lines! Also, we lack the simple execution catcher that Unity helps out developers with that makes it a breeze to debug with. Oh well.”…

So yeah, in summary, it just feels like Unreal only cares about graphics and not a thing else, which is extremely disappointing. I’d be willing to bet that the big companies that use the engine essentially build it from scratch every time they do so, so it may as well not even be the engine they’re using…

You can get source with Unity, it just costs $$$. So a very realistic way to look at that is ok if we get a hit, and we really need source, it’s probably a viable option. But putting a high value on source just because you might hit a bug that you might be able to fix (or might be worth fixing), doesn’t really make sense in most cases. It has some but you have to weigh it against a lot of other factors.

And there are plenty of other cases where you have a fairly good idea that source will be worth having, and that’s an entirely different scenario.

If you look at the actual data out there, there just isn’t much to support the position that most games would gain a lot of value having source access. If that was the case Unity wouldn’t be used as much as it is.

Not saying there are not good reasons to have source there are. But its’ not a given that it’s a high value, context decides that.

Strong words from someone that can’t even give a clear example of the mentioned issues, Mr. stevesmith97**.**

Can you provide the link for that question?

To those of you who say “Epic only cares about graphics”, now Unity cares, too! This may death sentence Epic Games. Just look at Unity 2018: A Deep Dive Into The Making of Unity's Book of the Dead

Do you know of another pretty rendering game engine? I do. And it comes for free. It’s called CryEngine. It comes for free because it ain’t worth jack.

At Unity, you don’t have anymore only funky dudes who couldn’t sell their game, so they sold their crappy engine instead. They got help now, and that’s not just the Unity store as always, but actual, professional, industry veteran grade help working with, or even at Unity itself. Regarding graphics, since January 2017, the graphics programmer of the Halo engine now works at Unity. For those who use Unity, and I do. We noticed stark changes in the fundamental architecture of Unity already.

Yes, the shadows are **** still. But with the upcoming Unity 2018.1, there is a huge overhaul in the rendering pipeline. It’s scriptable, it comes in low-end mobile, and high-end HD flavors. And for gameplay, the C# Job system will make use of all of your extra CPU cores. How well is the multithreading in UE4 for game logic? Oh, wait, you need C++ for that? Fail…

And to make things worse for those programming amateurs who are still convinced that Blueprint/C++ is a thing for game logic, and tools. Well, don’t hold your breath with C#. There is no return once you tried F#. And you can use F# already over the managed code API. I do. It’s one of the HIGHEST asked features for Unity, too… And guess why? Because imperative object oriented programming is an over engineering pain in the neck. No matter what language, C++, or C#, or Java. F# can beat them all up for game logic, and tool programming. Man, F# could beat up C++ in parallel execution times by 1 second, too.

Oh, did I mention that Unity 2018 is having a node based editor for shaders? Witness: Exploring the Unity 2018 Visual Shader Editor - YouTube

**R.I.P. Unreal Engine

1998 - 2018**