AI Manager> Ratings} Judge AI ability/laptimes vs. yours; create baseline for you to adjust their results based on yours. Include an AI car that has 100% ratings in each category to give consistent laptimes with every lp, so a new lp can be evaluated w/previous versions. The 100% rating skews AI pitting (often first in early, or not pitting, out of fuel).
A. major adjustments:
1) ai_grip_modifier:
{series physics, mods, race.lp, & individual track physics determine ultimate effect} Except for a new faster race lp (& ai_line_modifier), way to get AI faster laptimes. Easier to “do” AI when you use real race type lap as race lp. Higher val = better grip AI, if slow race lp, raise this & AI sticks better than you, corner faster, & contact with them will be detrimental to you. “ai_inverse_slipcurve_k” will combat this but not enough if you set this too high.
2) ai_drag_modifier:
See if their top speed is same as yours before tweaking grip modifier.
B. fine adjustments:
1) ai_accel_modifier:
{.x to .0x range}
Match AI to player accel. Easiest place to check is leaving a turn to a long, fast straight. Easier to tell if they’re not quick enough. Any tight turn where they’re in front & you’re able to catch and pass them in a relatively short distance.
2) ai_decel_modifier:
{.x to .0x range}
Adjust to player braking.
3) ai_line_modifier: Changes AI’s perception of their grip limit. At 1.0 they see 100% of actual grip available (set by grip val). Decreasing makes AI drive w/less grip & run easier in & out, slows slightly. Above 1.0, AI think they have more grip, charge corners harder. Slightly higher than 1.0 can help make AI-AI race better & race you harder, gives shot of agression. Too high may cause AI to over drive, & wash up or check up, slip. Use to negotiate AI bugs instead of giving them more grip. 1.07~1.005, <1.00 is if they drift too much in a corner, also slows them, speed up elsewhere or make new race lp.
GTP ai_line_modifier: On tracks that AI are bouncing, & can’t even drive a lap, lowering this to below 1.00, say 0.40 to 0.80, allows AI to drive but may still bounce upon contact. When using such a low line_modifier setting, AI will crawl through corners. The “accel & decel” modifiers will need to be raised closer to 1.00.
4) ai_inverse_slipcurve_k: Used in small increments, .05 & .10, get AI to stick, still allowing AI to break loose when bumped, simulate player-like slide offs/traction loss if occurs infrequently. Normal settings 60-.75, as low as I can get it without AI losing it in the corners, or AI equal chance of losing control upon contact as player.
5) ai_drag_modifier: Controls AI top speed. Higher number more drag.
6) ai_dlongpad_scale: Get AI to take fast corners w/o using brakes or checking up. 0.3 seems to work without any bad effects. Haven’t seen any improvement by going lower. Tried to use it with a higher setting to get them to slow up, didn’t help, used the concrete for asphalt remedy.
7) ai_tire_wear_left (right): Adjust so AI tires wear at same rate as player’s. Figured by player vs. AI laptimes, lap for lap. Gtp tire wear does not degrade performance, so I set it at 0.25-0.45, & check laptimes against mine for match up.
Pta tire wear usally does not degrade performance, but there may be a slight fall off in laptimes. usual would be 0.35 to 0.50.
Cup has tire wear & degraded performance. Make player’s tires last for a fuel run (no allowance for abuse) by adjusting settings in “track_cup”. Then tweak AI tire wear to match. Cts same as cup.
8) ai_squeeze_pcnt: No one knows for sure. I’ve used it to hinder (a braking situation I think) & help (a cornering problem because of track flaws). If too high, AI drive off road for no reason.
9) ai_qual_modifier: Adjust to get AI qualifying time where you want. Set so 2 fastest are faster than me, not so fast that I can’t beat if I have a great lap.
10) ai_fuel_use: = 1.00: Make AI run out @ same time player(use 4 fastest cars as gauge).o pit properly, before they run out of fuel but not for tire wear (adjust to match player wear), is another tweak. (See 11–next). {To get AI to not pit (so they run out of fuel), to find their maximum fuel range, make strategy_base_pitting_cost = 1.5 or more.}
11) Pitting–use all 3 stategies together to get AI to pit like player. AI may pit differently if there’s cars. Depending on track len(roadcourses), proper pitting for 1x fuel may require different settings than 2x fuel.
strategy_lap_time_wear_loss:
strategy_base_pitting_cost:
Make AI pit by raising it (8-30 usually) or make AI stay out by lowering(1 or .xx)
strategy_lap_time_fuel_use_gain: lap time gain from low fuel:
Make AI pit by lowering it (1 or .xx), or make them stay out by raising it (5-8)
strategy_base_pitting_cost: time lost to stop & go pitstop. Normal is 50.0, can also use to make them pit (lower) or stay out (higher), trickier, I use other 2 1st.
12) ai_panic_decel: G’s of extra deceleration inducing panic. When AI panic they can either brake hard or change lanes, as high as teens (pta), normally 3, 4 if bumping.
13) ai_dlat_pad: How close AI will run side to side, AI to AI or AI to player? Gone as low 0.45 in gtp, 0.65 is standard. If you get a lot of side to side collisions, raise it. 0.85 is high, 1.45 didn’t make noticeable difference. Too high inhibits passing.
AI To AI
1) ai_wall_offset: How much contact is not felt by AI to AI. At 1.00, same as player contact. At 0.0, morph into each other. 20 looks like normal contact, & they bump each other w/o wrecking. ERR
2) ai_pacing_distance: ai_bunching_distance: 2.0 is standard, 1.75 to 4.00. A fast track had gtp pace @1.75, bunch at 3.0 because they were so fast they’d all come together out of T1. At roadcourses, depending on last turn & S/F line, field gets strung out. Space them to get as little mayhem in 1st half lap as possible.
3) ai_drafting_distance: AI to AI, or AI to player? 1.07 doesn’t usually cause problems or inhibit passing. If not much passing, lower to 1.05.
Miscellaneous
1) pace_speed_limit_mph: 70-75 for big fast tracks. 45-70 if track requires it.\
2) speed_limit_MPH(pit lane): Not real world. 70 or 75 is highest spotter will call, that’s what I go with. A narrow short pit lane requires slower speed.
3) [ pit_lane_0 (1) ]:
a) merge_from_pit_line_dlong: Make pit0 lp coincide to race lp at a dlong location (distance from s/f line) where AI can merge from traffic w/o causing slowndowns to cars or creating accidents, enter in track ini.
b) merge_to_pit_line_dlong: Make pit0 lp coincide to race lp at dlong location (distance from s/f line) where AI can merge to race traffic w/o causing slowndowns to cars or creating accidents, enter in track ini.
3) [ pit_lane_0 (1) ]:
c) merge_to_pit_line_length: Length in meters from/to the last chance for AI to enter pits. Can help get AI to pit if they are held up from getting to pit by another car, or if they run out of fuel after passing pit merge dlong.
d) pace_merge_from_pit_line_dlong:
These 2 lines are required for proper “full pace lap” compliance by pace car. If absent, pace car will immediately turn off track & green flag is waved.
Papy AI
papy_ai.ini:
{all series; Fix specific mods shortcomings [offline player]
{adjust if track folder adjustments come up short of wanted results}
A. [ driver ]
1) ai_strength_to_traction_circle: {lowered_1.0 to 0.8}
2) ai_strength_to_aero_drag:
{lowered_0.3 to 0.1, based on Lemans 67 actions}
3) ai_strength_to_aero_drag_spread: {lowered_4.0 to 2.0, based on Lemans 67 actions}
4) driver_roadcourse_to_traction_circle = 0.03
5) vehicle_aero_to_aero_drag = 0.13
6) driver_consistency_to_driver_commitment_dev = 0.07 {DEFAULT} {0.03} @5.0 kicks to desk, up to .15 ok ++= 0.13
7) driver_consistency_to_dlong_lookahead_dev = 0.25;{0.4} ?0.8 at one time? @9.0?
8) driver_consistency_to_dlat_lookahead_dev = 1.95;{1.50} ++= 0.95
9) driver_consistency_to_left_offset_dev = 0.58;{0.08} ++= 0.98
B. [ mechanical ]
*1) suspension_problem_roll_adj_coeff = 0.1
{value * susp. condition adjusts roll}
*2) suspension_problem_slip_angle_adj = 0.15
{value * slip angle * k is added to suspension coeff.}
C. [ physics ]
*1) alt_accel_k1:
{k1 for altitude control spring/damper – 0.085 original papy}
{gtp physics: 1.085 = bouncing cars; 0.005 = pop loose @bank;
stick @ 0.01_hi speed corner +14mph, .015 = +2mph @corner @ Lemans 67}
*2) alt_accel_k2:
{k2 for altitude control spring/damper – 0.28 original papy}
{1.28=bouncing cars; .03=bouncy cars @speed}
3)pitch_accel_coeff = 3.0: {value averaged_applied_tire_dlong_accel = radians of pitch}
{13.0,0.1}
*4) roll_accel_coeff = 4.0:
{value * dlat_accel = radians of roll} {10.0, 2.0, 0.9}
*5) yaw_accel_k1 = 0.02:
{k1 for yaw accel. spring/damper}
*6) yaw_accel_k2 = 0.2
{k2 for yaw accel. spring/damper}
{2.0 = no traction}
*7) yaw_accel_control_angle = 2.6
{slip factor above which accel spring/damper effect is reduced}
*8) yaw_accel_control_dropoff = 5.0 {dropoff factor above control angle}
D. CAR CLASS PARAMETERS
1) braking_efficiency_coeff:
2) nominal_max_accel:
3) nominal_traction_circle:
AI To AI Control1.
papy_ai.ini
a. driver_consistency_to_driver_commitment_dev = 0.03
b. driver_consistency_to_dlong_lookahead_dev =
{raised_1.0 from 0.4}
c. driver_consistency_dlat_lookahead_dev = 0.75
*__couldn’t find noticable change
__needs further review
http://www.nrtracks.com/nr2k3/make_ai_adjustments.html