Je voudrais créer un serveur de jeu multijoueur simple pour un jeu simple:
Le jeu est censé être similaire à Command & Conquer, vous avez quelques chars et quelques soldats. Vous pouvez sélectionner un soldat et cliquer sur la carte, où le soldat doit aller. Si le soldat arrive dans une zone où il ne pouvait pas aller, il se promène. Et les soldats peuvent être abattus par des ennemis.
Comment dois-je structurer le serveur de jeu et que faire chez le client?
Autrement dit, si un soldat passe de X à Y mais autour du bâtiment Z, je suppose que le serveur doit être en mesure de calculer exactement où se trouve le soldat (au cas où un ennemi lui tirerait dessus), et le client doit également connaître la position de peindre le soldat.
Que faire sur le serveur et je pense que je dois concevoir un protocole pour cela. Je pense que le serveur doit garder une trace de l'état du jeu et de l'heure. Quelqu'un a-t-il des suggestions sur la façon de procéder? ou pourrait recommander une lecture?
Il existe essentiellement deux approches:
Le client de confiance est un peu plus complexe, mais présente l'avantage de pouvoir décharger une grande partie de vos calculs depuis le serveur. Le coût de fonctionnement du serveur est l'un des plus gros problèmes des jeux multijoueurs et réduira considérablement votre évolutivité.
Une bonne approche (pour les débutants) consiste à laisser chaque client des joueurs gérer ses propres unités. À l'étape suivante, vous pouvez utiliser des cycles de rechange pour permettre aux joueurs des clients de vérifier les actions des autres clients. Le serveur ne devrait pas avoir besoin de faire plus que d'échanger des messages, de maintenir la synchronisation et d'assurer la persistance (par exemple, la base de données).
Si vous prévoyez d'avoir une sorte de lobby ou de chat, alors gérez chacun de ces sujets sur un serveur supplémentaire. Cela rendra les choses beaucoup plus faciles sur la route.
la source