ArcadeWheeled Handling Guide
ArcadedWheeled provides a different handling system from the default StdWheeled.
There are various differences, but crucially all the handling physics is done in the game code rather than in the low level physics code.
Specifically the friction values, power, pedal, and brake are set to zero for the low level physics code and only the suspension springs and collisions are processed by the low level.
The actual handling, such as speed, acceleration, lateral friction and hand braking, are instead done by the game code.
Most setup features such as damage, components, parts and actions are the same as previous. The only differences concern the friction, tweak modifiers, the gears and engine power. However, the values canBrake, density, driving, maxFriction, ninFriction, slipFrictionMod, rimRadius, and torqueScale are no longer used since these were used by the low level code. In fact the friction values are zeroed by the game code. The stabilizer value is still available in the <Wheeled> node.
In the xml the <ArcadeWheeled> lives underneath <MovementParams>.
The <Handling> Node
The <Handling> node encapsulates all the pertinent handling features of the vehicle. The handling description is now specified in the <handling> node in a simplified way for the front wheels and the back wheels.
There are no gears and no engine specification. Also, everything is mass independent, acceleration and decceleration rates, and braking etc are not affected if you change the mass box.
- acceleration - This is the rate of acceleration.
- decceleration - This is the rate of natural deceleration when there is no throttle or brake.
- topSpeed - Top speed in meters per second.
- reverseSpeed - Reverse speed in meters per second.
- front - The lateral friction of the front wheels (note the forwards friction is internally calculated).
- back - The lateral friction of the back wheels.
- offset - The vertical positional offset, where handling forces are applied for forwards and lateral friction relative to the mass box.
- lateralSpring - Lateral damping value.
- angSpring - Angular correction value.
- Overview - The forward friction value of the wheels is auto calculated from the acceleration specified in the <Power> node. When accelerating the change in wheel speed is just enough to power the vehicle by the specified amount, without the wheels slipping. To make the wheels slip use the following modifiers.
- accelMultiplier1 - Scale the acceleration by this at low speed (2.0 is a good number).
- accelMultiplier2 - Scale the acceleration by this at top speed. This value should be low, i.e. 0.5, since you don't normally want wheel slipping and the acceleration should drop off.
- grip1 - Scale the default friction by this amount when the wheel is not slipping.
- grip2 - Scale the default friction by this amount when the wheel has a high slip speed. Usually you should set this to 1.0.
If you always want the wheel to slip make it less than 1.0.
If you want the wheel to have more friction that the default make this larger than 1.0 (though you may not notice much difference here)
- gripRecoverSpeed - See WheelSlip section.
- lockFront - Should the front wheels lock.
- lockBack - Should the back wheels lock.
- deccleration - How much deceleration should the full hand brake provide.
- deccelerationPowerLock - How much deceleration should the hand brake provide when the accelerator is also still pressed.
- frontFrictionScale - How much to scale the lateral friction by, of the front wheels, when the hand brake is pressed.
- backFrictionScale - How much to scale the lateral friction by, of the back wheels, when the hand brake is pressed.
- angCorrectionScale - How much to scale the angSpring value by when the hand brake is pressed.
- latCorrectionScale - How much to scale the lateralSpring value by when the hand brake is pressed.
- reductionAmount - Reduce the top speed, fractionally, by this amount when steering is at steer max.
- reductionRate - The rate at which to reduce the speed by.
- frictionBoost - Increase friction when suspension becomes compressed.
- frictionBoostHandBrake - Same as above for but when hand brake is pressed.
- radius - The effect radius of the chassis.
The steering is specified as per <StdWheeled> using vMaxSteerMax etc.
|v0SteerMax||The maximum steering angle at zero speed.|
|kvSteerMax||The amount of steering degrees subtracted from v0SteerMax when speed is equal or higher than vMaxSteerMax.|
|vMaxSteerMax||The top speed as far as steering is concerned.|
|steerSpeed||The speed at which the wheels reach full turning lock at max speed.|
|steerSpeedMin||The speed at which the wheels reach full turning lock at zero speed.|
|steerRelaxation||The speed at which the wheels center when you are turning then let go of the stick.|
- The Tweak Groups are not implemented. These used to influence the low level physics parameters such as power, which are not used.
- Gears are not used by <ArcadeWheeled>. From experience it was felt that gears just got in the way of the desired handling. The aim is to fake gears for sound purposes only.
- Similarly nearly all the low level physics params underneath <Wheeled> including <gearRatios> are currently ignored. Though at the moment the init code still parses these (will git rid of this at some point).
- Note, however, that the stabilizer value for the suspension is the still used from the <Wheeled> node.