The
unrecoverable synchronization problem (
aka “Ghost”) should be server and game net code related.
Although from the server side it might seem the same problem, in truth a
disconnection is one thing, a “
ghost” is another.
In a “disconnection” both client & server lose the connection, this can happen for several common reasons (unplugged cable, ISP failure, power failure, CTD and so on).
With a “ghost” the client doesn’t lose the connection and continue to ping successfully the server (although for result sake it doesn’t matter much since the server is the “boss”). On our game terms; at the client side the virtual racer loses the return information from the server (other cars positions/times and with it the race end flagging) as the server no longer accounts for him, but his lap times/laps count on his machine, his race session doesn’t finish (like it would in a common disconnection).
________
The history of this problem leads me to view it as a shortcome of the game net code and how it handles
packet loss & other
synchronization problems.
There has been past Race game versions without the problem (
previews patches), but it was reintroduced with the latest
Race On patch (
but not so serious how it was when Evo came out for instance).
Packet loss is typical of some type of connections (
heavily shared connections like cable for instances) mainly at peak hours, so games should be able handle well this kind of problems (
to a point obviously)…
In the past I’ve run many tests regarding this problem, especially when I become a “ghost” at the end of a 4hrs Race Evo event… I had to know if it was a problem with my connection.
My connection to the INET is very simple…
My Network card is connected to my DSL router by a 100MB cable. My DSL line connects to the local DNS server, form than on it is heavily shared like everyone else.
- I’m at an event…
- I unplug my cable from the router…
- Race ON keeps racing for a few seconds although the other cars disappear.
- After 5 seconds I connect the cable back on…
- Race On recovers and “plants” me in “correct” place (server version is what counts).
- If the cable stays unplugged for a “long” time, let’s us say, above 5 seconds (not true I’ve managed to be unplugged for longer times, I’m just using “5 seconds” as an example)…
- The in game message of “Session lost” appears at the top and one is booted out to the game menu.
The above is a typical connection failure (
for whatever reason, in this case I took out the cable myself) very common in any INET game…
________
Situations leading to a “
ghost”;
all empiric and from more than a year of being aware to the problem. The intention isn’t to say it is “like that”, the intention is to help track it down…
- Commonly a “ghost” is more likely to be “created” when someone with synchronization problems leaves the server…
For instances, someone has a bad ISP day, and is “lagging” at an event. For whatever reason, maybe because of the “lag” itself (directly or indirectly), this someone leaves the server. He presses esc. for above 1 sec and goes to the pits (now the “weirdness” of Race); as it is known, for a certain time he is the race leader, he shows has DNF, but he moved to the first place… If he drops the server at that point and at same time he isn’t fully synchronized; a “ghost” can be created. Normally it is the guy who would arrive first to the next check-point where the other racer true position would be updated (unfortunately or not, usually it is the race first at that point).
- I’ve seen a ghost to be created in situations whit very close racing…
In a way similar to the previews example; there is a certain time when the server does a general classification update because someone dropped the server (
a “regular” disconnection, ISP failure or like described previously for instances), it sends the information for the clients. The clients are racing very close (
let’s say under a second), some or just one don’t have a “perfect” connection at that exact time… A “
ghost is born"…
The racers unaffected suddenly stop seeing the other car, the “
ghost” itself doesn’t see anyone… but his lap times count on his machine, if he waits parked by the side of the road he might even get blue flags…
________
Reiterating again, above all what inclines me to a game INET code problem/
glitch is the simple fact that this same game can handle me being unplugged for 5+ seconds well.
When the cable goes back in, it “plants” my car wherever… good
Someone “observing” from outside will see my car disappear, than reappear a few meters in front from my previews position 5+ second after ….
So
the game can handle no response from client for 5+ seconds…
but can’t handle a punctual synchronization problem at certain time and creates a “ghost”.
Even if we assume that if one had a 100% quality INET connection that wouldn’t happen (
the “ghost” that is), like when playing on a LAN, that isn’t a good excuse since
packet loss is very common and all INET games have to be capable to handle them (
this capable isn’t equal to saying it should “favor” people with connection problems like some games do). At same time let’s not jump to the
SimBin throat since INET racing isn’t equal to INET shoot-em-up :wink:
This all things remembers me how in the old days a few game companies would test that network game playability with
in-house tcp-ip networks…. Than the game came to the market, the users tried to play it over the INET and it was completely unplayable…. Asked for a solution, got the
blunt answer, “
the NET part of the game works very well at our local network (intranet); the problem is with the quality of your connection”… yes, me and the other million