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.
Respuestas:
Aquí están mis dos centavos:
P2P :
Servidor-Cliente :
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.
fuente
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.
fuente
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.
fuente