GPL AI Global Hype System

Since it keeps coming up, here is a quick summary of GPL's Global Hype System (GHS). This stuff has been posted several times in various places over the years, but some of you may find it an interesting refresher.

The Global Hype System, as I call it, was Papy's way of adjusting the AI speed to match the player. The goal was that the AI would initially start out slowly when the player was first learning GPL, then would automatically increase their speed as the player got faster. This really was a cool concept; however, Papy's execution was flawed.

The main setting for controlling the overall AI speed is the NPT_Override setting found in the gplai.ini file. The original GPL package (and all mods since) have used a default setting of 0. This setting tells GPL to adjust the AI speed based on the average player lap times at that track over the last several sessions. The average player lap time is called the Normalized Player Time (NPT) and uses the last 10 laps I believe.

As the player's NPT decreases, the AI speed increases. So far so good; however, here comes the problem.

Inside the driver.ini file are the settings that control how fast the individual AI drivers are. One of these settings is Global_Hype_Scaling (GHS) which applies a scaling factor to the NPT. If you look at the driver.ini file for the original GPL release, you will find that Jim Clark has a GHS value of only .05 (that's point zero five). This low setting effectively makes Clark invulnerable to the NPT. So regardless of how fast or slow the player is, Clark will simply ignore it. During a race, Jim will pass you, wave his hand, and disappear around the next corner in a cloud of dust.

The fix for this rather ungentlemanly behavior is to set all AI driver GHS values to 1.00. That makes them equally sensitive to changes in NPT. I highly recommend you use this method for all mod driver.ini files; otherwise you will never fully control the AI speed. (As a warning, most mods and many GPL community contributed driver.ini files use GHS values other than 1.00.)

Even after doing this the AI will often be too fast for the average player. The method to more precisely control the AI speed is to change the NPT_Override setting from 0 which will turn the NPT system completely off. If NPT_Override is set to 1.00, the AI will run at a baseline speed. If NPT_Override is set below 1.00, the AI will speed up and if NPT_Override is set higher than 1.00, the AI will slow down. So the player can more precisely control the AI speed by manually editing the NPT_Override setting.

GEM+'s AI Speed setting automatically changes the NPT_Override setting for you so that you don't have to manually edit the .ini file. It does exactly the same thing though. (Note that GEM+ has a bug and will not edit the '67 F1 "mod's" gpla67.ini file; you have to manually do that.)

Finally, things have gotten much more complicated with the various mods. Each mod may now have it's own mod specific driver.ini and gplai.ini files. And mod specific driver.ini files may be placed into the track directories for even more precise control of the AI at each track. While providing better control over the AI, this also makes it more difficult to locate and edit the correct .ini file.