close
close

Silent Hill 2 on PC: another Unreal Engine 5 game marked by stuttering

Silent Hill 2 on PC: another Unreal Engine 5 game marked by stuttering

Like many Unreal Engine 5 games, Silent Hill 2 stutters and stutters a lot. Why is this happening? Can this be fixed? Searching for answers on this, I found myself falling down a rabbit hole, with this game – and others based on Unreal Engine 5 – having problems even more troubling than big bumps in the frame time graph. Stuttering in shader compilation? This isn’t a problem in Silent Hill 2. Stuttering when traversing? Well, unfortunately that’s it – and it’s highly problematic. However, similar to Star Wars Jedi: Survivor, there are also flaws in the animation. Even if you manage to stabilize performance, it’s still impossible to enjoy a smooth and consistent experience in Silent Hill 2. We have an idea why this is happening and even a highly improvised solution, but even so, UE5 continues to have issues that continue to accumulate as game after game falls foul of them.

Before we delve into that, let’s talk about the Bloober team’s work more holistically. There’s a lot to like and enjoy in terms of the PC version of Silent Hill 2. The graphics options are generally good, and there are a few surprises too – like console-style dynamic resolution scaling support, although it’s only limited to Epic’s TSR upscaler. Still, there’s real scale beyond the PlayStation 5 version of the game, which is something I don’t take for granted these days. For example, consoles tend to use Lumen software for diffuse global lighting and reflections, but the hardware-accelerated version is significantly better. Many PC ports don’t even bother offering hardware Lumen, but Silent Hill does through its ‘ray tracing on/off’ option, obviously producing far superior reflections and more accurate indirect lighting. This is generally a good thing, as the Lumen software implementation on PC doesn’t seem to offer the equivalent of UE5’s epic setup here.

I’m excited because the game offers unique RT features only found in the PC version, and I often found the game really great, but I also noticed a number of visual flaws that are worth pointing out in case they can be fixed in future patches. For example, almost all of the game’s fabrics I’ve seen so far run at 30fps, regardless of your target frame rate, so billowing curtains or flags in the wind look strange and really bad. The same goes for the cutscenes, which surprisingly lock at 30fps using UE5’s framerate cap. This should never be a ‘feature’ in a PC port, but to add salt to the wound, inconsistent frame-pacing is the order of the day if you’re using v-sync. From what I can tell, this also affects the PS5 version in its performance mode.

We have issues with bugs and crashes in the PC version of Silent Hill 2, and while this article describes the basics, the video goes much more in-depth – with examples. Watch on YouTube

While Lumen hardware generally looks better, there are bugs here too. The grass can flicker, while the entire presentation can flicker momentarily when crossing consistent but seemingly arbitrary points in the game world. Lumen reflections also suffer from poor noise suppression, showing obvious “boiling” effects, while moving leaves can “leave” trails behind. Other glitches and bugs are present, but it’s been notable to see the PC community trying to solve the problem with mods. DLSS ray reconstruction has been carried over to the game, for example, solving Lumen’s denoising problem convincingly, while DLSS .dll swaps can solve end leaves. Even I got into the spirit of things with .ini tweaks to add ray-traced transparency reflections instead of just Lumen probes and screen space reflections, which greatly improves glass rendering. As always, PC modders are making the best of the situation, trying to make the game better – and I hope Bloober takes inspiration from this. There’s a lot of what we like to call “low-hanging fruit” here: easy solutions that can demonstrably improve the game.

However, we shouldn’t expect modders to fix UE5’s perennial stuttering issues – and yes, there is disturbing stuttering that you can’t fix, whether we’re talking mods, .ini tweaks, or even using the most powerful PC hardware that exists. These are ongoing, fundamental issues with Unreal Engine that require a software fix. The good news is that there are no glitches in shader compilation: there will be no problems because the shader code is being dynamically compiled as needed. The Bloober team appears to be building this into the loading process, where PC monitoring tools show your CPU maxing out on all cores. Transverse stuttering? That’s here in abundance, with even a top-of-the-range Ryzen 7 7800X3D momentarily hitting 16-24ms. The game can consistently run at over 100fps depending on hardware, so let’s say an average of 10ms per frame. Seeing frame times double is noticeable and can’t be avoided and remember, this is the fastest gaming CPU money can buy. On something like the more popular Ryzen 5 3600 – a ‘classic’ conventional CPU – you can double that.

Reading online, I see a lot of people with the wrong idea that the situation is much better on the PS5, but unfortunately it isn’t. It’s harder to measure the exact duration of the interruptions that occur due to v-sync getting in the way, but it’s clear as day to see that they’re all there and very obvious in the game’s 30fps mode. The difference is that the frame-rate in general is much lower, so the interruption of the passage presents itself as a series of dropped frames as opposed to the sudden drop of the PC. The PS5 may also appear to spread out crossover stutters over a longer period of time – so more of a series of smaller stutters as opposed to one big spike as seen on PC.

We’ve seen some people try to mitigate stuttering by taking a similar route to consoles: artificially capping the game at a lower frame-rate and using higher CPU performance to contain the stutters in a frame-rate update. For example, if Silent Hill 2 stutters up to a maximum of 25ms on a given CPU, capping at 30fps (33.3ms per frame) should contain the issue on the regular update. This works to provide a new frame every 33.3 ms, but it doesn’t work to provide smooth performance and this is where we encounter another major issue with Unreal Engine 5 that must be resolved: animation glitches. With the frame-rate capped at 30fps and new frames delivered consistently, the PC version of Silent Hill 2 still stutters (!) – this time it’s the game’s update that’s affected. I recommend watching the video to see the issue in action and for a more detailed description of what we think the issue is.

The engine is operating in ‘delta time’ which should in theory deliver the same gameplay speed regardless of frame-rate. If we disable this via the launch parameters and force Silent Hill 2 to run at 30fps, we find that the problem is completely gone (unfortunately it doesn’t seem to run at 60fps). Setting the game to a fixed tick means that if you allow the game to run at a higher frame rate, it will run at comically fast speeds. Slower frame rate? Literal SNES-style slowdown. However, if you have enough power to run at 30fps, the problem is solved. Again, the video above shows some dramatic examples.

What this test shows is that something is deeply wrong in Silent Hill 2. Technically – albeit with huge air quotes – we managed to ‘fix’ the game, but capping at 30fps is not a viable solution. As things stand, this game’s problems led me down a rabbit hole, where I discovered something unexpected and even more worrying than just ‘bad’ frame times. Something is very wrong here in Silent Hill 2, and the fact that I saw it in Star Wars Jedi: Survivor also worries me. Is this a Windows problem? Is this a problem with the game? Is this an Unreal Engine issue? Is it a combination of problems? I have no idea, but it’s certainly not my job to fix it – I can only report it and hope that game developers and Epic themselves become aware of the problem and fix it.