-
Notifications
You must be signed in to change notification settings - Fork 13
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
Adjust spawn protection dedicated server option to allow use of invuln powerup #295
base: master
Are you sure you want to change the base?
Conversation
I've seen someone complaining about it making a lot of noise. Have you used it in practice and determined that it is useful? Do you use it currently on any of the servers?
They intended the people to not kill each other. Not to glow in the darkness. Invulnerability powerups affect performance:
At the same time some indication of people having spawn protection active sounds like an improvement. What do you think? |
It changes gameplay! If you are invuln you cannot die from what is supposed to be able to kill you.
Indeed. But I think it would be absurdly annoying to do it this way. A better way might be to render the player in black and white. |
I think that could be a great way to do it, and a great alternative to using the invuln powerup directly, which as you said does have some downsides. I do think though that it would make a lot of sense for the visual indicator for spawn protection being active to be the blue invulnerability vbm overlay (without dynamic light). That is an effect universally recognized in RF already as "this player can't be damaged" and leveraging that pre-existing knowledge would make it more intuitive. |
Not sure what you mean here? AFAIK in runmaps events like
Could you elaborate why? Is it because those visuals would be too distracting or because of sounds?
That would be much harder to do at this point. We would need shaders and right now we only use them in experimental DX11 mode.
That's a good point although I don't think it necessary mean we can't introduce a different effect if it makes more sense. But considering that options like white-and-black are much more difficult at this point and would be inconsistent with existing mechanics I think it is acceptable to use invulnerability overlay. Not sure if disabling lights is worth it, it would cause inconsistency, and would require additional patching. Now that I think about it it may be worth it to somehow differentiate people with spawn protection from people with invulnerability powerup. When I see someone with the powerup I must assume they will be invulnerable for a long time (30 sec?) so I run from them as quick as possible. But spawn protection is much shorter. Those overlays would scare enemies for no reason. Maybe we could tweak alpha so the overlay is less intensive, e.g. 0.5 alpha. The same thing could also be applied to normal powerups to indicate that it is nearing its end, e.g. 5 seconds before the end it would smoothly reduce the alpha until 0. WDYT? |
I haven't played any games with this tweak yet, but dynamic lighting is quite a big problem for this use case IMO. This will reveal where people have spawned and what they do afterward much more clearly than just the blue flash and sound does currently. For an example, on WL if you are on the 1st floor/ground in the base and someone spawns above you it's often ambiguous if they spawned 2nd or 3rd level. With this change, as long as there are fewer than 2 floors above you, you would be given perfect information on where an enemy has spawned. In competitive play this would not be trivial. Good players spawn with alt fire and don't spam pistol immediately. You can hear people walk around above you if they keep the pistol out but it's never as clear as some kind of visual tell would be. And you'd be able to see where players are going through the floor for the duration of the spawn protection. That's not to say that this is entirely a dealbreaker, but my hunch is that this would be pretty bad for the game overall. And pragmatically speaking, I would actually be more concerned with casual play on custom maps, especially micros or anything where players might spawn 2 or fewer floors above the player. Especially at long ranges this might make it a lot more clear where people are spawning and what they're doing after spawning.
I kinda like this idea, but I don't think it's a change that should be default behavior. Keeping track of when the enemy amp will expire is some kind of skill (albeit a very minor one, which this wouldn't impact all that much). But the bigger issue is that I could see newer players being misled into thinking the amp's damage boost gradually reduces while the alpha fades. Depending on map visibility and what exactly the fade looks like this could be very confusing for players. Even more so with invincibility. In Quake there is a count down/metronome sound cue for the last 5s of quad which is a lot less ambiguous. I forget if this only plays for the player with the power up or others hear it as well though, but I suspect it's the former. All of that said, I think a visual indication on the enemy model that shows whether or not they have spawn protection would be a really nice QoL feature and would make spawn protection a lot nicer to play with. Retail RF's spawn protection was very clunky gameplay wise because it was always hard to tell exactly when you should start firing at a spawner, unless they cancelled the protection by firing. Which a lot of players did because they also had no idea it even existed. |
This PR adjusts the implementation of spawn protection via the dedicated server config file in two ways:
$Use Powerup
optional setting (defaults false). If true, instead of using the standard method of spawn protection, grant newly spawned players an invulnerability powerup for the specified duration. This probably would never be used in normal servers but it would be fantastic for run servers. It's effectively what Cyrus and many other mappers were intending with all the invulnerability powerups scattered around.New syntax for the configuration is (with default values shown):