I was catching up on some Digital Foundry videos and noticed that they had a performance video for Firewatch comparing the versions with the initial release and the 1.02 patch.
What I was not expecting was the complete smackdown they gave Unity and the engine’s performance. I wonder if Unity has watched this video. When a customer releases a high-profile game on consoles you should really consider providing some extra TLC to make sure that your engine shines. From the jittery frame rates to the huge freeze when I’m guessing is an async load scene request it reflects poorly on the engine. Obviously, Unity can’t take full responsibility for what customers release but the engine mindshare that is lost is significant.
Who is Digital Foundry? Is that another overly opinionated YouTube channel? Honestly there are so many of those these days that I tend to tune them out and it certainly wouldn’t surprise me if Unity did much the same thing.
Can’t say Unity 5 performs great (coming from the Android corner) compared to 4, but i tried a very simple thing built in unreal and oh boy, i may not hit every settings right, but i started a really simple mobile project, disabled effects where i found them, and it ran horribly pixelated (have it to some degree on a device with Unity 5, too, but not as bad) and with a bad framerate on my device.
And hitches like they mention in this video have grabbed my attention in Unity 5 aswell, especially for a while after starting the game, and i think after loading new scenes. Those hitches weren’t there in Unity 4.
I’ve already sent in a bugreport with a fairly simple project months ago. But there has been no reply yet.
Just to add here that firewatch was developed in Unity 4. I remember reading in their blog about the art of their trees and they mentioned that couldnt use speedtree since they were on Unity 4. Here is a blog post from 2014 with answears some question about their art.
There is large number of people who complained about bad performance of unity games on PC platform. I’d say unity is famous for it. So that’s nothing new, and it would be best to get used to those kinds of opinions.
Will that hurt asset bundles at all? Feels unrelated, but is there some magic involved with how unity runs now that allows it to import assemblies and models?
What bothers me is the game just use simplistic graphics, no complex floor and vegetation shaders. A simple graphics game like that should run 60 Fps like the Witness.
Perhaps Unity should do some work optimizing the core engine for PC platforms and let down a litlle mobile for some time ?
You can kill performance even with simple graphics. For example, one big object with lots of point lights in forward rendering mode could do that. Failure to bake occlusion would do that. Heck, with enough grass, you can kill performance too. Or with lot of smoke. Few years ago some radion cards had that amazing glitch where displaying large non-pow2 texture would cause significant performance drop. How about a post effect that causes scene to be redrawn second time? Or how about moving static objects or having a LOT of mesh colliders?
Either way, there IS opinion that unity performs poorly, but regardless of the opinion, it is developer’s job to ensure that the game runs smoothly. I did play some poorly optimized unity games (shadowrun series, wasteland). On other hand cities skylines was running well.
It’s my belief it’s not the engines fault, it’s the people creating the games fault not knowing how to properly optimize.
I’m almost sure the game in the video above, he didn’t use LOD Colliders. Meaning everything but the most important (up close) LOD doesn’t need a Collider. And it sure seems like lots of Polygons were used more than should have.
But likewise it could have been bad scripts to cause bad performance, just anything.
To blame it on Unity is Blasphemy. I’ve never experienced issues except what I did on my own doing.
If I noticed it would be smooth great 60 FPS then next thing I know I’m getting 5 FPS, I track down the issue because that’s not normal.
So the developers who release crap things either A) Release it for the supported hardware or fix it so slower computers can handle it.
I’ve had 12 million polygons, with 5K draw calls and still had 60 FPS, (with vsync on).
I always thought performance in Unity was pretty good, especially with Umbra. Yeah they definatley could do with some improvements on the async side (like CE’s streaming compression algs) and something like FR smoothing like UE wouldn’t be a bad idea. Well just generally trying to smooth transitions for larger games wouldn’t be a bad idea within itself…
It can be quite a bit jarring sometimes, but ultimatley yeah. As a developer I’d refrain from releasing a product if it had performance issues even if I had to switch engine. It’s not always the dev’s fault, but they can always do something to remedy it…!
Let’s not start on the “it’s never the engines fault”, Epic pulled a lot of side projects (like DFGI) off the roadmap and spent two releases doing nothing but performance upgrades and bug fixes. I’m sure there will be some evangelists on UE’s side saying it’s “never the engine” but in most cases they are wrong otherwise Epic wouldn’t do such a thing.
Like any piece of software, it has faults. It can be improved…
@ - well yeah sure Engines can have problems, but I don’t get why only some very few people will have these issues. I have never had an issue outside my own ignorance to cause a problem.
Like, little did I know for awhile, a Debug.Log(); will kill your performance faster than anything else if called everyframe. But I learnt and now I only use them if they need to be called at the instance of something. E.G. - Button press, Logged in, etc.
I do not think so. It is “barely okay”. It will be “good” when basic scene will be running at 400…1500 fps - on par with C++ project written from scratch.
I kind of agree, thing is you just don’t know if they’ve done something daft or not. So it makes this very difficult to find a route cause, unless the developer openly posted analytics for everything that’s going on. They shouldn’t of needed to cap the game to 30FPS with the amount of detail / limited graphics pipeline that’s for sure.
It’s really dependant on the type of game as well I worked with an MMO team that had horrific random spikes and issues with performance for various matters that I can hardly remember now.
This is back @neginfinity I have used Unity for a while though and I know how to squeeze performance out of it and by the time it came to getting everything ready for console we’d switched engines so, I can’t comment on how bad or good Unity is on CPU starved devices. I also never did mobile, so I’ve got a rather limited subset or pool to draw experience from…
On PC, yeah I had my fair set of issues but many of them I rectified myself.
there’s something strange going on with unity and fillrate performance as i got this with a clead background to run at 60 on a mobile device: IMAGE-1 Lightning strange, but nothing to worry about right now, since we focus on framerate IMAGE-2 The same plane just rotated in front of the camera IMAGE-3 Changing Shader from standard to mobile diffuse i think it was still not reaching 60fps IMAGE-4 A somewhat older scene from a 4.x game running at stable 60fps
I had an unfancy proto running in U5 (IMAGE-5) stuttery 36fps, and even crashed after a while.
Ported the same thing to 4.x and got stable 60fps from the beginning (IMAGE-6).
I’ve sent this in as a bugreport mid december 2015, but haven’t gotten any reply on it yet.
And this is mobile running on a small resolution i can only imagine that this issue only grows with bigger screen resolutions and bigger projects.