Rubber settings
- Self_Destructo
- Round Winner
- Posts: 317
- Joined: Tue Jun 07, 2005 1:24 am
- Location: HillBilly Country
- Contact:
Rubber settings
I kinda need to know the rubber settings available and what eacj of them do. 2.8 is behaves differently so the 2.7.1 rubber settings kinda don't work the same way.
- Tank Program
- Forum & Project Admin, PhD
- Posts: 6712
- Joined: Thu Dec 18, 2003 7:03 pm
The new docs say about rubber (now would be a good time to point out typos and nonunderstandable mumbo-jumbo):
The CYCLE_RUBBER setting is a niceness thing, especially useful in an internet game where player prediction is poor: if you hit a wall, you are not directly deleted; you are stopped for a short time and your supply of "rubber" is decreased. If you manage to turn fast enough, you won't die. Rubber has three aspects: how close you can get to walls, how fast you do so, and how long long you survive.
How close you can get to a wall is determined by the CYCLE_RUBBER_MINDISTANCE family of settings. All contributions are summed up. The basic one is CYCLE_RUBBER_MINDISTANCE itself: you won't be able to get closer to a wall than that. CYCLE_RUBBER_MINDISTANCE_RATIO is there to avoid trouble with inexact internal calculations: The lenght of the wall in front of you is multiplied by this value, then added to the effect of CYCLE_RUBBER_MINDISTANCE. The next two contributions influence gameplay: CYCLE_RUBBER_MINDISTANCE_RESERVOIR gets multiplied with the rubber you have left to burn. If your rubber meter shows no rubber used, the effect is in full force; if your rubber meter is almost full, there is virtually no effect. CYCLE_RUBBER_MINDISTANCE_RESERVOIR makes grinds where you use up all your rubber deeper. CYCLE_RUBBER_MINDISTANCE_UNPREPARED gets added if your last turn was only a short time ago; if you turn right into a wall, it is at full effect; if your last turn was more than CYCLE_RUBBER_MINDISTANCE_PREPARATION seconds ago, the effect gets weakened approximately inversely proportional to the time since the last turn.
All these MINDISTANCE settings get overridden if your last turn was already very close to a wall (like the maneuvers known as 180s and adjusts), your cycle is allowed to get closer to the wall by the factor CYCLE_RUBBER_MINADJUST before they kick in.
How fast you are allowed to approach a wall is determined by CYCLE_RUBBER_SPEED. It's a logarithmic speed; you will be able to make half the distance to a wall in no less than T=ln(.5)/CYCLE_RUBBER_SPEED seconds, make the next quarter in another T seconds, and so on; you never reach the wall completely. Rubber usage gets activated only if your current speed is larger than the speed determined by this (<distance_to_wall>*CYCLE_RUBBER_SPEED) at every moment).
The main variable that determines how long you survive is CYCLE_RUBBER. In network games, your ping (in seconds) is multiplied by CYCLE_PING_RUBBER and added on top of that. How much rubber is used is based on the distance you would have covered had the rubber not stopped you or slowed you down. If you use up all your rubber, it loses its effect and usually you die. Your reservoir gets refilled slowly over a timescale determined by CYCLE_RUBBER_TIME (defaults to 10 seconds).
Since rubber is based on distance, it is used up faster if you go faster. You can change that with CYCLE_RUBBER_TIMEBASED; set it to 1 to base the rubber usage on time instead. You can also set it to 2 to make rubber even more effective as you go faster, or -1 to make it more ineffective than usual when you go fast. Intermediate values are also allowed.
How would you call it if you drive parallel close to a wall, then turn towards it? I'd call it stupid. To punish this stupidity, the rubber efficency can be modified for a short time after each turn (so more rubber is used than usual). To activate this, set CYCLE_RUBBER_DELAY to a positive value. For CYCLE_RUBBER_DELAY*CYCLE_DELAY seconds after every turn, the rubber efficiency gets multiplied with CYCLE_RUBBER_DELAY_BONUS. Values smaller than 1 will increase rubber usage, a value of zero deactivates the rubber protection completely for that time.
Summary: You're certainly confused about all these settings for such a simple feature; the most important ones to play with first are CYCLE_RUBBER, CYCLE_RUBBER_SPEED (set it to something low to feel its effect) and CYCLE_RUBBER_TIME. They determine how long you survive, how fast you grind, and how fast your rubber replenishes (in that order).
The CYCLE_RUBBER setting is a niceness thing, especially useful in an internet game where player prediction is poor: if you hit a wall, you are not directly deleted; you are stopped for a short time and your supply of "rubber" is decreased. If you manage to turn fast enough, you won't die. Rubber has three aspects: how close you can get to walls, how fast you do so, and how long long you survive.
How close you can get to a wall is determined by the CYCLE_RUBBER_MINDISTANCE family of settings. All contributions are summed up. The basic one is CYCLE_RUBBER_MINDISTANCE itself: you won't be able to get closer to a wall than that. CYCLE_RUBBER_MINDISTANCE_RATIO is there to avoid trouble with inexact internal calculations: The lenght of the wall in front of you is multiplied by this value, then added to the effect of CYCLE_RUBBER_MINDISTANCE. The next two contributions influence gameplay: CYCLE_RUBBER_MINDISTANCE_RESERVOIR gets multiplied with the rubber you have left to burn. If your rubber meter shows no rubber used, the effect is in full force; if your rubber meter is almost full, there is virtually no effect. CYCLE_RUBBER_MINDISTANCE_RESERVOIR makes grinds where you use up all your rubber deeper. CYCLE_RUBBER_MINDISTANCE_UNPREPARED gets added if your last turn was only a short time ago; if you turn right into a wall, it is at full effect; if your last turn was more than CYCLE_RUBBER_MINDISTANCE_PREPARATION seconds ago, the effect gets weakened approximately inversely proportional to the time since the last turn.
All these MINDISTANCE settings get overridden if your last turn was already very close to a wall (like the maneuvers known as 180s and adjusts), your cycle is allowed to get closer to the wall by the factor CYCLE_RUBBER_MINADJUST before they kick in.
How fast you are allowed to approach a wall is determined by CYCLE_RUBBER_SPEED. It's a logarithmic speed; you will be able to make half the distance to a wall in no less than T=ln(.5)/CYCLE_RUBBER_SPEED seconds, make the next quarter in another T seconds, and so on; you never reach the wall completely. Rubber usage gets activated only if your current speed is larger than the speed determined by this (<distance_to_wall>*CYCLE_RUBBER_SPEED) at every moment).
The main variable that determines how long you survive is CYCLE_RUBBER. In network games, your ping (in seconds) is multiplied by CYCLE_PING_RUBBER and added on top of that. How much rubber is used is based on the distance you would have covered had the rubber not stopped you or slowed you down. If you use up all your rubber, it loses its effect and usually you die. Your reservoir gets refilled slowly over a timescale determined by CYCLE_RUBBER_TIME (defaults to 10 seconds).
Since rubber is based on distance, it is used up faster if you go faster. You can change that with CYCLE_RUBBER_TIMEBASED; set it to 1 to base the rubber usage on time instead. You can also set it to 2 to make rubber even more effective as you go faster, or -1 to make it more ineffective than usual when you go fast. Intermediate values are also allowed.
How would you call it if you drive parallel close to a wall, then turn towards it? I'd call it stupid. To punish this stupidity, the rubber efficency can be modified for a short time after each turn (so more rubber is used than usual). To activate this, set CYCLE_RUBBER_DELAY to a positive value. For CYCLE_RUBBER_DELAY*CYCLE_DELAY seconds after every turn, the rubber efficiency gets multiplied with CYCLE_RUBBER_DELAY_BONUS. Values smaller than 1 will increase rubber usage, a value of zero deactivates the rubber protection completely for that time.
Summary: You're certainly confused about all these settings for such a simple feature; the most important ones to play with first are CYCLE_RUBBER, CYCLE_RUBBER_SPEED (set it to something low to feel its effect) and CYCLE_RUBBER_TIME. They determine how long you survive, how fast you grind, and how fast your rubber replenishes (in that order).
- Jonathan
- A Brave Victim
- Posts: 3391
- Joined: Thu Feb 03, 2005 12:50 am
- Location: Not really lurking anymore
z-man wrote:CYCLE_RUBBER_MINDISTANCE_RATIO is there to avoid trouble with inexact internal calculations: The lenght of the wall in front of you is multiplied by this value, then added to the effect of CYCLE_RUBBER_MINDISTANCE.
In no less than ln(.5)/(positive CYCLE_RUBBER_SPEED)<0 seconds? Very likely.z-man wrote:It's a logarithmic speed; you will be able to make half the distance to a wall in no less than T=ln(.5)/CYCLE_RUBBER_SPEED seconds
- Tank Program
- Forum & Project Admin, PhD
- Posts: 6712
- Joined: Thu Dec 18, 2003 7:03 pm