How would a sane movement speed overhaul work?
Created by: 9600bauds
HOW IT CURRENTLY WORKS Your "tally" is how long it takes you to move one square (basically). Think of your effective speed as 1 divided by tally. Your clothes (actually only your shoes and exosuit) and your held items can give you slowdown, which increases your tally. Then your tally is also increased by other misc. shit like pain, hypothermia, your race etc etc.
Your base tally is 0, which makes no sense because that would mean your base speed is infinite speed. Your shoes have a slowdown of -1. This was the oldcoders' idea of how to implement lack of shoes making you slower: by making not-lack of shoes make you faster. Then all the misc. shit like pain gets applied blah blah and your tally gets capped at 1 if it's under 1. What does this mean? Assuming you're a healthy, warm human with shoes, your exosuit's slowdown would need to be higher than 2 to have ANY effect on you. And if it had 3 slowdown, it would make you TWICE as slow. Oh and if you took off your shoes, THEN you would be 3 times as slow as normal. Which is a ridiculously steep increase, the obvious solution would be slowdowns implemented such as "0.3" but those do not exist in the current code.
Already you can see the problems with this stupid tally system:
- Because your base tally is lower than the minimum tally cap, you can have a bunch of slowdown on you and it will have no effect whatsoever until it goes OVER the minimum cap (the reason why hardsuits and galoshes don't slow you down anymore!)
- Because your base tally is lower than the minimum tally cap, a healthy human is already running at the fastest speed possible!
- Let's say something has a negative slowdown of -0.5, 0.5 tally is twice as fast as 1 tally, but 2.5 tally is barely any faster than 3 tally. Now let's say it had a positive slowdown of 0.5, 1.5 tally is 50% slower than 1 tally, but 3.5 tally is barely any slower than 3 tally. Because your "perceived" or "effective" speed is 1/tally, it doesn't scale well at all.
- Even if the minimum tally cap was lowered, negative slowdowns would still be really really wonky if they're just a hard number, because of the reason above!
Now there's two ways this mess can go about being tweaked. We can keep the same system, implement noshoe slowdown in a sane way, make your base tally 1, and make the minimum tally cap something close to 0. Then, we tweak all the current slowdown amounts to make them much smaller, like 0.3. Now instead of making you TWICE AS FUCKING SLOW, your hardsuit will make you 30% slower. Then we can add stuff that makes you faster, something like a slowdown of -0.1. It would be significantly better than what we have have now, but it's still shit because slowdown amounts need to be really really small to not cause people go to LIGHTING FAST (the closer to 0 you get the exponentially faster you get), but then, because everything stacks additively, that same negative slowdown that makes naked people REALLY FAST can barely even offset a third of the slowdown from your hardsuit.
The second way I can think of is to implement all slowdowns, positive and negative, MULTIPLICATIVELY. So for example, if you're slow as heck from pain (tally 7 or something), and you take some drug that makes you go 10% faster, your final tally would be 170.9 = 6.3. Or if you're healthy, the drug makes you go at 1*0.9 = 0.9 tally. The whole point is that it will always make you precisely 10% faster than before. Now we can have multiple sources of negative slowdown, because even if someone stacks them all together, they stack multiplicatively so that it's not terribly broken.