According to independent Nintendo developer Bplus games, the frame-rate issues in Breath of the Wild are not related to the game’s resolution or system power, as previously thought. Instead, the developer says the issues are due to programming bugs.
The current notion is that the frame-rate drops in the Switch version of Breath of the Wild are power-related, because the game tends to perform better in portable mode. It is thought that because the game runs at 720p in portable mode, that is why it performs better than in TV mode, which is reported to run at 900p.
However, according to the developer, this not the case. Instead, he asserts that the Switch does have enough power to run the game well in both modes, even at a higher resolution. He says the frame-rate drop problem is due to poor optimization of the programming for the game in TV mode:
Most of the frame-rate issues in Zelda are just programming failures. If Nintendo sets the right people to it they can totally fix them.
Some dev friends and I have the same feeling about that. Because sometimes it is just a specific zoom ratio that makes the frame-rate drop. Just zoom in a bit closer or further away and it runs super smooth.
The problem is that the game wants to show both near and far LOD (Level of Detail) objects. This is a frame-rate killer if two objects are in each other. To show that, it would need around 10 times the power.
And if you see Kakariko Village, the framerate hell there, and then the more beautiful Hateno Village, which runs super smoothly, you see that doesn’t make sense. So something else is going wrong there.
I mention that in my experience, the frame-rate issues usually only happen when there is a lot of grass near Link. I believe this is because of all of the detail and animations there are to render for each piece of grass on screen at once.
But he explains:
Yes, but if you zoom in just an inch or two, it has to show even more details of grass, yet it runs super smoothly again. Same thing when you zoom out just a bit. So on that one zoom ratio, it needs to render too much. It is an LOD problem that is known by the devs that need to handle that.
So indeed, it is not even an issue directly with the grass itself, but instead an issue of how much detail is rendered at certain zoom ratios.
I mention that the portable mode does change more things besides resolution, as noted by Digital Foundry, so this means more things change in TV mode too.
He agrees, but says there are even more changes beyond those.
A lot of things change between docked mode for Switch, besides the resolution.
The distance for LOD’s are changed, the types of texture filters, the distance of texture filters, levels of tri-linear mappings, etc.
All depending on graphics. But for example, the zoom ratio of the LODs are changed, which is a coding part. That also would bold the issue with the zoom level frame-rate issues.
So yes, it is a programming issue in TV mode that doesn’t relate to power.
I’m sure Nintendo has the right people to know the issue and to solve it, so we’ll see if they issue another patch soon.
So indeed, the frame-rate issues in Breath of the Wild are a programming issue that can be easily solved by Nintendo, if it is simply the case of having the LOD set to the wrong values at certain zoom ratios.
If so, it should be reassuring to people who thought the Switch wasn’t strong enough to run Zelda in TV mode at a higher resolution – it’s simply a programming issue, not a raw GPU power issue. If the issue is indeed this simple, it would seem easy to fix, so let’s hope Nintendo issues an update soon!
One more interesting tidbit:
If you take a closer look, you can see a lot of things changing. BUT they could have done more!
From what Nintendo devs told me, the whole game originally ran at 60 frames on Switch. But they did not want it to have too many hiccups. So they focused it down to 30 frames.
There is enough of power there to run the game well. Just some programming issues.
I understand an open world at that size, it is unbelievable how smooth it all runs when you think of what it does load all the time and that it all works in real time.