Internet online racing
with pings larger than 1000 ms
and collision detection on
"Offline racing, but online"

As you all know you get pings around 1000 ms to the other side of the world over the internet. You also know that more bandwidth wont solve this problem. What we need is the possibility to get dedicated bandwidth, but not even that may solve the problem of an electronical signal needing time to travel half the globe. This makes online racing troublesome if we want to race globally within the near future, which we of course want. 

First we had a proposal were we just turned off collision detection, like the ghosts in F1RS. Some liked this idea and some didn't. We would all like to have collision detection turned on, but this is very much more difficult to implement in a racing simulator, at least that was what we thought :o). It turns out it's only more difficult, not very much more.

Byron Forbes, Australia, was one of those who really wanted collision detection on and I've had some really nice discussions with him on this matter. I've also discussed a lot with Ian Lake, Australia. During these discussion we realized one very important factor in all this - It's not important for the AI cars to have the exact same position as the real players they are representing. We realized that it would be quite possible to simulate online racing so that the player would perceive it as if he was driving on a LAN. We discussed what this could mean in a lot of different racing situations and the result of these discussion is a proposal to a multiplayer feature which allows for pings between players to be well over 1000 ms, and here it is: 
 

The rules of larger than 1000 ms pings multiplayer online racing (it's like offline racing, but online): 

0. This is not a rule, but just a description of the basics. The general idea here is to make the AI on your computer to work in conjunction with incoming packets from the other drivers computers so that their car appears in your sim in approximately the same position as their real position. It's a kind of offline racing, but online. 

1. You can collide with the AI cars in your own simulation (Collision detection is on). 

2. The AI cars in your simulation are trying to have the same position as the real sim racers cars. This will be done without any unrealistic behaviour from the AI at all. No warping whatsoever. Each real player is represented by one AI car in your own sim. 

3. The first real player who crosses the finish line wins, hence the player with the fastest race time wins the race. We have a solution to the synchronization problem, which is actually very simple once you realize that the synchronization doesn't have to be very good. 

4. You get your position in relation to the real player in front of you as a time (ex. +0.543 Ian Lake), upto three times per lap (split times) depending on the track length. Note, this is the time to the real player, not the AI representing him, so you could actually be in front of the player's AI car and still get a positive time. For example I could of just passed Ian's AI car, but still get a positive time to Ian, but only if he is actually in front of me. 

5. You get your position in relation to the real player behind you as a time (ex: -1.367 Byron Forbes), upto three times per lap (split times) depending on the track length. Note, same as the note in 4. 

6. An AI behind you will not try to pass you until the real player (represented by the AI) is at least 0.5 seconds (probably not the best choice of time, perhaps a full second is better?) in front of you, unless you make a mistake which makes it very easy for the AI to pass. For example at the start, or a real driver going off the track. Simply put - The AI are allowed to do "easy passing". 

7. The AI to AI racing in your sim is non existing, since they just try to show where the real players are. The AI cars will seem to race each other for position, though. This will dramatise the simulation for the better. 

8. Bumping into an AI wont hurt the AI, only you will be hurt, thus the real player represented by the AI will not be hurt either. But, since you probably made a mistake, the AI car representing you in all the other players sims will try to make a similar mistake, which could hurt some of the real players car. 

9. The AIs in your sim only change place with each other when the real player is 0.5 seconds in front of the other real player, the same time unit as in rule 6. You will see fighting between the AI, though (see rule 7). 

10. When an AI has to pass a real player to keep up with the real player it is representing, then the AI will try to pass as good as AI can pass. The AI will enter and exit corners better than the car it's trying to pass, because it's going at a higher pace, so slipstreaming and outbraking will be common. There will never be any unrealistic top speed or other unrealistic behaviour from the AI cars. 

11. When it's time to make a scheduled pit stop you will get noticed in good time, but if you dont press the pit button to tell you dont want to pit your car will be forced into the pit by the sim. You will also have to do this in good time before the pit entry or you will still be forced to pit. If your "time to pit"-lamp is on when you pass the pit entry the sim will take over your car and force you into the pit lane. Unscheduled pit stops has to be requested in advance with a press of the pit button. When your "time to pit" lamp is lit you may enter the pit lane. This rule is so the AI car representing you in all the other players sim will pit when you pit. 

12. If a real driver makes a mistake then his AI makes a similar mistake as soon as possible. Say you make a mistake entering turn 1, then the AI representing you makes a similar mistake exiting turn 1, entering turn 2 or exiting turn 2, etc, depending on current pings. So if current pings are around 2000 ms your mistake wont reach the other players until turn 2. 

13. At the start the AI drive like gentlemen, but after the first corner the gloves are off and the racing is on. 

Extra ideas not needed for the thing to work: 

E1. The AI follow some prerecorded racing behaviour from each player. This behaviour is taken from an offline race which the player must have done before the online race. During the online race the AI car, representing the real player in the other sims, try to keep the real players pace by following the prerecorded racing behaviour. This is done without warping or other unnatural driving from the AI. 

E2. The sim will force you to use the same qual and race setup as you used in your offline race, which you did to record your racing behaviour. We are not very sure about this rule (12), though :o). This rule of course needs E1 to work. 
 

This proposal doesn't need a server. All players can connect to all others via for example Kali. Kali will only be used for the simulator to get the ip-addresses of all the other players, after that the simulators wont need Kali. A 28.8k modem should have no trouble sending 29 ip-packets and receiving 29 ip-packets, all within one second, which is all that is needed. Two or three seconds isn't actually a problem either :o). 

Getting the position of another real player in worst case every third second isn't a problem, since all the AI does is to increase or decrease it's pace to be approximately where the real players are. 

The proposal works of course better with a dedicated server, but it's not a must. 

Now go and implement it into your racing sims, so I can beat my Australian friends silly :o).



This page is only visited  times.