• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

Tony Hawk's Pro Skater 5 is a glitchy mess

I got this game as a gift for my birthday and have been playing it for the past days, and I gotta say...Its really not that bad. It doesn't have the same magic as previous titles, but the core game still feels like a Tony Hawk title, and I haven't experienced any glitches yet.

I think the games biggest fault was the graphics style, and some of the maps so far feel pretty void of life. But I was expecting much worse with what i saw online.

From what I saw of the game, the biggest offense was the loading/challenge selection method.

Original Tony Hawk games were very fast paced, with fun challenges that you could try, and then quickly retry if you failed.

Getting from lobby to challenge in THPS5 looked like such a laborious chore for next to no good reason and really turned me off the game.
 
So I realize this was asked months ago, but I can explain what is going on here.

To me, it appears that at some point during the rendering of the ocean waves, the pixel shader being used is performing an operation that is producing a non-finite output - either an +/- infinite or NaN ('not a number' - or undefined). The easiest way to do this is to do a divide-by-zero (which is really easy to do...).

When converting a value for display output (clamping 0 to 1 range), a NaN will always ends up as zero - hence the black output pixels.

This would explain single black pixels in the output, but how to explain why it is producing giant black boxes of the same size?

Well, the trouble with NaN's/Inf's is that they propagate everywhere. Pretty much any calculation that has a NaN will result in a NaN. For example, NaN multiplied by zero is still NaN.

So the explanation for why there are these giant black boxes is actually pretty simple: the game has a bloom filter, which is trying to blur the bright pixels a certain distance. As soon as the filter hits a NaN pixel, it propagates to all pixels in the bloom filters range. The filter will be running in two passes (horizontal and vertical) blurring a fixed number of pixels distance - hence giant black squares of identical size.

So long story short, it's crappy shader logic in the wave effect's pixel shader producing a bad output, which is then getting 'spread out' by the bloom filter.

You can sometimes see a similar thing happen in other games, rocket league for example.

Amazing post, thanks for taking the time to explain.
 
Top Bottom