Ryse : Son of Rome - details about performance changes, has me wondering

First off, I don’t really care about this game personally, I think it looks nice and everything, but it just isn’t something I would spend time on playing. Maybe with more free time. But the recent news of their development choices has me curious, and want to get your opinions.

So, this is what the ‘Crytek boss Cevat Yerli’ has to say about the game’s downgrade in polycount of characters:

“Hero Marius 85k polys? It was choice,” Yerli said on Twitter. “150k polys w LODs vs 85K + better shading + no LODs (stable). The latter wo at better quality!”

Ok, I suppose I can understand the benefit there, but their main character is always close to the camera anyway, so why LOD him in the first place? It’s great for other characters, but I think not for the Player character.

Another thing that I am wondering is, what does he mean by “no LODs(stable)” ; is there some large benefit in NOT using LOD’s? If anyone can expand on this, that would be great, because I don’t follow.

I’ll be devil’s advocate and say: It could be possible he was just putting out words like LOD and such things that typical gamers don’t understand, to convince that there was a need for lowering polycount, other than beefing up an allegedly lacking console performance (game was originally supposed to run at higher FPS and resolution).

LoD doesn’t always have to be distance based. It can also be used to handle things like crowd scenes.

I wouldn’t LOD the main character just because a crowd happened to show up. But there’s still likely to be a pretty significant difference in visible detail between for instance a combat scene and a facial close-up dialog scene.

“Stable” could have been referring to a lack of LOD switching since there were no longer any LODs.

Is it really that big of a performance hit to switch them? I am very interested in this, as the concept likely applies to all of us Unity devs as well.

No, it a negligible performance hit to switch them, but there are other aspects to the quality of a game than its frame rate. For instance, if the switch is visible then the “popping” can be quite distracting.

I could see popping being a problem, but usually AAA games use like 3 LOD levels I believe, for characters. And so long as the distant is far enough it would be unnoticeable. I wonder if LOD changes would cause state changes or something as or more drastic? I still think keeping the LOD would have been beneficial to most 3rd/1st person 3D games. I feel like either there is more underlying performance hits with LOD, or the quoted fellow is being very careless in the specifics of their explanation. I’m just not seeing a big enough benifit in dropping LOD, but if there is one, I’d like to avoid it too, if necessary.

It is just like doing a texture swap for facial damage… you don’t want it to just pop out of nowhere…

Why would it pop out of nowhere? They’re meant to switch when they would be far enough that it is unnoticeable. Even with some pop, seems a reasonable price for the performance gain, otherwise, LOD wouldn’t exist. That’s why I still am curious about their choice. I would think LOD would only help performance problems, problems that in effect limit their shader capabilities. Seems like with LOD, they could push even better graphics and such.

I appreciate the responses, and not trying to poop on you guys, just trying to get to the bottom of it. Seeing if there is a serious issue with LOD that would be so terrible to not have it.

Maybe in the giant war scenes, just because there are many of these characters clumped together, when you get close and LOD hits, it all hits at once, and hits hard? That’s the only possibility I can think of that would be reasonable to throw it out the window completely. Not even that though, they could have set a delay or a queue so that it doesn’t all happen at once. Again, I’m concered about LOD for Unity games, rather than this game, but since they are a AAA company, I ponder their choice.

You keep mentioning the “performance gain” as if it’s some kind of holy grail. Perhaps with the 85k version of the model looked good enough that a higher poly version wasn’t needed at the same time as being performant enough that a lower poly one wouldn’t give any significant benefit?

Also, LODing doesn’t just refer to the poly count. He also mentioned improved shaders. Shader swapping is something commonly done in an LOD, and perhaps there was noting to gain from that? Same goes for skinning.

One cost to LODs is memory usage. You need to have each LOD loaded, which on a current console might not be worth the cost, in the context that Crytek’s stuff came from high-end PCs but now they’re putting it on 8 year old game consoles with less RAM than a current telephone.

Hmmm, I can sit with this. I think this would make the most sense. I’m not sure the 85k was previously the step down LOD though. Could have been. I had assumed it was retopologised of the 150k. But I would think there would be a few lesser poly models to go along with those anyway, so they are loosing out on those LOD also. Even very far away, 85k. But maybe he meant that they were just scraping the top level LOD off(150k)? The comparison screen shots did look the same as far as the geometry. Maybe they were not conservative enough on their polys since they are porting this to the Xbox One, and expected more wiggle room. I don’t think they are putting it on 360 though, as you mention? That could still be a lot in the RAM though, even for the new console.

In this light, I suppose I better test both scenarios for my own projects. LOD and non-LOD characters.

He means stable framerate.

I could have been wrong about what consoles it’s going on, as I didn’t check.

Whether or not the 85k was one of the lower LODs or not is irrelevant. The point is that if rendering extra polys isn’t a bottleneck then there’s no point having LODs just to reduce polys. You’re latching onto one thing as if it’s somehow the only or most important factor of optimizing art. The polys are just one input in a complex system, and changes in one part of the system won’t necessarily impact the overall output depending on what else is going on.