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.