Limitations des jeux multijoueurs p2p par rapport au client-serveur [fermé]

12

Je lis sur l'architecture de jeu multijoueur.

Jusqu'à présent, la plupart des articles que j'ai trouvés traitent du modèle client-serveur.

Je voudrais savoir quelles sont les limites de l'utilisation d'une architecture p2p? quelle "classe" de jeux est-il possible (ou plus courant) d'implémenter en l'utilisant? qui ne le sont pas? et en général, quelles sont ses principales différences et limitations par rapport au modèle client-serveur.

spaceOwl
la source
connexes gamedev.stackexchange.com/questions/3887/...
Ciro Santilli冠状病毒审查六四事件法轮功
Pour un exemple d'un vrai jeu P2P, vous pouvez regarder Gunz: The Duel, qui a d'énormes problèmes en multijoueur et avec le piratage à cause de cela.
fhyve

Réponses:

11

Voici mes deux cents:

P2P :

  • Avantages:
    • Pas besoin d'un serveur central : cela le rend beaucoup moins cher et plus viable pour les jeux indépendants à petit budget.
    • S'adapte très bien (jusqu'à un certain point lorsque le client moyen ne peut tout simplement pas gérer la bande passante).
    • Très bon pour la distribution de données : convient aux jeux où le contenu créé par l'utilisateur est synchronisé dynamiquement (par exemple, les torrents).
    • Plus stable: il ne peut jamais arriver que le serveur rencontre des problèmes et que personne ne puisse jouer (selon l'implémentation).
  • Les inconvénients:
    • Difficile à mettre en œuvre : beaucoup plus difficile à créer une architecture P2P solide, qu'un serveur-client.
    • Il est très difficile d'empêcher la triche dans un tel système, à moins que vous ne désigniez un pair faisant autorité (ce qui entravera les avantages d'une bonne mise à l'échelle du P2P).
    • La sécurité est difficile à réaliser.
    • La connexion Internet d'un client peut également influencer le jeu pour les autres.
    • La latence est généralement beaucoup plus importante (même si elle peut être meilleure lorsque vous rejoignez un jeu Internet avec plusieurs personnes d'un réseau LAN par exemple).
    • Peut nécessiter une redirection de port : le P2P sur Internet nécessite une redirection de port, et tout le monde n'est pas suffisamment enclin à le faire. En outre, le FAI peut empêcher la redirection de port et il augmente la barrière à l'entrée.

Serveur-client :

  • Avantages:
    • Facile à mettre en œuvre: c'est aussi simple que possible.
    • S'il est bien implémenté, évolue extrêmement bien (si le travail peut être réparti sur plusieurs serveurs).
    • La tricherie peut être évitée facilement (par rapport au P2P).
    • Latence plus faible : si le serveur dispose d'une connexion solide, la latence peut être extrêmement faible.
    • La connexion Internet d'un joueur n'affecte jamais le jeu d'un autre.
  • Les inconvénients:
    • Vous coûte de l'argent pour faire fonctionner les serveurs : certainement pas adapté à un jeu gratuit (sauf si vous laissez les joueurs configurer un serveur dédié, mais cela pourrait être un problème de sécurité).
    • Si le serveur a des problèmes, tout le monde le fait.

Je considérerais le P2P comme un bon choix car la connexion Internet moyenne s'améliore de plus en plus, à l'avenir la latence P2P pourrait ne plus être un problème. La P2P dépend également de l'implémentation spécifique.

Il existe également des architectures qui combinent P2P avec Server-client.

akaltar
la source
P2P Con: Matchmaking, sauf s'il s'agit d'un jeu LAN, vous ne savez pas comment trouver votre pair. CS: Une latence plus faible ne se produit pas lorsqu'un joueur, par exemple, en Allemagne et l'autre en Australie. C'est toujours un problème 6 ans plus tard. CS: Ça vous coûte vraiment pas cher, vraiment. Les serveurs deviennent plutôt bon marché. De plus, vous pouvez commencer par héberger le jeu sur votre propre PC en utilisant un proxy Web pour le pointer.
badunius
2

Un gros risque des jeux peer-to-peer est que sans une autorité centrale sous la forme d'un serveur neutre, il n'y a aucun moyen d'empêcher la triche. Chaque client peut interpréter le résultat du jeu comme bon lui semble. Certains jeux déclarent l'un des clients hôte et le laissent être juge, mais lorsque ce client est un tricheur, ils décident du résultat de l'ensemble du jeu.

Avec les jeux qui nécessitent une faible latence et une bande passante élevée, comme tout jeu qui nécessite une réaction rapide des joueurs, vous avez également le problème que l'hôte utilise simplement une connexion Internet de qualité grand public, ne pas assis dans un centre de données avec une dorsale haute performance connexion. Cela signifie que l'expérience utilisateur en souffrira. Ce n'est pas vraiment un problème dans les jeux plus "stratégiques" et plus lents.

Philipp
la source
En utilisant un modèle de consensus, la triche n'est pas plus un problème qu'elle ne le serait dans un modèle client-serveur.
Jeroen
1

La mise en œuvre de jeux multijoueurs peer to peer n'est pas facile et n'est pas applicable pour le moment.

Le problème que vous avez, c'est qu'aucun des pairs ne connaît tous les autres pairs, de sorte que vous avez plusieurs sauts pour chaque message, ce qui entraîne une latence plus élevée par rapport à un modèle de serveur client. Consultez ce document pour plus de détails.

Les jeux à base ronde pourraient facilement utiliser un tel protocole car ils ne dépendent pas tellement de la latence. De plus, ils n'ont normalement que quelques hôtes dans une session afin que l'on puisse diffuser chaque message à tous les autres joueurs.

D'autres jeux qui utilisent le pair à pair choisissent simplement l'un des pairs pour héberger le jeu dynamiquement (par exemple CoD MW2), ce qui entraîne des problèmes comme la migration de l'hôte si l'hôte se déconnecte.

Horstinator
la source
3
Que voulez-vous dire "sans objet pour le moment"? Il existe de nombreux jeux qui utilisent le P2P pour le réseautage. De plus, «aucun des pairs ne connaît tous les autres pairs» est mal rédigé. Alors que dans la pratique, les relais doivent être pris en charge pour améliorer la robustesse, il est tout à fait possible d'avoir une topologie de réseau parfaite pour tous, en particulier avec un petit nombre de pairs ou dans un réseau local où aucun routeur NAT n'interfère.
Tapio
@Tapio Bien sûr, il est possible de construire un réseau p2p pour les jeux mais il serait limité en termes de latence, de nombre d'utilisateurs ou d'environnement dans lequel il est utilisé. Pour cette raison, la plupart des jeux n'utilisent pas une approche p2p.
Horstinator
@Horstinator Je connais un jeu qui utilise le P2P pour un jeu FPS, il prend en charge solidement 50-100 joueurs sans aucun problème de latence. (C'est ce qu'on appelle la guerre stickman pour quiconque s'en soucie)
akaltar
@akaltar Est-ce open source? J'aimerais voir comment ils le font.
Horstinator du
@Horstinator Dommage, mais pour autant que je sache, ce n'est pas le cas. Vous pouvez demander au créateur sur le forum (c'est un très petit projet, donc quelqu'un devrait répondre).
Akaltar