Network demands in internet GPL:
1) Bandwidth
This isn't such a big problem, because there is a relatively small
amount of data (megs) that needs to be transferred (I don't know the
size of the data block of a standard IP-package, but I guess all that
could be wished for would fit in one single package!)
2) Ping times
This is the main problem as far as I see it. Ping times can be improved
upon by upgrading the internet, but the speed will NEVER get higher than
the speed of light. From one side of the world to the other with light
speed and back would yield a pingtime of around 100msecs. When you go
at 250 kmh, one thenth of a second is a very long time span, a lot can
happen during this time, for instance when the cars are really close, on
tenth is a huge amount of time, not to mention when to cars crash. In my
view an entire crash simulation can start and finish during one tenth of
a second! The ping times divide internet play in two:
1) The close area internet play
2) The remote connection internet play
These two categories must be treated in different ways, because the ping
time stake out the possibilities in a sim...
What can and cannot be included in internet play?
1) Close area
When ping times get down toward 50 ms or less, it is possible to
simulate the cars within reasonable accuracy, even the crashes. The
computers still have to "fill in" where packages are lost. This kind of
simulation would demand a flawless line with few glitches and delays,
typical of the LAN kind of quality... In this kind of connection and
simulation we would have:
Crashes based on realtime position (in this instance realtime is the
virtual realtime) and orientation. When every computer connected to the
race gets 20 packages a second this is possible to do. The crashes are
computed on the client machines. The simulation of the players car must
take place on each connected racers computer. The local computer still
has to simulate the car in between the IP-packages, but the cars
position won't deviate very much from the "true" position... The
computation of the physics of the other cars must take place on the
racers own computer. One would not need a absolute clock to do this, in
other words, one could do this without using a server...
When ping times get high, for instance 1000 or above (not atypical of
the wide net connection), one would need a computer to keep track of
time; some have fast connection, and some have devastatingly slow
connections. A server would send packages to all cars containing the
position on track and the absolute time stamp. Then the client computers
would have to fill in between so that the cars would behave reasonably
sensible. Crash detection is out of the question, so I guess Crash
detection needs to be turned off. Otherwise you would crash with a car
in a computer generated position and not the true position. The
computer would have to move the car onto the true position once in a
while (every 2 secs with a bad connection) adjusted with the absolute
timestamp. Defending the line (race line that is ;-) is out of the
question!
This whole lot sums up to one thing: The close area game need not a
server and can make crash simulations, the remote connection need a
server to supply the absolute timestamp and positions of the car
relative to this, and can never have crash simulations...
Anyway, that's how I see it! I think the problem is that the developer
uses a LAN network to develop the network play, whereas internet is
quite different. We need a way to race people on the other side of the
planet! This hasn't been pursued at all in my view by the games
devloppers!
---Asgeir---