Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1319 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Probleme de conception réseau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de conception réseau

n°1955632
henker92
Posté le 06-01-2010 à 18:50:40  profilanswer
 

Bonjour a tous. Afin d'avoir le plus de réponse possible, je copie ici mon message posté sur un autre forum, en esperant avoir des réponses !
 

Citation :

Bonjour a tous.
Si certains ont déja lu quelques messages de moi, ils savent que je suis actuellement avec un groupe de projet de 4 personne, en train de coder un ShootEmUp en multijoueurs. Les autres ne le savaient pas, ils le savent maintenant  
 
Cela dit, nous rencontrons un énorme probleme de conception réseau en ce moment, et nous bloquons un peu.
 
Actuellement, nous possédons un ShootEmUp en 2D, qui marche, avec des ennemis ( maximum de 1000), un boss, des projectiles, des trajectoires, des positions, tout qui va bien.
Notre réseau marche de même en local ( et sur deux machines d'un réseau local), certes avec quelque ralentissement du jeu, mais il marche ( sans doute parceque nous avons choisit d'utiliser le protocole TCP et non UDP, mais la n'est pas le probleme).
 
Actuellement, les envois sont petits. Nous envoyons un string contenant l'appui des touches par le player, traités a l'arrivée comme si les touches étaient appuyées. Cependant, a cause du lag, il se peut qu'un des joueur evite un ennemi, mais que l'info arrivant plus tards sur l'autre soft, la vie soit décompté.
 
Nous nous demandions alors comment marchaient les jeux plus évoluées, et si elles envoyaient directement les positions ( puis les affichaient) réduisant ainsi le nombre de calculs. Mais chez nous, avec 1000 ennemis ( soit 2 int par position, 2000 int *4 bit, on arrive, RIEN que pour les ennemis a 8Kb envoyés/recus par update. Nous aimerions avoir un minimum de 30fps, ce qui ramene a 240Kb en envoi/reception, ce qui me parait énorme ( et encore, on envoi pas les positions boss/player ni les projectiles.
 
Auriez vous une idée de comment on pourrais s'en sortir svp ?
(Dans le cas contraire, seriez vous au courant de la méthode qu'utilisent les jeux plus évolués pour envoyer leur paquets ?)

mood
Publicité
Posté le 06-01-2010 à 18:50:40  profilanswer
 

n°1955905
MagicBuzz
Posté le 07-01-2010 à 17:36:09  profilanswer
 

outre la compression, j'ai deux trucs à dire :
-> Les énemis, c'est quoi ? Des trucs générés par le jeu ? Ou des players ?
Si ce sont des trucs générés par le jeu, alors c'est bien simple, vous n'avez ABSOLUMENT pas à communiquer cette information par le réseau !!!!!!!!!!!
=> Le client "maître" crée un SEED pour toutes ses fonction RANDOM, et le communique à tous les clients "slave". Ainsi, les mêmes séries RAND() seront générées quelles que soient les machines.
Donc ça vous fera 240 Ko de moins à échanger pour rien.

 

Ensuite, les lags, ça arrive toujours, donc deux choses :
=> En cas de désynchronisation (vérification que le client génère le même rand que le serveur à interval régulier), il faut planter le client, ou tenter de le resynchroniser complètement (renvoi du seed après lui avoir envoyé l'ensemble des positions de tous les éléments du jeu - obligé de mettre tout le monde en pause pendant ce temps)
=> Vous ne devez envoyer la position que des joueurs, et ne pas calculer les collisions sur les autres clients : vous vous contentez d'afficher le résultat des calculs des machines clientes dans ce cas.

 

Logiquement, vous allez passer à quelques ridicules Ko par seconde, sans même vous poser la question de la compression.

 

=> Le coup du SEED, je le sors d'un vrai jeu qui existe vraiment et qui fonctionne très bien. Il y a peut-être mieux, mais en tout cas, ça a le mérite de très bien marcher et d'être éprouvé http://www.openttd.org/en/


Message édité par MagicBuzz le 07-01-2010 à 17:40:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Probleme de conception réseau

 

Sujets relatifs
Problème avec JSCalendar et overflowProblème de redirection 301 avec paramètres
Petit problème avec des boutons radiomenu déroulant - problème positionnement bloc
Problème de transparence bitmapprobleme de choix dans une base mysql a partir d'une date
Problème hauteur CSS[JAVA]Probleme affichage adresse memoire
[RESOLU] Probleme avec AJAX Star Rating sur IEProbleme d'affectation de flotte
Plus de sujets relatifs à : Probleme de conception réseau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR