Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
via-dev opened this issue Nov 27, 2024 · 0 comments
Open

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

via-dev opened this issue Nov 27, 2024 · 0 comments
Assignees

Comments

@via-dev
Copy link

via-dev commented Nov 27, 2024

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:

  • There is no way to control how many splats appear when an enemy is hit or gibbed.
  • The blood is always permanent and there are no options to make it disappear over time.
  • When the limit of splats is hit the port will simply refuse to spawn new splats but leave the old ones intact instead of gradually deleting splats as new ones pop in.
  • There is no way to change the physics of the splats to make them spread out more from the point of impact, always making them densely clumped together
  • Blood transparency is a boolean and not a percentage.

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:

  • There are less splats spawned on hit/gib and the splat sprites are larger to compensate for this.
  • The splats will fly out of enemies at a much faster and further arc on gib, spreading themselves more around the arena instead of being densely packed together. (Observable with Nugget Doom's Bloodier Gibbing setting)
  • The splats will shrink to smaller sprites over time and eventually disappear.
  • Unrelated to the blood, the extra gibbing states for other monsters have some synergy with Retro's extra corpse gibbing. A nice little possible addition.

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.

@via-dev via-dev changed the title [Feature Request & minor bug] Customizable, less hardcoded blood behavior [Feature Request] Customizable, less hardcoded blood behavior Nov 28, 2024
@bradharding bradharding self-assigned this Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants