GPL Online
Section I : Communication
Tout d'abord: comment cela fonctionne-t-il?
GPL fonctionne avec 36 "gameticks", c'est à dire que l'état de la simulation (les 18 degrés de liberté de chaque voiture correspondant à la position, l'enfoncement des suspensions, les vitesses de rotation des roues etc.) est transmis à l'écran 36 fois par seconde , ceci correspondant aux 36 fps dont on dispose quand tout va bien. Si on joue online le jeu tournant sur un PC "client" transmet l'info de position tous les 3 gameticks au serveur. A son tour le serveur envoie au client l'info de positionnement de ses adversaires. Pour que le mouvement des autres joueurs n'apparaisse pas saccadé, le jeu réactualise la position des adversaires à chaque gametick intermédiaire au moyen d'un algorithme de prévision basé sur les infos précédentes.
La difficulté est qu'il faut du temps pour que les infos passent de l'ordinateur client au serveur et vice-versa, bien plus que 3 gameticks dans la plupart des cas, du fait qu'elle doit passer par les différents gateways et routers de votre provider et les providers "backbone" (les "hops" sur la "route"). Il faut néanmoins que votre jeu reste synchronisé avec le serveur et les autres joueurs. En réalité ce n'est pas vraiment le temps de transfert de l'info qui pose problème, le serveur peut composer avec le lag et compenser en recalculant les infos envoyées aux joueurs de telle sorte qu'elles soient à jour à leur arrivée. Mais pour cela il faut que le lag soit constant, ce qui est rarement le cas.
Quand l'info ne passe pas ou qu'elle est retardée, le serveur ne peut pas envoyer l'info aux autres joueurs car il ne l'a pas reçue à temps. Il n'envoie pas non plus au joueur les infos sur les adversaires (contrairement aux serveurs NR2003, qui continuent à alimenter le client même sans nouvelles de lui, ce qui rend difficile la détection du problème). Qu'est-ce qui ce passe alors? Chez les autres clients, GPL utilise sa boule de cristal et calcule la position par prévision et continue à afficher le joueur durant maximum 1 seconde en attente d'une nouvelle info de position. Passé ce délai le joueur disparaît jusqu'à ce que sa connexion soit rétablie. Quand une info fraîche arrive le joueur est affiché et fait donc soit un bond (plus ou moins important suivant la précision de la prévision et la durée de l'interruption) soit une réapparition soudaine. Chez le client c'est pareil, les adversaires continuent a être affichés par prévision, etc.
La synchronisation entre le serveur et le jouer porte sur deux aspects : le chronométrage et la position sur la piste. La partie position peut se re-synchroniser soit parce qu'après un certain retard vos infos de position finissent par arriver, soit parce qu'il y a eu perte d'une ou plusieurs infos mais que les suivantes passent sans problème. La partie chronométrage peut aussi se re-synchroniser sauf si, pendant l'interruption, vous coupez la ligne d'arrivée. Avant la version 1.1.0.10 ce cas conduisait à une déconnexion, maintenant vous restez connecté mais le jeu ne compte plus vos tours et vous devez être pointé a la main après la course.
Si la connexion est vraiment coupée le joueur est considéré comme déconnecté après un certaine temps. L'info est alors passée aux autres joueurs. A l' écran "Race week-end" le joueur peut alors voir qu'il y a un problème : il ne voit plus personne sur la piste et il n'y a plus de chat. En voiture c'est plus clair, surtout si on affiche les indicateurs de qualité de connexion (les 3 barres rouges en haut à droite de l'écran, qu'on affiche en tapant alt-m) : les autres voitures disparaissent et la barre rouge "Quality" (Q) se remplit. Quand elle est pleine l'écran montre furtivement du panneau de neige et retombe sur le panneau "multiplayer" de GPL. Pendant les qualifs, le joueur peut se reconnecter mais après que le jeu soit passé à la phase "Transition" toute connexion est impossible.
Voici la description d'une disco, phénomène plutôt rare de nos jours. Les autres pannes (image qui se plante, retour à Vroc, écran bleu, etc.) sont plutôt des problèmes liés au software (incompatibilités, plantages etc.) qu'à la connexion elle-même.
Problèmes de connexion connus:
Warp / lag / spikes:
problèmes de congestion quelque part entre votre ordinateur et le serveur,
résultant en une variation soudaine du temps de transfert des infos
entre serveur et client. L'outil PingPlotter (http://www.pingplotter.com)
vous permet de visualiser l'état de la connexion entre vous et le serveur
et de voir d'où vient le délai. Si cela persiste après
optimisation de vos paramètres de modem (voir plus loin) à part
jouer quand il n'y a pas beaucoup de trafic, se plaindre à son provider
ou en changer il n'y a pas grand chose à faire.
Cas particulier : si il y a plus de joueurs connectés que ce que peut
supporter la connexion du serveur, la barre rouge "Latency" (L)
indique un niveau élevé, peut être suffisant pour que
les joueurs ne se voient plus entre eux. Le problème se résout
lorsque quelques joueurs se déconnectent.
Disco: coupure totale de la connexion, soit lors d'un plantage du serveur, soit lorsque la limite de temps de connexion autorisée par le provider est atteinte. C'est le cas pour certains provider, si vous êtes confronté à ce problème vous pourriez être tenté de sortir de la course et de vous reconnecter juste avant la fin des qualifs pour maximiser vos chances de participer à toute la course. Mais il faut savoir que dans ce cas en tant que client connecté par modem vous recevrez une nouvelle adresse IP et que de ce fait le serveur vous verra comme un nouveau joueur, et ne reconnaîtra pas votre temps de qualif réalisé précédemment. Il vaut mieux donc se connecter le plus tôt possible après le début des qualifs et esperer que ça tienne.
Skew/Clock smash:
Même s'il n'y a pas d'interruption dans votre connexion, il peut arriver
que votre jeu perde la synchronisation du temps avec le serveur. Il est normal
que la barre rouge "Skew" (S) soit de temps en temps un tout petit
peu en dessous ou au dessus du milieu qui figure le niveau zéro. Votre
jeu tend alors à s'accélérer ou à ralentir légèrement
pour rétablir la synchronisation. Quand ce n'est pas suffisant le serveur
impose "son" temps au client. La barre S se remplit, l'image clignote,
vous recevez un coup de FF dans le volant et vous pouvez même être
projeté le long de la piste, bref, vous recevez un "clocksmash"
un peu comme Martin dans sa De Lorean.
Quand ça arrive de façon répétitive (montée
de la barre S, puis clocksmash, etc.) ou que vous recevez un coup de lag en
sortant des stands suivi par la déconnexion après exactement
un tour sur la ligne d'arrivée c'est qu'il y a un problème dans
les paramètres du core.ini à la section communications, soit
chez vous (si vous êtes le seul touché) soit sur le serveur (si
ça affecte tout le monde). Souvent il s'agit d'une erreur de synchronisation
de VROC et se reconnecter après avoir démarré le jeu
offline suffit a résoudre le problème. Voir aussi section core.ini
Time out: votre jeu et le serveur ne sont pas arrivés a se synchroniser. Peut être le port TCP/IP que le serveur veut vous attribuer est-il barré par votre firewall, celui de votre provider ou le firewall coté serveur. Il est normal pour certaines configurations de recevoir un time-out en se connectant via Vroc après s'être connecté depuis le jeu juste avant et visa versa, il suffit d'essayer de nouveau dans ce cas.
10054: Error detected on network: quand ça vous arrive en essayant de vous connecter a un serveur, ce serveur s'est plus que probablement planté après son enregistrement sur Vroc (problème par exemple avec la piste installée sur le serveur). Quand ça arrive alors que vous êtes déjà connecté il peut s'agir d'un problème sur le serveur, sur votre modem ou router, ou dans le cas d'une connexion ADSL d'un problème de changement d'adresse IP forcé par votre provider.
B/W Mismatch: incompatibilité de bande passante entre le serveur et le client. Il s'agit d'un problème d'installation ou de paramétrage du patch BW, voir section patch BandWidth.
Cannot resolve
host address: en se connectant directement depuis le jeu sans passer par
Vroc vous avez fait une erreur dans l'encodage de l'addresse IP.
| < Section précédente | Index | Section suivante > |
Creé par Jan Verschueren, adaptation française par Danny Charlier.