• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

It's time to stop hating on Unity

Par Score

Member
Blaming "game journalism" for the Unity hate on is far stupider than any hate sent Unity's way.

Unity is thought poorly of because of the sheer volume of abject crap made with it. Crap that, on launch, shoves the Unity name and logo in your face.

The last few years of completely terrible asset-flipped trash-piles littering Steam has been one long negative-PR campaign for Unity, and the games press had absolutely zero to do with it.
 
I haven't delved into it properly yet despite meaning to learn to use Unity, but I thought the automatic garbage collection is supposedly a major PITA on it?

It's not like they haven't earned some side eyes here and there. Hell it took years of requests from devs worldwide for them to finally add 64 bit support properly rather than a semi botched support that many devs found unusable.
 

hesido

Member
I didn't know that. Thanks for the explanation. Just coming from a .NET 4.5+ background and doing things in unity makes me miss a lot of new language features. There's something to be said about improving developer efficiency but for me that post was really just a personal gripe lol.

Async / await is the balls.
 
Unity is fine, and I find it funny you used a Jim Sterling quote given that he's part of the problem people hate Unity. He keeps buying the worst games on Steam that use Unity and then spends 10 minute shitting on them for being shit. His followers of course love it, and passively start to think that all Unity games are no doubt shit.
 

OceanBlue

Member
I'm not sure if you're saying it's good or bad. It's hard to judge just how much of a difference it makes in relatively low traffic web applications (what I work on).
I don't work on web applications that often, but the neat thing about it to me is how it makes your code way easier to read once you learn the semantics.

I've used promises in Javascript and writing code that waits for two or more asynchronous operations to complete is kinda annoying to look at because of callbacks. With async/await it's really easy (async this, async that... await this, await that IIRC).

Edit: My bad, looked up how to do these correctly lol. Ignore me.
 
Blaming "game journalism" for the Unity hate on is far stupider than any hate sent Unity's way.

Unity is thought poorly of because of the sheer volume of abject crap made with it. Crap that, on launch, shoves the Unity name and logo in your face.

The last few years of completely terrible asset-flipped trash-piles littering Steam has been one long negative-PR campaign for Unity, and the games press had absolutely zero to do with it.

Yeah and we should delete Steam too for all the bad games that it has for sale.
 
I don't work on web applications that often, but the neat thing about it to me is how it makes your code way easier to read once you learn the semantics.

I've used promises in Javascript and writing code that waits for two or more asynchronous operations to complete is kinda annoying to look at because of callbacks. With async/await it's really easy (async this, async that... await this, await that IIRC).
Oh, we use async all over the place in our web application. I just don't know how much of a difference it makes. We use a redis server for session and have a decent sized worker pool so it's not like a method waiting on a series of database calls was holding up the server.
 

Paz

Member
This whole thing annoys me so much because it just results in players wrongly attributing certain problems to engines and then developers claiming engine choice is irrelevant when the truth is a massively complex thing somewhere in between that nobody can really get to.

Unity is a horrendous pile of crap when it comes to some things, it's also incredible and I'd argue many of its most brilliant games would've been impossible to make in any other engine due to how far ahead of the curve it is/was in other areas. All engines have trades to be made when you make your choice.

The fact that "Inside" devs explained their good performance is a result of being big and rich enough to get source code access and re-write chunks of it is proof that yeah people aren't crazy when they associate performance issues with the engine, but there's way too many intricacies here and much of the time the poor performance people do notice is due to bad use of the engine rather than its systemic shortcomings.
 

SpokkX

Member
Game journalists should talk MORE about technical issues and engines imo

Unity has a bad rep because, well, on console the games running unity often have technical issues with framerate/pacing

Are there even any good looking 3d games running unity at a stable 60fps on console??
 

Painguy

Member
Game journalists should talk MORE about technical issues and engines imo

Unity has a bad rep because, well, on console the games running unity often have technical issues with framerate/pacing

Are there even any good looking 3d games running unity at a stable 60fps on console??

unfortunately for many "journalists", engine tends to be associated mostly with graphics. So id say there should be some education before that happens.
 

Ladekabel

Member
Didn't have problems with Unity games on PC so far yet and never played a Unity game on console.

I don't know jack shit about game development but whenever I see people claiming a game is not demanding because of visuals I know that they re most likely wrong. There are much more things like lightning, physics, etc. And I think I once read that Unity is CPU demanding and PS4/XBO/Switch have pretty weak CPUs.

Sure, some of it comes down to optimization, too.
 
If you take the original tweets as a whole, it's about gamers becoming conditioned to associate certain engines with good graphics and positive impressions. GAF itself is guilty of this with respect to engines such as Fox Engine.
 

LordRaptor

Member
The last few years of completely terrible asset-flipped trash-piles littering Steam has been one long negative-PR campaign for Unity, and the games press had absolutely zero to do with it.

I mean... you're literally describing a scenario that doesn't actually exist outside of a perception that people unfamiliar with the subject have, that perception being based entirely on an amplified distortion of scrutiny on a few exceptional cases, then saying "But how are the people distorting perceptions by focussing on an imperceptible minority as though it is commonplace to blame?"

Its like saying "How are Fox news to blame that Europe has been overrun by fundamentalist Muslims and there are entire cities under sharia law?"
The answer is the same; agenda driven "journalists" are telling you things that aren't fucking true.

Get media savvy or stay a chump.
 
Unity's performance issues on consoles are far too common for me to stop criticizing that aspect of it. I understand the other benefits to developers but when it consistently impacts the end user experience it's hard to not be bummed out when a game uses the engine. I love a lot of Unity games but performance is almost always less than ideal.

I feel this way about unity as well.

Also, the games that run well on Unity, tend to rip out and remake so much of the engine anyway.
 

hesido

Member
I'm not sure if you're saying it's good or bad. It's hard to judge just how much of a difference it makes in relatively low traffic web applications (what I work on).

I like it, not necessarily performance wise but it makes non-ui blocking tasks so easy to create and maintain.
 

tuxfool

Banned
Blaming "game journalism" for the Unity hate on is far stupider than any hate sent Unity's way.

Unity is thought poorly of because of the sheer volume of abject crap made with it. Crap that, on launch, shoves the Unity name and logo in your face.

The last few years of completely terrible asset-flipped trash-piles littering Steam has been one long negative-PR campaign for Unity, and the games press had absolutely zero to do with it.

Yeah, this is kind of the thing. Unity made the choice of being easy to use and to empower both people extensively experienced in making games all the way to those that have no business making games, thus it also has to reap the rewards that go with it.

It also doesn't help that there have been games with fairly large and experienced indie teams that have made games that really don't perform as they should.

If you take the original tweets as a whole, it's about gamers becoming conditioned to associate certain engines with good graphics and positive impressions. GAF itself is guilty of this with respect to engines such as Fox Engine.
For sure. But this conditioning is also fixable with time.
 

tuxfool

Banned
Which boat exactly? Managed languages are not a good fit for real time applications (video games), let alone in fixed-spec hardware (consoles).

I understand that C#/Java are easier for newcomers compared to ASM/C/C++, but come on...


^ This.

Dude was talking about Garbage Collection?

UE4 also does garbage collection, though it does it by reference counting. Though there you can of course handle memory management manually, they don't recommend it.
 

Makai

Member
What's a standard GC implementation?
Periodically checks the object graph for unreferenced objects then collects them. Maybe does this every few minutes or so.

Reference counting keeps a counter for each object and releases the ones that hit 0 every frame. It's slower on average than garbage collection, but it's a better fit for games because the collection is spread out over more frames. Cyclical references can wreck collection, so I would be surprised that I hadn't heard of that as a problem in Unreal.
 

tuxfool

Banned
Periodically checks the object graph for unreferenced objects then collects them. Maybe does this every few minutes or so.

Reference counting keeps a counter for each object and releases the ones that hit 0 every frame. Cyclical references can wreck collection. It's slower on average than garbage collection, but it's a better fit for games because the collection is spread out over more frames.


That first one is typically favoured by higher level languages like .net and Java, where those examples use a Generational GC. From what I've seen a lot of C++ object systems count references. You may be right, but I can't seem to find a lot of documentation other than what is below, to suggest that the UE4 GC doesn't do reference counting.

https://wiki.unrealengine.com/Garbage_Collection_~_Count_References_To_Any_Object

and this

https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/SmartPointerLibrary/
 

Paragon

Member
Is Unity a victim of its own success, by attracting indie developers that aren't skilled in performance optimization? Perhaps.
It doesn't change the fact that having a game run on Unity throws up a big red flag if you care about performance, since it's not just the little indie games that are affected, but also many of the high-profile Unity games.

Unity haters are pretty much just PS4 owners right? Cause I've had no negative experiences on PC and phone unity games.
The majority of games running on Unity that I've played on PC have unfixable stuttering or frame-pacing issues, and often have a locked framerate. The situation is even worse on consoles.

Firewatch looks nice, but has massive performance issues. It can be running at 100 FPS then you turn the view 45° and it drops to the 40s.

Grow Home and Grow Up from Ubisoft haven't been mentioned yet but they both run on Unity, have really really simple geometry with some nice lighting and draw distance but are impossible to run smoothly on mid range hardware.
:(
They have timing issues on high-end hardware too:
Last time I bought Grow Home I found the framerate is atrocious. Like lots of Unity Engine games, frametimes are inconsistent and then I asked for a refund.
[...]
I bought Grow Home again and found that this game is rendering 50 frames every second but then creating 60 new ones with only 50.
The post does claim to have a fix using CheatEngine to speed up the game though.

Don't blame the tool, blame the artist :)
At which point is its record of bad performance consistent enough that you can start blaming the tools though?

Lara Croft GO
Made with Unity, runs great even on mid-range phones and looks beautiful while doing so.
Yeah, I can't think why people don't like Unity games when I get awesome results like these:
lcg-windowed2psz3.png

lara-croft-go38s6u.jpg

Maybe not every single game running on Unity has problems, but the majority seem to.

If you're skipping a game like Inside or Gone Home for the sole reason that it's made on Unity you're not a smart person.
I love Gone Home, but it still performs terribly. Cutting down the shadow distance (to the point that they pop in 6ft in front of you) helps performance a lot though.

Do you know why it is that so few games running in Unity seem to support Full-Screen Exclusive Mode?
I was under the impression that developers have to pick a fullscreen mode, so the game can only support Borderless or FSE Mode, not both.
Or is that what you were showing with your image?

Here is a list of recent titles built on unity that run great and are generally considered good games.
[...]
Don't blame the engine, blame the devs - it's up to them to ensure their project runs correctly on any given platform, the engine is simply a base to speed production.
Many of these games are not yet released, or have performance issues.
Some of them do run well though, from what I remember.

Ori and the Blind Forest
Some might not make good use of the engine, but there are plenty of others that can still make it work.
It's capped at 60 FPS and stutters all the time.

Err... What's wrong with using Unreal for a small game?
It directly eats into your profits, which may be significant unless you get lucky and have a runaway success.
Even then, developers like Fullbright (Gone Home) have said that they are sticking with Unity because they are comfortable with the engine and don't want Epic taking a share of their profits at all.
 

FZeroRacer

Neo Member
I've dabbled a bit in unity development and it's not bad for people wanting to make a few smaller games. However when you start to really push the engine the seams really start to appear.

Poor performance is an endless issue and Unity has some quirks that makes it awful for 2d development. I think the reputation it has is well-earned and people would be better served learning UE4 instead.
 

Makai

Member
That first one is typically favoured by higher level languages like .net and Java, where those examples use a Generational GC. From what I've seen a lot of C++ object systems count references. You may be right, but I can't seem to find a lot of documentation other than what is below, to suggest that the UE4 GC doesn't do reference counting.

https://wiki.unrealengine.com/Garbage_Collection_~_Count_References_To_Any_Object

and this

https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/SmartPointerLibrary/
I don't really see it listed either way, yeah. That's a big revelation for me if they use reference counting, though, so I'll look again later.
 

lolmark

Member
Surprised no one mentioned Homeworld: Deserts of Kharak. The game looks awesome. The hate for Unity from some of these posts are irrational. You can get a full list of games made on Unity. You'd be surprised by what you see.
 
I saw some tweets this morning, but I couldn't find the original tweet, so I didn't know what everyone was talking about.

As a non-developer, my impression is that it's like most things in the world: the issue is more complex and nuanced than can be put into a single sentence, and talking about something that's complex doesn't leave room for a hot take, so why bother? Although I suppose this counts as a lukewarm take from me, so whatever.
 

element

Member
Unity in the hands of a proper dev can create some amazing things. But the main issue with Unity is many developers use it because of licensing costs and not putting value into things such as support and availability of talent.

Unity major performance issue comes from the fact that major parts of the source code aren't accessible. So if a dev even has the desire and talent to fix something in part of Unity code for THEIR game, they can't. So they end up having to make cuts in other areas of their game.

Unity devs typically have a view of their immediate needs and not thinking about the last 10% where you really need EVERY option available to finish your game.

However, game engines are just a tool. Any tool (Unity, Unreal, CryEngine, Lumberyard, Orge3D, etc) given to the right team can make amazing things, and those same tools given to other teams can make junk.
 

Makai

Member
This whole thing annoys me so much because it just results in players wrongly attributing certain problems to engines and then developers claiming engine choice is irrelevant when the truth is a massively complex thing somewhere in between that nobody can really get to.

Unity is a horrendous pile of crap when it comes to some things, it's also incredible and I'd argue many of its most brilliant games would've been impossible to make in any other engine due to how far ahead of the curve it is/was in other areas. All engines have trades to be made when you make your choice.

The fact that "Inside" devs explained their good performance is a result of being big and rich enough to get source code access and re-write chunks of it is proof that yeah people aren't crazy when they associate performance issues with the engine, but there's way too many intricacies here and much of the time the poor performance people do notice is due to bad use of the engine rather than its systemic shortcomings.
Can you be more specific about games that would be worse fits for other engines - even your own game if that's the case. I agree with your premise that Unity is a mix of brilliant and horrendous engineering decisions, which developers should be aware of to make the best game they can.
 

DSix

Banned
Having actual good programming practices solves the garbage collector issue (I have vivid memories of optimizing the fuck out of my garbage collection on XNA for 360, I had to have zero garbage at all time during gameplay, it was formative).

With that said, Unity's performance is indeed lower than most other solutions (tho not nearly as bad as some people make it sound). But it's a small price to pay for having better tools and workflow. Many good games would not exist without Unity.

Unity is by far the best tool to use for very small teams of 1 to 5 people. The issue is that many teams of that size lack the experience or the talent, so it reflects badly on the engine.

I'm a bit more worried about the "asset flip" term that's being thrown around. Buying third party 3d models is not a new thing, and it helped many small teams get a leg up for background assets. I'm afraid that some good games may be unfairly treated because of that.
 

Cels

Member
Things like Alt+Tabbing using exclusive fullscreen will hang running threads, so is not a good solution for things that - say - have multiplayer components, and there is no runtime switching for 'true' fullscreen and borderless windowed fullscreen; its a compile flag option only, so realistically you need to offer two builds, one for exclusive one for not to offer that support (and probably use a custom launcher to handle that).

I didn't say there aren't god and valid reasons why developers wouldn't want to provide exclusive fullscreen builds, but its wrong to say that Unity does not offer that as a feature.

Its also of relevance that MS with W10 seem to be doing their damnedest to deprecate exclusive fullscreen entirely and send everything through their own compositor,

so most games today that offer borderless windowed fullscreen and exclusive fullscreen allow you to switch between the two seamlessly, just go in the settings and do it and you can apply the change right away.

is that not possible with unity? is that what you mean by "no runtime switching?" like, if i was playing a unity game in exclusive fullscreen and wanted to switch to borderless, i would have to restart the game?
 

I_D

Member
Yeah, I can't think why people don't like Unity games when I get awesome results like these:

I'm glad I'm not alone.

I asked this in another thread, but I thought it was limited to Firewatch.



Please, does anybody out there have any idea of how to downsample Unity games, specifically Firewatch?

I really want to take some high-res shots of it, but I have no idea how.
 

zenspider

Member
developer has such a low opinion of game players that he thinks they are unable to come to their own conclusions. no, of course, it is the illuminati games press that planted the seeds of doubt about unity...

That's the point.

Gamers who are prejudice against middleware without a grasp on what it actually is deserve a low opinion. It's a false correleation.

The fact is that Unity is free, is relatively easy to get a game running on, and has a huge market for pre-made assets. Thus a lot of bad games, poorly coded games, etc., run on Unity.

That it has become a buzzword with negative connotations for that reason is a problem for devs who can't afford not to show the logo.
 

Paragon

Member
Please, does anybody out there have any idea of how to downsample Unity games, specifically Firewatch?
I really want to take some high-res shots of it, but I have no idea how.
If you want to use DSR with games that don't support full-screen exclusive mode, usually changing your desktop resolution before launching the game works.
 

Pizza

Member
Damn, I'm surprised at the overwhelming negativity here honestly.

I've been eyeballing unity for a good year now, I'd like to buy some intuitive tools (the set Superhot apparently used) and make a Mario 64 clone or something. The engine looks fun to learn and easy to wrap my head around.

But I also know I don't have the technical know-how to make a game with overwhelming visuals and a ton of shit happening at once. I'm pretty sure it should be able to handle what I have in mind but like

Damn am I wasting my time? It seems like it's just a free tool: you get some real good stuff alongside a ton of crap
 

thisisamul

Neo Member
I honestly don't get the hate for Unity at all. There are some amazing games that were/are built in Unity. It's not about the engine at all, it's about the developers and what they choose to do with the engine.

Some great examples:

Inside
3087151-inside_shot_03.png


Hollow Knight
hollowknightfull.jpg


Pillars of Eternity I & II
original.jpg
 

Nanashrew

Banned
No. No. No no no no.

Trash engine, trash performance, trash visuals, Unreal is a far superior alternative.

Unity must die, and I won't buy any game made on Unity, ever.

Just wait a couple of years. The only thing holding UE4 back from more beginner and inexperienced developers is the requirement of a much more beefy machine. But even then, there are already some beginners on the forums with stuff that you yourself would likely attribute to Unity. It also wasn't long ago that Game Maker was in Unity's current position with this stigma.

Beginner developer experience is engine agnostic but none here can seem to tell the difference between the engine, laziness or a beginner trying to do the best they can. That's why engine talk is often usesless because there's never any in-depth discussion on it and just feeds into a narrative and bad stigma.
 

I_D

Member
If you want to use DSR with games that don't support full-screen exclusive mode, usually changing your desktop resolution before launching the game works.

Not on Firewatch, unfortunately. I've tried it with about 10 different resolutions.


The shitty thing is that downsampled resolutions actually appear on the menu screen, but nothing happens when you select them.
 

Freshmaker

I am Korean.
Grow up. Look no further than Layers of Fear to see what Unity is capable of in the hands of competent and dedicated developers who take the time to learn their tool set.
The problem is stuff like Double Dragon 4.

Completely unambitious game that could run on a genesis that makes the PS4 shit itself somehow.

Not really different than people saying U3 could only generate shades of brown.
 
I worked with Unity back in 2009 ~ 2012, for the Wii.

It was neat, easy and well supported. We even got an special build for a special type of sound library.

Last time I tried it, it was way better. Sad that simplicity to just start and make worked for the worst.
 
I don't work on web applications that often, but the neat thing about it to me is how it makes your code way easier to read once you learn the semantics.

I've used promises in Javascript and writing code that waits for two or more asynchronous operations to complete is kinda annoying to look at because of callbacks. With async/await it's really easy (async this, async that... await this, await that IIRC).

Edit: My bad, looked up how to do these correctly lol. Ignore me.

Async/Await is godsend for Javascript. Best feature they added with ES2017. Promises are cool and definitely better than good ol callbacks but I pretty much use Async/Await for everything. Easy to read.
 
Top Bottom