IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Physique Discussion :

Physique dans un jeu Client/Serveur


Sujet :

Physique

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Physique dans un jeu Client/Serveur
    Bonsoir,

    J'ai un petit problème de conception pour un petit projet que j'aimerais réaliser.

    Contexte
    J'aimerais développer un jeu vidéo multijoueur (genre du 1v1) en arène.
    Un truc bien simple.

    Problématique
    Pour éviter la triche (modification des paquets envoyés au serveur par exemple). Je voulais faire en sorte que ce soit le serveur qui calcule tout pour les clients :
    - Valeurs des sorts
    - Vie
    - Déplacements
    - Collisions avec le décors (et on touche le problème du doigt).

    Questions
    1. Est-ce pertinent de mettre mon moteur physique coté serveur, qu'il envoie les informations sous forme de vecteur de déplacement aux différents clients toutes les X millisecondes ? (par exemple)
    - Les clients ne seraient que des moteurs graphiques / évènement E/S finalement.

    2. OU, Je pensais faire en sorte de mettre un moteur physique pour le client et le serveur :
    - Le serveur calcul si les déplacements qu'on lui donne sont bons (les corriges au besoin)
    => Si il corrige une trajectoire il renvoit la nouvelle au client défectueux (le tricheur)
    - Le client a aussi son moteur physique pour que les mouvements soient plus fluide et que le jeu soit moins groumant en bande passante.

    Conclusion
    Si l'idée _la conception_ est bonne : Solution 1 ou 2 ?
    Sinon : que me conseillez vous ?

    Je suis vraiment bloqué par ce problème parce que je n'arrive pas à choisir un moteur physique en fonction de ça :/

    Merci de votre aide en tout cas.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tout ce qui est physique en réseau est très bien expliqué par http://gafferongames.com/, je te conseille de tout lire.

    Je n'y connait rien mais d'après ce que j'ai compris les jeux en réseaux aujourd'hui choisissent ta solution 2 :
    - l'état du jeu dupliqué entre client et serveur
    - prédiction des autres joueurs pour contrecarrer la latence
    - le client considéré comme malicieux donc on envoit que son input, et l'état serveur prime sur le sien
    - l'état local peut rollbacker ses changements locaux pour appliquer ceux du serveur si un autre joueur a été mal prédit
    - timestep fixe pour la physique, interpolation de l'état physique pour la partie graphique
    - la physique doit être répétable sous peine de desynchronisation entre les états sur les différentes machines, à moins que le serveur envoie son état complet mais c'est souvent impossible
    - du coup les calculs physique en flottants peuvent être dangereux...

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse.
    C'est bien ce qu'il me semblait, par contre ça va me faire faire deux fois le même travail si je gère pas bien ma séparation moteur physique/moteur graphique.

    J'ai pas encore lu ton lien, mais je prend. Je lirais ça quand j'aurais le temps, c'est toujours un peu plus long de lire de l'anglais pour moi :p

Discussions similaires

  1. sémaphore dans un exercice client/serveur
    Par ggwtf dans le forum Linux
    Réponses: 2
    Dernier message: 22/05/2009, 09h19
  2. Flux dans une architecture client serveur
    Par Founin dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 16/12/2008, 21h51
  3. Threads dans une archirecture client serveur
    Par siimpatiico dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2008, 16h37
  4. Réponses: 3
    Dernier message: 25/04/2008, 08h04
  5. Réponses: 1
    Dernier message: 10/09/2006, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo