Tout ce qui concerne la mise à jour 0.2.5.5
Comment qu'c fait?

Comment qu'c fait?

Postby TobyKaos on Fri Feb 13, 2009 13:13

Hello,

Je suis curieux et de plus j'ai commencé il y a un petit moment un jeu multi joueur de course shoot (Born To Run). http://artcardeus.free.fr

Bref j'ai déjà un peu réfléchit pour coder le multi mais j'aimerais avoir des compléments sur comment vous vous y êtes pris.

Je suppose que la physique des véhicules est exécutée chez chaque client et non sur le serveur qui effectuerais une sorte de diffusion de la scène physique.

Pour quelle stratégie avez vous opté pour transférer les informations client (position, commandes, collision)?
1/ Utilisation des commandes pour simuler les adversaires et position pour corriger si besoin.
2/ Utilisation de la position pour déplacer les adversaires et commandes pour les bruitages, visuel...

Si dans le cas 1 utilisez vous une temporisation des commandes du joueur afin de diminuer l'effet de lag? Genre on enregistre les commandes du joueur dans une file et on les envoie aussitôt au serveur. En local la commande enregistré ne sera effectué que 70ms plustard par exemple(cela ne se verra pas).

Avez vous aussi un système d'update à temps variable des informations selon que le joueur se retrouve tout près ou non d'autres joueurs?

Comment gérez vous les dégâts entre deux véhicules? Y a t il un système de question réponse pour se mettre d'accord sur une collision ou bien le premier qui détecte une collision le transmet et elle a lieu quoiqu'il arrive?

Voilà voilà si vous n'y répondez pas je comprendrais.

Thibaut.
TobyKaos
 
Posts: 28
Joined: Fri Jan 11, 2008 14:23
Location: France
High Score: 0
Ranking: 0

Re: Comment qu'c fait?

Postby Etienne on Fri Feb 13, 2009 14:24

TobyKaos wrote:Je suppose que la physique des véhicules est exécutée chez chaque client et non sur le serveur qui effectuerais une sorte de diffusion de la scène physique.

Oui sinon ça serait dur de jouer !

TobyKaos wrote:Pour quelle stratégie avez vous opté pour transférer les informations client (position, commandes, collision)?
1/ Utilisation des commandes pour simuler les adversaires et position pour corriger si besoin.
2/ Utilisation de la position pour déplacer les adversaires et commandes pour les bruitages, visuel...

On envoi les 2, commandes et position.

TobyKaos wrote:Si dans le cas 1 utilisez vous une temporisation des commandes du joueur afin de diminuer l'effet de lag? Genre on enregistre les commandes du joueur dans une file et on les envoie aussitôt au serveur. En local la commande enregistré ne sera effectué que 70ms plustard par exemple(cela ne se verra pas).

70 ms de lag sur ta propre F-jet rendrait le jeu injouable, donc non on ne retarde pas les entrées joueur. Cette technique est parfois utilisée, mais dans ce cas il ne faut pas dépasser genre 15 ms. Nous voulons éviter à tout pris cette solution, qui diminue la réactivité du contrôle en local.

TobyKaos wrote:Avez vous aussi un système d'update à temps variable des informations selon que le joueur se retrouve tout près ou non d'autres joueurs?

Non, on pourrait, mais de toute façon ce qui compte c'est quand on est dans le pire des cas, c'est à dire au départ quand tout le monde est proche.

TobyKaos wrote:Comment gérez vous les dégâts entre deux véhicules? Y a t il un système de question réponse pour se mettre d'accord sur une collision ou bien le premier qui détecte une collision le transmet et elle a lieu quoiqu'il arrive?

Les collisions sont calculées en local sur chaque machine, mais les race-over ne sont déclenchés que sur la machine du joueur puis sont envoyés aux autres. Il reste à transmettre régulièrement les infos de dégâts aux autres joueurs afin de corriger les incohérences qu'il peut y avoir actuellement.
Etienne - Ai-Wave / Game Seed Developer
Image
Image
Image
Etienne
User avatar
 
Posts: 849
Joined: Thu Jul 26, 2007 17:51
Location: Lyon
High Score: 98915
Ranking: 59
Profile: Zorglub

Re: Comment qu'c fait?

Postby TobyKaos on Fri Feb 13, 2009 14:38

Merci pour d'avoir pris le temps de me répondre.
Il est bien difficile de coder un multi joueur surtout pour des jeux ou la précision de la position des joueurs est primordiale.

Quelles sont selon vous les pistes pour réduire au maximum le lag? Je demande car je n'ai pas un débit de fou (2Mo) et ces dernières soirée l'on ma souvent dit que je laggué.
TobyKaos
 
Posts: 28
Joined: Fri Jan 11, 2008 14:23
Location: France
High Score: 0
Ranking: 0

Re: Comment qu'c fait?

Postby Etienne on Fri Feb 13, 2009 14:53

Le lag et le débit ne sont pas liés.
Tu peux avoir un bon débit et un mauvais lag, il suffit que tu traverse plein de routeurs pour avoir beaucoup de lag. De plus, les fournisseurs ADSL en France ne proposent pas tous les mêmes prestations à ce niveau (à débit égal, le lag peut être plus grand chez un fournisseur que chez un autre).
Par exemple, si tu es chez Free, tu peux choisir entre plusieurs mode pour ta connexion : Standard, Sérénité, fastpath, ou patate (si ta connexion est suffisament bonne).

Par ailleurs, dans NSR, les messages réseaux reçus sont traités avec l'affichage, donc si l'affichage rame, ton lag mesuré va être grand (le lag induit par l'affichage s'ajoute au lag induit par la transmission des paquets réseaux).

Un débit de 1Mbits en dl est suffisant pour recevoir les infos de 16 véhicules. Mais bien souvent c'est le débit en upload qui pose problème. Si ton upload est trop faible, tu n'arrivera pas à envoyer les infos de ta f-jet à tous les autres joueurs suffisamment souvent.

Une distance faible n'est également pas toujours un garantie de bon ping entre 2 joueurs. Par exemple, les liaisons avec les US sont très rapides, donc c'est assez facile d'avoir un meilleur ping avec quelqu'un de l'autre coté de l'atlantique qu'avec quelqu'un au fin fond de l'auvergne qui est à 4 Km du DSLAM.

Conclusion : tu ne peux pas faire grand chose pour diminuer ton lag, à part mettre tes options graphiques au minimum ou déménager au dessus d'un DSLAM.
Etienne - Ai-Wave / Game Seed Developer
Image
Image
Image
Etienne
User avatar
 
Posts: 849
Joined: Thu Jul 26, 2007 17:51
Location: Lyon
High Score: 98915
Ranking: 59
Profile: Zorglub

Re: Comment qu'c fait?

Postby pinpin2lux on Fri Feb 13, 2009 15:11

Etienne wrote:Une distance faible n'est également pas toujours un garantie de bon ping entre 2 joueurs. Par exemple, les liaisons avec les US sont très rapides, donc c'est assez facile d'avoir un meilleur ping avec quelqu'un de l'autre coté de l'atlantique qu'avec quelqu'un au fin fond de l'auvergne qui est à 4 Km du DSLAM.

8)
Mieux vaut ramper dans le bon sens que courir dans le mauvais
Image
pinpin2lux
User avatar
 
Posts: 194
Joined: Tue Apr 08, 2008 18:12
Location: Tours
High Score: 240447
Ranking: 19
Profile: schupin

Re: Comment qu'c fait?

Postby TobyKaos on Fri Feb 13, 2009 15:36

Oki,

Niveau ralentissement je n'en ai aucun même tout à fond en 1440x900 (quad core q6600 + Asus 8600GTS montée sur gigabyte p35 dr4 rev2).
Donc je suppose que les autres joueurs me voyaient lagguer à cause de mon upload car pour ma part je ne les voyais pas lagguer. (je suis à 300m du dslam au fin fond de la campagne normande)

Reste à voir comment résoudre le lag destructeur.
TobyKaos
 
Posts: 28
Joined: Fri Jan 11, 2008 14:23
Location: France
High Score: 0
Ranking: 0

Re: Comment qu'c fait?

Postby Etienne on Fri Feb 13, 2009 16:57

Tu es à 300m du DSLAM et tu n'a que 2 Mbits en download ??? Tu as combien en upload ? Chez quel fournisseur es tu ? (je m'en doute un peu mais bon :mrgreen: )
Etienne - Ai-Wave / Game Seed Developer
Image
Image
Image
Etienne
User avatar
 
Posts: 849
Joined: Thu Jul 26, 2007 17:51
Location: Lyon
High Score: 98915
Ranking: 59
Profile: Zorglub

Re: Comment qu'c fait?

Postby TobyKaos on Fri Feb 13, 2009 17:22

Je suis chez free mais au fin fond de la campagne. Même si je ne suis qu'à 300m du dslam on peut pas avoir mieux ici. pas de total dégroupée, ni tv.
en upload je sais pas trop mais j'upload a 20ko/sec pour 1.96Mo en dl

Bref cette connexion me suffit pour bosser (msn + svn + filezilla ...) Mais pour le reste c'est juste.
TobyKaos
 
Posts: 28
Joined: Fri Jan 11, 2008 14:23
Location: France
High Score: 0
Ranking: 0

Re: Comment qu'c fait?

Postby Etienne on Fri Feb 13, 2009 20:43

Effectivement 20 Ko/s en upload c'est juste. Au delà de 8 joueurs tu devrais commencer à lagger (il faut 2 Ko/s par joueur distant).
Etienne - Ai-Wave / Game Seed Developer
Image
Image
Image
Etienne
User avatar
 
Posts: 849
Joined: Thu Jul 26, 2007 17:51
Location: Lyon
High Score: 98915
Ranking: 59
Profile: Zorglub

Re: Comment qu'c fait?

Postby TobyKaos on Mon Feb 16, 2009 17:01

Et oui et après vérification pas de réglages du ping possible pour les non dégroupés. Donc même avec une ligne à 360m du dslam avec 5 db d'attenuation c'est juste pour jouer.
TobyKaos
 
Posts: 28
Joined: Fri Jan 11, 2008 14:23
Location: France
High Score: 0
Ranking: 0



Return to Mise à jour 0.2.5.5


Who is online

Users browsing this forum: No registered users and 1 guest

cron