Jeu Reseau

K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016 - 27 mai 2005 à 20:37
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016 - 27 mai 2005 à 22:55
Bonjour, voila, je suis en train de developper un petit jeu en reseau, il s'agit du jeu de vaisseaux en 2D, c'est vu de dessus, les vaisseaux sont dans une map et ils se shoot les uns les autres. Bon tout va bien mais j'ai un petit souci avec les laggs. j'explique.

Prenons la place d'un client,
il reçois a chaque allez-retour de paquet les données concernant tout les vaisseaux sur la carte, admettons qu'il n'y ai qu'un seul autre vaisseau, a chaque fois que l'on reçois les données lui correspondant (vitesse, direction etc...) si on affiche le vaisseau à sa nouvelle position avec sa nouvelle vitesse, bien evidemment, il va sacader j'ai donc prévu un system pour palier à ce probleme, le vaisseau cherche a aller a sa position réelle avec un vitesse dépendant de la distance qu'il a a parcourir (un cinquantieme de l'explonentielle de la distance)
Le résultat donne un vaisseau qui se déplace de maniere fluide corespondant a peu pres à la trajectoire qu'a réellement parcourue le joueur. Mais la est encore le probleme, si par exemple, le joueur contourne un obstacleet que le ping de ce joueur ne suffit pas a envoyer assez de paquets pour decrire son déplacement lorsqu'il contourne, le vaisseau perçut par le client va traverser l'obstacle. J'ai fait pas mal de recherches sur les techniques employées dans les vrais jeux pour palier a ce propleme de latence, mais rien de satisfaisant. Si quelqu'un a des suggestions, je peu meme mettre une source a titre d'exemple sur le site pour bien comprendre le probleme

Merci de votre aide

K@zuya

2 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
27 mai 2005 à 20:44
envoi un packet dépend au touche du joueur

au key down et au key up

si le joueur eppui vers le bas (un packet)
quand le joueur arrête d,appuyer (une 2e packet)
mais tout le long de sa décente, il peut-être calculer, on connait sa vitesse de déplacement.


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
27 mai 2005 à 22:55
C'est une idée qui m'est passée par la tête des le debut, mais je l'ai vite bannie en ayant reflechi aux incohérences de déplacement entre la position réelle et la position perçue,

Si je joueur appuie à un instant, le paquet correspondant à cet appui sera reçut apres un temps m, le vaisseau va alors accelerer chez le client, lors du relachement de la touche, le paquet va être reçut apres un temp n, la différence |n-m| est quasiment toujours positive et cet interval meme petit causerai une différence de vitesse entre le joueur réelle et le vaisseau perçut, on peu alors imaginer de trajectoires derivant l'une de l'autre petit a petit jusqu'à être totalement différentes. Mais mais mais.... ça me fait penser que si j'envois les évenements liés aux touches + les positions, je pourrai alors corriger a chaque manoeuvre ce défaut, je fais un test.

K@zuya
0
Rejoignez-nous