Quels sont les inconvénients / mises en garde / limitations liés à l’utilisation d’un serveur non autorisé sur un serveur entièrement autorisé pour la mise en réseau multijoueur?

Notre équipe développe un jeu d’arcade rapide FPS avec un maximum de 10 joueurs par match (5v5) pour les plateformes mobiles utilisant Unity . Nous sums vraiment dans un dilemme sur l’opportunité d’utiliser un serveur non autorisé ou faisant autorité.


Approche non autorisée : chaque joueur envoie simplement des instantanés à propos de sa position actuelle à d’autres joueurs et des appels de procédure à distance sont appelés pour des événements spéciaux tels que le tir d’une arme ou le déclenchement d’une explosion. La physique est simulée localement.

Réflexion sur l’utilisation de PON (Photon Unity Networking) pour cette approche, grâce à une API mature et à un modèle maître-client et à des relais avancés .


Approche faisant autorité : Les clients envoient simplement leurs instantanés d’entrée à un serveur dédié, où le jeu est simulé à l’aide des entrées et l’état du jeu est renvoyé aux clients, qui le rendent simplement.

Pensez à utiliser Photon Bolt pour cette approche, en raison de la prédiction côté client intégrée et de la compensation du retard, qui sont cruciales lors de l’utilisation d’un serveur dédié.


Donc, en plus de faciliter le piratage de mon jeu par les sortingcheurs, quels sont les inconvénients / limitations de l’utilisation d’un serveur non autorisé par rapport à un serveur faisant autorité? Est-ce que l’autorité de serveur est requirejse dans un jeu mobile? Quelles sont vos recommandations pour le type de jeu que nous essayons de faire?

En outre, dans quelle mesure la création d’une instance Unity sur un serveur dédié (en mode sans tête) présente-t-elle des difficultés (ou une dégradation)?

Je vous remercie!

Donc, en plus de faciliter le piratage de mon jeu par les sortingcheurs, quels sont les inconvénients / limitations de l’utilisation d’un serveur non autorisé par rapport à un serveur faisant autorité?

La désynchronisation est un inconvénient considérable. C’est correct si la physique simulée localement n’affecte pas le résultat fonctionnel du jeu.

Cependant, par exemple, si la trajectoire d’une fusée à partir d’un lanceur est simulée localement avec la physique, et si elle frappe un autre joueur ou non, elle est décidée localement.

Dans les cas plus graves, vous pourriez vous retrouver avec des joueurs ayant des résultats complètement différents du match sur leurs machines.

Est-ce que l’autorité de serveur est requirejse dans un jeu mobile?

Pas nécessairement.

Quelles sont vos recommandations pour le type de jeu que nous essayons de faire?

Pour les jeux multijoueurs, il est généralement recommandé d’avoir un serveur faisant autorité qui effectue des calculs pour les événements importants (par exemple, frappé par une balle).

Pour empêcher les mouvements et les actions instables, vous devez implémenter une forme de côté client d’interpolation / prédiction / estimation, et effectuer des corrections lorsque votre serveur faisant autorité fait la réponse.

En outre, dans quelle mesure la création d’une instance Unity sur un serveur dédié (en mode sans tête) présente-t-elle des difficultés (ou une dégradation)?

Je ne suis pas sûr de savoir à quoi vous vous comparez, mais généralement, une instance Unity s’exécute sans graphiques et en mode batch, un serveur est capable de gérer efficacement un jeu multijoueur de 10 personnes.