Salut, Mes premiers tests HappyBoom de jeu en réseau n'ont pas été très concluant. Le projectile n'était pas très fluide sur un serveur pourtant peu chargé (ça ramait autant avec un ping de 400ms qu'avec un ping de 100ms). Je suis alors renseigné. Le soucis venait de deux choses : - J'utilisais une connexion TCP (orientée connexion) : elle renvoie un accusé de réception à chaque paquet émis. - Tous les paquets *devaient* arriver. Or, certains paquets peuvent être ignoré (disons, que c'est pas grave s'ils se perdent en route).
La solution est donc d'utiliser une connexion UDP, et de marquer certains paquets comme "non-importants". J'ai pas mal galéré pour arriver à écrire le client/serveur, mais ça en vaut la chandelle. En gros, il faut réécrire TCP au-dessus d'UDP. Le minimum étant de renvoyer un accusé de réception à chaque paquet reçu (pour les paquets demandant un accusé de réception). J'ai donc écrit un client/serveur UDP minimaliste, et j'ai marqué les paquets "le projectile a bougé" comme optionnels. Et bien, je peux maintenant vous dire que c'est super fluide ! En tout cas, avec un serveur qui a un ping de 100ms, le jeu est aussi fluide que s'il tournait en local ! Pas mal non ? --- Si certains sont intéressés, je peux donner des détails techniques sur le code. Pour la suite, je vais peut-être utiliser la librairie "enet". C'est du python avec plein de threads ! (y'a a certains qui ont du serrer les dents en lisant cette phrase je suppose :-D) @+ Haypo
