Vous pouvez faire plusieurs choses.
Vous pouvez centraliser tous les objets physiques sur le serveur et synchroniser les coordonnées avec les objets des joueurs sur tous les clients. C'est le plus simple et fonctionne sans beaucoup de défauts, mais il utilise beaucoup de ressources et nécessite beaucoup de bande passante. Vous pouvez optimiser l'utilisation de la bande passante en envoyant uniquement des valeurs au joueur d'autres joueurs qui se trouvent dans un certain rayon.
Vous pouvez faire comme Neenster l'a mentionné et faire simuler la physique par le serveur et les clients, de temps en temps le serveur corrige les clients. Cela signifie que tous les clients calculent leur propre physique pour chaque joueur, et vous synchroniseriez les événements de frappe sur le serveur en donnant la trajectoire de chaque joueur sur chaque client. Chaque, disons, 5 secondes, le serveur diffuse sa simulation physique et tous les clients acceptent le changement. Cela peut créer de légers décalages qui sont la plupart du temps imperceptibles, mais pendant le décalage du réseau et la perte de paquets (inévitable avec un trafic UDP élevé), vous remarquerez que votre lecteur et / ou d'autres joueurs glitch autour de l'écran et changent de position rapidement et de manière saccadée (est-ce un mot?).
Vous pouvez demander à chaque client de calculer sa propre physique et de synchroniser ses coordonnées. Cela rend difficile la simulation de la physique sur des objets partagés entre les clients. C'est un concept assez complexe à implémenter si vous voulez faire quelque chose de chic, car certains objets n'appartiennent pas nécessairement à un client.
Le premier est probablement le plus simple et devrait vous permettre d'avoir environ 4 à 5 joueurs avec peu de décalage. Il faudrait que chaque correspondance ait son propre serveur. Si vous faites des correspondances LAN, c'est la voie à suivre.
Le second est probablement le plus pratique, mais il peut être difficile à mettre en œuvre. Il est également assez ingénieux d'exécuter des simulations physiques sur le serveur. Si vous avez des serveurs centralisés, vous devrez probablement équilibrer la charge sur plusieurs machines, peut-être autoriser 10 correspondances par serveur, charger de nouvelles correspondances sur le serveur avec le moins de correspondances.
Le troisième est certainement le moins stressant sur le serveur et est probablement la meilleure solution si vous faites un schéma de réseau peer to peer. Comme je l'ai mentionné, il peut être difficile de synchroniser des objets autres que votre objet joueur car ces objets sont également modifiables par d'autres clients.
Je ne peux pas vous dire lequel utiliser car je ne sais pas comment fonctionne votre jeu. Tout ce que je peux faire, c'est vous donner les faits. Si vous avez d'autres questions, n'hésitez pas à commenter.