Project brutality lags when I kill enemies?

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
supercooljoe01
Posts: 6
Joined: Fri Aug 13, 2021 3:10 pm
Operating System: Windows 10/8.1/8/201x 64-bit

Project brutality lags when I kill enemies?

Post 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?
User avatar
wildweasel
Moderator Team Lead
Posts: 21375
Joined: Tue Jul 15, 2003 7:33 pm

Re: Project brutality lags when I kill enemies?

Post 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.

Return to “General”