Page 1 of 1

Project brutality lags when I kill enemies?

PostPosted: Fri Nov 05, 2021 12:58 pm
by supercooljoe01
For some reason whenever I kill enemies the game basically turns into a slideshow, and I have a fairly decent gaming computer (able to run AAA games at max settings). What’s causing this?

Re: Project brutality lags when I kill enemies?

PostPosted: Fri Nov 05, 2021 4:27 pm
by wildweasel
It is worth explaining that the majority of gore and particle effect mods for GZDoom use projectile actors to handle their visual effects. The Doom engine needs to process every single actor (a monster, a projectile, a player), one at a time, in sequence. The addition of blood effects compounds this by quite a lot, as the number of "thinking" things in the level grows exponentially whenever things are bleeding. Firing that BFG shot into a room full of zombies, suddenly spawns hundreds, even thousands of blood drops, flying in every possible direction, and the game now needs to check every single one of them for collision against walls, floors, monsters, ceilings (with more checks, if it's a gore mod that makes blood stick to ceilings!), and anything else that is solid.

This is also a good time to talk about blood decals and wall marks. GZDoom has no real sense of where a wall splat is in relation to where another one is; with particularly intense blood effects, this can result in tons of individual splats occupying a very small area of the wall. Now, whenever you look at that chunk of wall, the game needs to render the wall, then the splat, then another splat, and another, all on top of each other, because of a thing called "overdraw." Basically, if you can see even a little part of something, the whole thing gets drawn by GZDoom. If there's a whole bunch of things stacked on top of each other, the game can't just decide "oh, the player can't actually see most of this" - it has to draw all of those things over each other, in order to "know" what the player can see. And if you shove your face really close to it, this now requires a lot of time to draw (compared to a blank wall), since it's got to fill in ALL of those pixels of your screen with the hundred-some wall splats. Note that the above applies only to wall splats; floor and ceiling splats are actually still actors, using special models, because GZDoom is weird that way.