This means the further behind someone is, the harder it is to keep the garbage lower than the target height.
When too far behind, the target height is way beyond the field's height.
This means no matter how far behind, one can survive indefinitely if digging very fast (should be unsustainable).
Scenario thought experiments
3 players: 1 player is falling behind
the slow player eventually dies
the other 2 players both have low garbage lines
now what? Do we include the dead player in the average digCount?
scenario 1: no - then players will get a spike in rise speed when players slower than them dies
scenario 2: yes - then everyone will stay low and game doesn't end.
scenario 3: yes but after dying the dead player's digCount increases at average of other player's speed (e.g. 5 players remaining --> each line clear by anyone adds 0.2 to the dead player's digCount). Hmm what will be the consequence of this rule?
Scenario 3 thought experiment 1: say there's 3 players, 1 slow and dies. 1 fast and should eventually win.
When the slow player dies, his digCount will catch up with the middle player eventually. Besides, the fast player will get further ahead anyway. If P1 is 10% faster than P2, then every 10 lines cleared by P2, P1 clears 11. So P3's digCount will increase by 10.5. This means the average will increase by 10.5, P2 falls behind by 0.5 line. instead of 1! In other words, P1's progress is watered down by dead players. Not a good solution.
Hourglass problem? Average should be constant but when a player dies with high garbage count the average decreases. Maybe solution is just to re-add garbage target height to everyone while the average is still below the initial value. This still causes a spike when slower players die though.
But maybe that's not a problem. It can be abused e. g. wait for 3rd player to die then spike clear many lines at once. But it is generally the case for FFA anyways.
So mechanic now is:
each player starts with a H = hInit (H = target garbage height)
clearing a line transfers F <= 1 of the H to all other players (averaged out)
each frame H of everyone increases by hRebound if average H of living players is below hInit
And rising mechanic for each player:
if there are less than hMin garbageLines then garbage rises at the speed of riseSpeedReplacement
otherwise, rises at the speed of min(riseSpeedCap, (H - currentVisibleGarbageLines) * riseSpeedFactor)
rise / descent mechanic:
Garbage shouldn't rise immediately but gradually instead:
This means the further behind someone is, the harder it is to keep the garbage lower than the target height. When too far behind, the target height is way beyond the field's height. This means no matter how far behind, one can survive indefinitely if digging very fast (should be unsustainable).
Scenario thought experiments
Scenario 3 thought experiment 1: say there's 3 players, 1 slow and dies. 1 fast and should eventually win.
Hourglass problem? Average should be constant but when a player dies with high garbage count the average decreases. Maybe solution is just to re-add garbage target height to everyone while the average is still below the initial value. This still causes a spike when slower players die though.
But maybe that's not a problem. It can be abused e. g. wait for 3rd player to die then spike clear many lines at once. But it is generally the case for FFA anyways.
So mechanic now is:
And rising mechanic for each player: