It's interesting to see game developers finally trying to tackle the issue, most FPS I've played don't do anything to deal with it (Diabotical, Source games (Apex included), q1/q3 and subsequent mods, (I think I recall witnessing it in Quake Champions streams), Warsaw), the exception being Reflex Arena, but I don't recall their solution being perfect (IIRC thin walls allow explosions to pass through, which should include stairs).
I think that's because of a few probable things:
- It's a difficult 3D maths problem to visualize in its entirety
- It's easy to ruin your performance budget by trying something smart (doesn't matter as much nowadays, but probably did a lot in before late 2010s)
- It has important balance and game feel implications
- The easy solution is good enough, the hard solution is a time sink (and gamedevs don't have time)
I think the change is safe in terms of balance/game feel when it comes to CS:GO, I don't see a situation where the change would make the game worse, because there's only so much control you have over a grenade, you have to take in count a lot of the physics to make it land at the right place, and you don't control the timing.
When it comes to TF2 (and possibly R6 if they have something like C4, but I don't know that game), I would see such a change as potentially extremely bad, because you can control the exact position and explosion time of stickies, allowing you to do up to 8 stickies worth of damage to someone that's completely unaware of their presence.
In this image, we see how explosions currently work, the damage is only dealt if the player is in the red tinted zone. If I were to magically change TF2's code to use the new CS:GO explosion handling, the medic would take damage, and most definitely enough to die and drop.
With that in mind, there are still solutions available, the one I have in mind would be to offset the epicenter by the normal of the result of the original trace, scaled by some value, and run a new trace with the maximum length substracted with the length of the offset.
In this image: the original trace in blue, the end of this trace in orange, the normal and offset in green, the new trace in pink (max length not demonstrated).
I'm not convinced that this is a perfect solution, the more lenient you make it (via the offset length), the more you allow explosions to deal damage without the player being able to see it. There may also be degenerate cases in which the offset goes "the wrong way", but that should be easy to solve by changing how it is picked.