Limitaciones de los juegos multijugador p2p vs cliente-servidor [cerrado]

12

Estoy leyendo sobre la arquitectura del juego multijugador.

Hasta ahora, la mayoría de los artículos que he encontrado tratan sobre el modelo cliente-servidor.

Me gustaría saber cuáles son las limitaciones para usar una arquitectura p2p. ¿Qué "clase" de juegos es posible (o más común) implementar al usarlo? cuales no lo son? y, en general, cuáles son sus principales diferencias y limitaciones con respecto al modelo cliente-servidor.

spaceOwl
fuente
gamedev.stackexchange.com/questions/3887/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
Para ver un ejemplo de un verdadero juego P2P, puedes ver Gunz: The Duel, que tiene grandes problemas en el modo multijugador y con la piratería debido a esto.
fhyve

Respuestas:

11

Aquí están mis dos centavos:

P2P :

  • Pros:
    • No es necesario un servidor central : esto lo hace mucho más barato y más viable para juegos independientes de bajo presupuesto.
    • Escala muy bien (hasta cierto punto cuando el cliente promedio simplemente no puede manejar el ancho de banda).
    • Muy bueno para la distribución de datos : se adapta a juegos donde el contenido creado por el usuario se sincroniza dinámicamente (por ejemplo, torrents).
    • Más estable: nunca puede suceder que el servidor tenga problemas y que nadie pueda jugar (depende de la implementación).
  • Contras:
    • Difícil de implementar : mucho más difícil de crear una arquitectura P2P sólida que un servidor-cliente.
    • Es muy difícil evitar hacer trampa en un sistema de este tipo, a menos que designe a un compañero autorizado (lo que dificultará cualquier beneficio de escalar bien con P2P).
    • La seguridad es difícil de lograr.
    • La conexión a Internet de un cliente también puede influir en el juego para otros.
    • La latencia suele ser mucho mayor (aunque puede ser mejor cuando se une a un juego de Internet con varias personas desde una red LAN, por ejemplo).
    • Puede requerir el reenvío de puertos : P2P a través de Internet requiere el reenvío de puertos, y no todos tienen la inclinación técnica para hacerlo. Además, el ISP puede evitar el reenvío de puertos y aumenta la barrera de entrada.

Servidor-Cliente :

  • Pros:
    • Fácil de implementar: es tan sencillo como se pone.
    • Si se implementa bien, se escala extremadamente bien (si el trabajo se puede distribuir en varios servidores).
    • Hacer trampa se puede evitar fácilmente (en comparación con P2P).
    • Baja latencia : si el servidor tiene una conexión sólida, la latencia puede ser extremadamente baja.
    • La conexión a Internet de un jugador nunca afecta el juego de otro.
  • Contras:
    • Le cuesta dinero ejecutar los servidores : definitivamente no es adecuado para un juego gratuito (a menos que permita que los jugadores configuren un servidor dedicado, pero eso podría ser un problema de seguridad).
    • Si el servidor tiene problemas, todos los tienen.

Consideraría que P2P es una buena opción porque la conexión a Internet promedio está mejorando cada vez más, en el futuro la latencia P2P podría no ser un problema en absoluto. También mucho sobre P2P depende de la implementación específica.

También hay algunas arquitecturas que combinan P2P con Servidor-cliente.

akaltar
fuente
P2P Con: Matchmaking, a menos que sea un juego de LAN, no sabes cómo encontrar a tu compañero. CS: La latencia más baja no es cuando un jugador en, digamos, Alemania y el otro está en Australia. Todavía es un problema 6 años después. CS: Realmente no te cuesta tanto dinero . Los servidores se vuelven bastante baratos. Además, puede comenzar alojando el juego en su propia PC usando algún proxy web para señalarlo.
Badunius
2

Un gran riesgo de los juegos peer-to-peer es que sin una autoridad central en forma de servidor neutral, no hay forma de evitar las trampas. Cada cliente puede interpretar el resultado del juego como quiera. Algunos juegos declaran a uno de los clientes como el anfitrión y lo dejan ser el juez, pero cuando ese cliente es un tramposo, deciden el resultado de todo el juego.

Con juegos que requieren baja latencia y alto ancho de banda, como cualquier juego que requiera una reacción rápida de los jugadores, también tiene el problema de que el host solo está utilizando una conexión a Internet de nivel de consumidor, no sentado en un centro de datos con una red troncal de alto rendimiento conexión. Eso significa que la experiencia del usuario sufrirá. Esto no es un gran problema en los juegos más lentos y orientados a la estrategia.

Philipp
fuente
Usando un modelo de consenso, hacer trampa no es más un problema de lo que sería en un modelo cliente-servidor.
Jeroen
1

Implementar juegos multijugador peer to peer no es fácil y no es aplicable en este momento.

El problema que tiene es que ninguno de los pares conoce a todos los demás pares, por lo que tiene varios saltos para cada mensaje, lo que resulta en una latencia más alta en comparación con un modelo de servidor cliente. Consulte este documento para obtener detalles adicionales.

Los juegos basados ​​en ronda podrían usar fácilmente dicho protocolo, ya que no dependen tanto de la latencia. Además, normalmente solo tienen unos pocos hosts en una sesión para poder transmitir todos los mensajes a todos los demás jugadores.

Otros juegos que usan peer to peer simplemente eligen uno de los Peers dinámicamente para alojar el juego (es decir, CoD MW2), lo que genera problemas como la migración del host si el host se desconecta.

Horstinator
fuente
3
¿Qué quiere decir "no aplicable en este momento"? Hay muchos juegos que usan P2P para redes. Además, "ninguno de los compañeros conoce a todos los demás" está mal redactado. Si bien en la práctica los relés deben ser compatibles para mejorar la robustez, es completamente posible tener una topología de red perfecta de todos, especialmente con recuentos pequeños de pares o en LAN donde no hay enrutadores NAT que interfieran.
Tapio
@Tapio Por supuesto, es posible construir una red p2p para juegos, pero sería limitado en términos de latencia, número de usuarios o el entorno en el que se utiliza. Por esa razón, la mayoría de los juegos no usan un enfoque p2p.
Horstinator
@Horstinator Sé de un juego que utiliza P2P para un juego FPS, que apoya sólidamente 50-100 jugadores sin problemas de ningún tipo de latencia (Se llama guerra stickman para cualquiera que se preocupe).
akaltar
@akaltar ¿Es de código abierto? Me gustaría ver cómo lo hacen.
Horstinator
@ Horstinator Lástima, pero que yo sepa, no lo es. Puedes preguntarle al creador en el foro (es un proyecto muy pequeño, por lo que alguien debería responder).
akaltar