odamex
odamex copied to clipboard
[FEATURE] Active player count scalar for Horde health pools.
Is your feature request related to a problem? Please describe. At some point, a critical mass of player counts can be reached, requiring a rampup for the horde health pools to avoid trivializing the challenge. Specifically, during a playtest that approached 20 players, I doubled the values of g_horde_mintotalhp and g_horde_maxtotalhp in order to keep up with the player count.
Describe the solution you'd like to see A way to automate this process, preferably in the form of a configurable multiplier scalar added on top of the current formula of "maxGroup * cvar * skill" that remains at perhaps, for example, 1x at 0-5 players, 2x from 5-10, 3x from 10-15, and 4x from 15-20. This maintains scaling of difficulty without direct micromanagement.
Describe alternatives you've considered Not any as of yet, I feel this would be a net positive for assisting in the Horde player experience.
Additional context Implementation may vary and fluctuate apart from the given above example, of course.
The Horde spawning system changed in 10.1 and I think bumping both of those cvars at once might've been counterproductive. I've updated the wiki page with more up-to-date information. about how the revised spawn system works and what new cvars you have to play with.
Ideally, if the players are good at killing monsters, the game should push back harder. I'm not sure our defaults are optimal for that. One code change I could be on board with experimenting with would be to try and run horde logic at 0.5 seconds, to allow 0.5 second spawns.
Thank you for the update! This helps shed some more light on the behavior, and gives some more options to play with and see what works and what doesn't.
The defaults may be fine for a typical game 90% of the time, but after a critical mass of players, I wonder if a better solution instead would be to either unleash the cap or run spawns at the rate you suggested after g_horde_slaughter #
, where # is the playercount that would kick the logic into overdrive.