Unreal has Tim Sweeney, and old school guy that understands how to make a game engine and has done it over and over. They learned alot from Unity, and are now doing it better than them once they turned towards simplicity over complexity.
When Unreal 4 swapped out UnrealScript for C++ it went into overdrive in terms of performance and clean.
I’m not sure what is the overall strategy of Unity but I don’t believe they care much about the PC/Console space and frankly at this point I don’t believe they will ever manage to capture it from UE.
Someone remind Unity of that.
The people making money from Unity-based games are primarily mobile/F2P devs, and smaller indie developers.
They need stability and ease-of-use/very-rapid-development much more than they need performance or the latest shiny high-end graphics features.
I'm not sure if that's cause, effect or marketing. It could be that using Unreal Engine results in a smoother process and is more likely to result in a AAA target game being AAA. It could be that AAA studios area already predisposed to use Unreal Engine. It could be both. It could be that Unreal Engine is just better at marketing to larger studios given their pedigree.
1: https://en.wikipedia.org/wiki/List_of_Unity_games
2: https://en.wikipedia.org/wiki/List_of_Unreal_Engine_games
Unreal as an engine product is competing with Frostbite and Source Engine (the various engines Star Wars appeared recently) not Unity.
However EA and Respawn won those bids for a variety o reasons, mostly related to the mechanics of royalties and their support commitments.
It’s complicated. There are many forces at work, only somewhat related to engineering, that funnels the engines to one kind of game or another.
I don't know how well it worked out for them overall though, and I don't recall seeing them use Unity again on another game.
In my experience Pathfinder for example suffers from poor perf compared to e.g. Tyranny, but Endless Legend doesn't compared to recent AoW or whatever non-unity game equivalent.
However, Garry has lots of pull in games including towards AAA developers. I did not say that game was AAA but on the notable Unity list that everyone knows about.
Rust is much bigger than most Unity games, so Garry's opinion on this is highly relevant and influential. Facepunch studios and their forums were also a gamedev spot for a long time.
Garry Newman is also someone speaking from shipping experience in another engine that is for AAA studios, Valve Source Engine. Eventhough that was a mod, and yes not a massive budget or team, it has pull at the AAA level in terms of influence as well.
Rust competes with AAA titles on Steam in terms of playtime/playercount all the time, was top 10 for a while and quite often. [1]
The point is Garry's opinion is more valid than most, even at AAA probably about Unity. A developer of a top 10 Steam game has some pull and is someone to listen to, hopefully Unity hears it. Rust is clearly one of the biggest games in terms of playtime/playercount than most Unity games at least on Steam with the popularity only rising since release in 2013.
Rust is AAA level in terms of playtime/playercount with a small team, that is exactly the market Unity wants, in fact it highlights the benefits of Unity clearly. They should listen.
I wasn't saying Garry doesn't have any big games, I was saying that the list of games made using Unity doesn't include many big/AAA games. I also wondered why this might be.
To clarify, I'm not saying there aren't AAA Unity games, just that I didn't immediately see one. Nor am I stating that Rust is not as good as a AAA game, I made my position clear that AAA is more to do with resources. I would even go so far as to say it's more of a marketing term. What I am saying is that is seems like (from the lists I saw) a lot more large and AAA titles are made using Unreal Engine, and I wondered what specifically leads to that.
> The point is Garry's opinion is more valid than most, even at AAA probably about Unity.
I'm not sure why that's the point. It has absolutely nothing to do with what I was talking about. This thread was about Unity being better targeted as small/indie/mobile developers, and I was responding in that context.
I never really mentioned AAA and the reply I made about Rust was also saying that they said "Not sure I saw a AAA game on the list" which is true in terms of budget/team size but not playtime/playercount for a few games on the list.
The biggest games in Unity are probably Rust and Kerbal Space Program merely in terms of playercount/playtime and they do compete with AAA on those metrics, not team or budget size. Both teams have complaints about Unity, as everything, as long as those are addressed things progress.
That is the problem though, Unity is chasing AAA/more licenses when their main target is mobile/smaller scale games and doing that simply. That is the reason both Rust and Kerbal started using Unity, simplicity.
Garry picked Rust in 2013 for the simplicity as he says
> "Unity was about that when we first started with it. They hid all the hard stuff in c++ so we didn't have to think about it. The more time has gone on, the more bullshit has crept to the forefront. The've gone from hiding the hard stuff to moving more and more stuff into C#."
With Unity Rust is competing at the level of playercount/playtime with AAA. That is literally the thing Unity wants the most and their selling point. Unity you can have smaller developers, able to make games that can compete with less team, with a focus on simplicity and being the engine team that makes transitions easy. It is also ok if they are hard transitions if there are major improvements. Unity is many times asking you to update to a new system that is the same or sometimes less than what you need in terms of benefit, and then only to be half complete and then changed again.
As Garry said
> "So while other engines have been trying to catch Unity up in terms of developer friendliness, Unity has been going the other way by making itself more unfriendly."
They are losing the simplicity selling point.
Unity can make games that compete, they should be taking these critiques to heart strongly as teams/games like Rust and Kerbal are exactly the target they should be going for along with smaller games/mobile games etc.
Unity has so many internal developers now, that requires alot more communication needs, testing needs and maintenance. It also pulls the company in many directions if there is no clear engineering/product lead at the top and it is all management/business/finance pushing feature based development which gets them into version 2 syndrome or the "second-system effect".
> The second-system effect (also known as second-system syndrome) is the tendency of small, elegant, and successful systems to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence.
If the second-system effect doesn't describe Unity I don't know what does.
Get back to simplicity Unity, let the engineers/product people have power to set this back on course. Stop catering to big developers, they make their own engine for this reason, consistency and simplicity of their own process. Dogfood Unity with an actual game, the problems will be clear today. If you aren't doing that, listen to people like Garry who are.
Even if they are large companies, the teams are still small and the point of Unity is simplicity.
Unity wants to be AAA for console/desktop but mobile is their bread and butter as you say. Companies and indies chose it for simplicity and there are lots of Unity developers. They are messing up the simplicity angle and going after new markets but causing pain for their existing customers. I get they want to grow and sell more licenses, but I'd argue most of their paying customers are indies, smaller mobile studios and larger mobile studios the have many small game teams.
Unity also make lots of money from the asset store. All these constant breaking changes also break many assets.
Unity just need a more consistent surface level API/signature/facade, and move the hard stuff down below that for most cases with advanced modes accessible with more setup/work. Their changes now are making people that don't need AAA level output, more cartoony mobile games, do unnecessary work losing out on their selling point of simplicity.
It's not a huge surprise someone building games makes a better game engine than someone building a game engine. Because they solved the problems they ran into!
You see this time and time again with businesses. Dogfood, and you'll have a lot better idea of where the warts are in your product. (And most importantly, waste less time fixing things you're convinced are warts, but nobody ever noticed)
why do you think this happened?
why was C++ so much better
I believe that ReSharper C++ alone makes me 10-20% more productive. Their refactorings and inferred constants are amazing and produce real-world performance benefits. Plus having const wherever it is warranted makes code easier to read and easier to debug.
Fun fact: Unity was going to go to C++ in 2013 during the Apple blocking Flash and other JIT tools, Unity thought they were going to be blocked from mobile publishing. [3] Since you can't run interpreted code Unity was going to go C++, I wish they had with C# as a scripting language maybe. Instead Mono had AOT compiling around that time but since the Mono license was expensive they built IL2CPP which takes byte code and makes C++ from it. About a year later Mono was bought by Microsoft and it would have been free for Unity to integrate. Though I still wish they would have went C++ with C# scripting that creates C++, would have been an easier route. I believe much of their problem is all these complicated legacy/translation systems at the base of the engine, which just going direct C++ would be easier with scripting on top of that that directly converts to C++.
Godot you can also use C++ and other languages including C#, GDScript. [4]
Early days of Unity you could use C#, Javascript, Boo (Python flavor) or anything that Mono supported.
[1] https://docs.unrealengine.com/en-US/Resources/SampleGames/AR...
[2] https://docs.unrealengine.com/en-US/Gameplay/ClassCreation/C...
[3] https://blogs.unity3d.com/2010/07/02/unity-and-ios-4-0-updat...
[4] https://docs.godotengine.org/en/stable/tutorials/plugins/gdn...
Absurd would be if he had to just stick to management and bureaucracy just because he has a few billions on his bank account. You do you Tim!
But it often means higher overhead...
> The second-system effect (also known as second-system syndrome) is the tendency of small, elegant, and successful systems to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence.
If the second-system effect doesn't describe Unity I don't know what does.
Get back to simplicity Unity, let the engineers/product people have power to set this back on course. Stop catering to big developers, they make their own engine for this reason, consistency and simplicity of their own process. Dogfood Unity with an actual game, the problems will be clear today. If you aren't doing that, listen to people like Garry who are.
Yeah, I was sort of including that in overhead, of a non monetary sort, in my own head. There are valid reasons why FAANG companies are so big on teams and team size and managers and reorgs, etc. I imagine one of them is it makes it much easier to switch expectations and focus and projects easily when stuff starts going off the rails (which you can always expect it too with so many people and departments with slightly, or very, divergent goals).
> let the engineers/product people have power to set this back on course.
Careful about wishing for engineers to have too much say. Some of the biggest (business) blunders have been because the engineers went and built something magnificent (or attempted to), but the market and sales people didn't know how to sell it (or it wasn't what the customers wanted).
Sometimes that comes out okay for the rest of us in the end as it spurs innovations and other companies to (eventually) do the same, but it's bad for companies when it happens.
Although you probably know that, and that's why you said engineers/product people. :)
It's funny. I see it (anecdotally) all the time. More engineers doesn't mean a better product.
In fact at my old shop, things (product, quality) really started declining once we 'rapidly' scaled the team. Communication and consistency really suffered from lack of solid processes among other things.