bradharding / doomretro

The classic, refined DOOM source port. For Windows PC.
https://www.doomretro.com
GNU General Public License v3.0
698 stars 88 forks source link

[Feature Request] Customizable, less hardcoded blood behavior #847

Open via-dev opened 6 days ago

via-dev commented 6 days ago

Feature Request: Customizable Blood

I like Doom Retro's idea of sourceport-level bloodsplats as, in theory, it would potentially reduce the need for the player to add in other gore or blood effects mods that could introduce more instability into their playthrough. This is especially true if they want to play a mapset that introduces several DEHACKED modifications alongside a blood mod since one or both of them could be targeting different levels of DEHACKED support and have collisions and conflicts with one another.

However, I think the way this behavior is currently implemented right now leaves a lot to be desired:

When taken together these issues can result in performance issues as a map progresses or at mapstart due to the r_corpses_moreblood variable. There is little nuance of the various blood effects and it becomes a choice between toggling a boolean flag that will spawn several sprites at once or none at all.

An example of what a different type of custom blood splatters would look like inside of a port like Retro can be found in Skelegant's Gorenuggets mod which brings extra gibbing animations for demons that don't have them, such as pinkies and cacos, and contains an addon file for bloodsplats. This extra file adds similar functionality to Doom Retro's existing bloodsplats but with some key differences:

One thing to note is that is all done with modern DEHACKED features for ports with extra or unlimited states to work with. This means it could theoretically be possible to use several blood presets for different styles included with the port that can loaded with a setting and without needing a potential rewrite. But for this approach to work it would be nice if the default blood behavior could be disabled for a stock vanilla one because the current way DR manages it's splats can potentially cause issues with existing mods as well.