I only know this because I recently started doing some game development (as opposed to just being a gamer for 30 years); Shaders are little programs that run directly on your graphics card. They’re all over the place in games, doing stuff like making objects glow, morphing/transforming objects, and in 3D games, they’re also doing a lot of the work of lighting effects and details that you would want to see in order to actually see the game’s final product. When you start a game it will (either in the foreground or background) compile (build for your computer) all of the shaders designed in the game, but I guess this needs to happen on each computer. If they re-coded some of the shaders in the game to be more efficient/use fewer resources and ultimately make the game run faster, the ones in the previous release would need to be completely recompiled.
(I’m sure someone will be along to correct any inaccuracies in that.)
What I think is odd though is that game companies are throwing that around like anyone has any idea what they’re talking about though.
Most games engines should be able to calculate all the shader combinations required and pre-compile them prior to their use. I’m not familiar with Unreal (iirc Jedi Survivor does this) but it’s fairly common with other games. Alternatively there’s solutions like Fossilize from Valve and Microsoft did just announce a new D3D feature earlier today that help devs collate all the possible shader combinations too.
I remember waiting like 10 minutes with a loading window for Monster Hunter Rise to compile shaders at one point a while back and I had no idea what that meant then… (but yeah obviously most games do it more elegantly)
Thanks for the detailed explanation! That makes sense, it’s also weird to me because if it would get better in 15 minutes, then I feel like most people wouldn’t notice really? Like I’d give a game more time to test that 15 minutes, unless it was like… really bad, seconds per frame style or something.
I only know this because I recently started doing some game development (as opposed to just being a gamer for 30 years); Shaders are little programs that run directly on your graphics card. They’re all over the place in games, doing stuff like making objects glow, morphing/transforming objects, and in 3D games, they’re also doing a lot of the work of lighting effects and details that you would want to see in order to actually see the game’s final product. When you start a game it will (either in the foreground or background) compile (build for your computer) all of the shaders designed in the game, but I guess this needs to happen on each computer. If they re-coded some of the shaders in the game to be more efficient/use fewer resources and ultimately make the game run faster, the ones in the previous release would need to be completely recompiled.
(I’m sure someone will be along to correct any inaccuracies in that.)
What I think is odd though is that game companies are throwing that around like anyone has any idea what they’re talking about though.
Most games engines should be able to calculate all the shader combinations required and pre-compile them prior to their use. I’m not familiar with Unreal (iirc Jedi Survivor does this) but it’s fairly common with other games. Alternatively there’s solutions like Fossilize from Valve and Microsoft did just announce a new D3D feature earlier today that help devs collate all the possible shader combinations too.
this does happen in borderlands 4, but unreal is notoriously bad at tracking which shaders you’ll need in actual gameplay.
It doesn’t help that shaders have become bloated to the point that if you prefer compile them it ends up taking 10-30 mins to load a game.
Look at monster hunter rise my computer can load all the shaders in about 8 mins. My brothers takes half an hour.
Every time you turn the game on. Cause for ever reason it just forgets the shaders and doesn’t save them.
I remember waiting like 10 minutes with a loading window for Monster Hunter Rise to compile shaders at one point a while back and I had no idea what that meant then… (but yeah obviously most games do it more elegantly)
Yeah your can either preload it or compile as you go. Both have advantages and disadvantages
Thanks for the detailed explanation! That makes sense, it’s also weird to me because if it would get better in 15 minutes, then I feel like most people wouldn’t notice really? Like I’d give a game more time to test that 15 minutes, unless it was like… really bad, seconds per frame style or something.