> Have been in my first couple of online races and ran into what I believe is
> called warp anyone care to explain whats happening here........TIA
What is happening is that the connection between one or more player and
the server is not good enough to race really, the information isn't
flowing fast enough for the server to update the position and speed of
the cars and pass them on to everyone
That's the "Readers Digest" explanation , if you want a more tech
explanation I'll step aside and let someone else take over :-), I'm
still amazed we can race over the internet at all......
Beers and cheers
(uncle) Goy
http://www.theuspits.com
"A man is only as old as the woman he feels........"
--Groucho Marx--
Warp = what you see isn't necessarily what the other guy sees. Long winded
explaination follows.
In any online game the quality of the experience is dependent on 2
conditions: quality of the connect and cleverness of the programmers.
When I'm racing online against another player, either from next door or from
Austrailia, I am racing him on my computer and he is racing me on his
computer. There are actually 2 separate races going on which communicate
with each other in an attempt to make both computers display the same
thing. This is the problem at the root of warp.
Depending on the cleverness of the programmers a variety of information is
transmitted between the 2 computers i.e. position, vector, steering wheel
position, + plus anything else they can think of that will fit in the
information packet transmitted. This information is gathered into a packet
and transmitted out to the internet. The packet is essentially a snapshot of
the condition of the car at that moment in time; it is discrete rather than
continuous.
Once on the internet the individual packets attempt to travel back and forth
between the two computers. Not every packet travels the same route to you
(that is the nature of the net) so traveltime (= latency) can vary. Some
parts of the net that the packet travels through may have malfunctioning
equipment that can introduce large variations in latency and , in the worst
case, extinguish the packet completely. While longer latency is not
necessarily a good thing it has much less of an effect than consistency in
latency does. I would sooner race the guy in Austrailia if we happen to have
a solid, non varying connect between us than I would race the guy next door
if our connect was flakey.
When that packet arrives at my end it tells my computer what my opponents
car is doing at that precise moment and my computer positions his car on the
track doing the appropriate thing. While my computer waits for the next
update from him it does 2 other things: it sends out an information packet
to him telling his computer what my car is doing at that moment plus it
attempts to predict the path of his car by extrapolating from the last
several packets it received. The second activity is where the cleverness of
the coders really comes into play. If they get it right then the predicted
positon of the car will be at the same place as the next incoming packet
describes the car so no adjustment is required and the racing is smooth.
Generaly most online games can now get the above part right as long as
packets are received at regular intervals and in proper order. The problem
lies with the varation of latency (often called "quality") then. Lets say
computer one sends three packets to me; the second packet takes a longer
route and arrives after the third packet. Suddenly my computer had to cope
with a longer than usual interval between packets (from packet 1 to packet
3) plus it recives packet 2 after 3 so the position information is out of
order. My computer has to make some quick descisions about what to believe
(cleverness of coders again) and what to disregard. If the decisions are
wrong then you get warp as the computer attempts to place cars at a position
only to be told something else by the next packet. Cars can jump about
wildly under these conditions and online raceing can be difficult.
If packets get lost then my computer has to continue extrapolateing the
position of my opponents car from data that is getting increasingly old.
This is the sort of thing that , in extreme cases, can portray cars happily
racing through the grandstands. When a new piece of data finally arrives the
computer can update the real position of the car and sometimes really big
warps can take place. The cleverness of the programmers in dealing with
these issues is what separates the great online games from the also rans.
You'd think that NASCAR style racing on oval tracks would be easier to code
for than road style raceing since the path around an oval is fairly
predictable and the speeds vary much less than road raceing. However the
nature of oval raceing with big packs of cars traveling close to one another
means the margin of error is much tighter. An error of as little as a meter
can cause collisions when updates happen.
Note that the relationship between the two computers races may not be
symmetrical. I can be receiveing a steady stream of information packets from
your computer while you can be receiveing garbage from mine. On your
computer my car may be jumping around while on my computer your car may
appear steady, at least until new packets arrive from your computer arrive
telling me what you did to try to avoid my warping car. This asymmetry tends
to explain a lot of the "you did this! No I did not!" sort of arguments you
see after a wreck filled race (leaving aside those miserable creatures, the
intentional wreckers).
A Rule of Thumb: if only one person is warping on your screen then he's got
a problem; if everyone is warping then you have the problem. Not always true
in all cases but still very useful rule.
All you can really do about the situation is buy games that are known to
have solid online codeing. Make sure that your own equipment is up to the
challenge; a bad modem can make you unpopular in a hurry. Make sure your ISP
is solid in its packet handleing and has enough bandwidth available at the
times you want to play. If you have a problem then do yourself a favour and
bow out gracefully and go find another race where you can play. Finally
remember that its a game and try not to get too tense when something does
happen :)
Hope this helps
David