airmash-refugees / game-ideas

A place to keep track of ideas for improvements to AIRMASH
4 stars 2 forks source link

Invent mechanism to discourage running #2

Closed spatiebot closed 5 years ago

spatiebot commented 5 years ago

In airmash as it is now, it pays off to run-and-shoot, instead of actively engaging yourself. It's hard to find a way to discourage this, but one way would be that points are decremented over time if the player is not active, or if the player is only flying backwards.

ghost commented 5 years ago

Basic problems:

Basic options:

I like the idea of a fixed effect that could kick in immediately. If the down arrow is held, you're penalized almost immediately somehow

congratulatio commented 5 years ago

Maybe speed limiting backwards flight a bit would work?

https://github.com/congratulatio/ab-server/commit/fb19e911cb1b0fa719ff32e973de9a8839f146c5 - this change takes the extreme of disabling the down key if you're not a recognised bot. It's currently running on Test Server #[]()2. We probably don't want to go this far but it may give an idea of how gameplay will be affected by a slowdown instead.

ghost commented 5 years ago

Per chat, I think variable speed means client tweaks.. @steamroller-airmash any clue about this? You mentioned something about static data

wight-airmash commented 5 years ago

Some thoughts: https://github.com/wight-airmash/ab-server/issues/37#issuecomment-531508871

wight-airmash commented 5 years ago

@derpsderps69 the frontend tweaking is necessary if we want to change speed constants, but it isn't necessary if our server simply not to send packets (as it was done with backward disabling).

steamroller-airmash commented 5 years ago

@derpsderps69 As far as I'm aware, any change to the top speed of planes would need a client change (even if it's just a config update). If you want the max speed to be different when going backwards then that would involve more changes to the client as well, specifically you'll have to change the update code somehow.

ghost commented 5 years ago

How about this for a backwards metric: sliding window of N seconds movement, punishment kicks in if backwards motion used for >X% of it, e.g. with, say 20 second window, 45% trigger (9 seconds of past 20 running)

literally just recording 20 seconds of keystrokes down arrow keydown-keyup event pairs for each client into an array, and using it to maintain an integer sum that updates every frame or similar

For the boxes/points penalties (easy to implement, no client JS messing!) they could even vary continuously, rather than be some fixed binary trigger. Imagine 100% flying backwards = lose 10% score per second, then penalty might use ratio of past 20 seconds flying backwards as a multiplier, e.g. only 1% per second if only 10% of the window was backwards flying, etc

Per the different play styles, I like the idea that something like this could vary per plane. E.g. Goli which loves to fly backwards and basically cannot run, does not need to be punished nearly as much as a pred, if at all. Similar, even though heli is fast and can run, they're so fragile it seems unfair to punish much

spatiebot commented 5 years ago

About the backwards penalty: as wight pointed out in the other thread, this would only make runners turn around and run by flying forward. I agree that this is not a good solution.

I think it's really hard to measure non-active engagement, which is what the unwanted behavior is all about.

The only think I can think of is to slowly drop points if the player is not active. This at least prevents players from sitting on their points all day while being away.

danenania commented 5 years ago

How about tying speed to health in some way? Then if you're sniping and get hit, you can't just run away since you'll be slower than others for a bit, so you'll have to engage instead.

spatiebot commented 5 years ago

How about tying speed to health in some way? Then if you're sniping and get hit, you can't just run away since you'll be slower than others for a bit, so you'll have to engage instead.

sniping is not the problem here. And this would also have a major impact on normal gameplay. So I don't think this is a good idea.

spatiebot commented 5 years ago

I'm closing this, it's not constructive.