¿Qué tan factible sería una red P2P autónoma semi completo / para juegos multijugador ser?

StackOverflow https://stackoverflow.com/questions/597303

  •  11-09-2019
  •  | 
  •  

Pregunta

He estado dándole vueltas a cómo se podría ir sobre la creación de un sistema P2P (como BitTorrent es para archivos) para jugar a juegos multijugador. La idea es eliminar el servidor tradicional de la arquitectura de varios jugadores. Entiendo que algún tipo de servidor puede ser necesario para iniciar las comunicaciones y el envío de actualizaciones mundo, etc, pero estoy interesado en cómo le gustaría reducir las presiones de carga y ancho de banda en el servidor.

Por cierto, esto va para cualquier juego de tamaño, de un juego de dos fichas jugador hasta un FPS con más de 30 jugadores.

¿Estoy loco?

¿Fue útil?

Solución

He estado pensando en lo mismo. Tengo un perjuicio desde hace mucho tiempo que distribuye sistemas debería ser distribuido , sin necesidad de un controlador central. El problema con un MMO o juego similar es que cada jugador debe ser capaz de ver el mismo "mundo". Se termina con un problema similar al de Einstein-Ian relatividad y la "simultaneidad" -. Cuanto más alejadas que son, más que su visión del mundo diferente

En general, la solución es que usted tiene que ser capaz de propagar la información a otros clientes en su vecindad inmediata - en el espacio-jugador, no necesariamente el espacio físico - lo suficientemente rápido que las actualizaciones aparecen simultánea a todos los locales jugadores.

Sospecho que la respuesta es tener un "servidor" o modelo mundial por jugador, en lugar de representar a los jugadores como vectores en un servidor del mundo.

Otros consejos

El gran problema no se bandiwdth o latencia o la distribución de los cambios en el estado del juego. El gran problema es la confianza.

Si les digo que he matado a un monstruo, ¿cómo se comprueba que en realidad lo hice? ¿Cómo se verifica que en realidad soy de nivel 45? ¿Cómo se verifica que no estoy teletransportarse alrededor del mundo? Recuerda que no puedes comprobar el servidor para cada pequeño detalle: que es lo que estamos tratando de evitar

Es necesario observar a los jugadores de los jugadores e incluso entonces puede ser que trabajen juntos para hacer trampa. Realmente dudo que alguien va a diseñar un confiable p2p MMO en el corto plazo.

Hay muchas cosas a tener en cuenta en su pregunta:

1) distribuidos maestro - que se inicia el juego, entonces? donde puedo encontrar el primer nodo? ¿y si cada uno decide cerrar su cliente P2P, al mismo tiempo? Cómo termina el mundo?

2) reglas distrubuted - que puedan confirmar que el jugador 77 de 102235 mató a un monstruo en x, y, z? Veo problemas grandes en la piratería informática / trampa con un "comandante en jefe" ...

3) Latencia - cuando un cliente ha recibido todos los datos? ¿y si el Internet se rompe? o en un juego de internet, lo que en caso de fallecimiento de Disco - será este loco juego para todos los demás

Creo que el pensamiento P2P es interesante, pero como en todas las competiciones, creo que vamos a necesitar un "juez" que puede manejar las reglas, porque cuando se está compitiendo contra "personas anónimas" entonces su "bien engañar" mucho piensa.

Creo que algún tipo de computación en red podría ser la manera de hacerlo, pero de nuevo, si alguna, en la red se cae o son demasiado lentos para la representación del mundo y el envío de los resultados de vuelta .. entonces tenemos todo el partido "retraso " ... = juego terrible para todos ... esto se ya se ha visto en muchos juegos de disparos en primera persona con un servidor maestro. Si el protocolo de red mango duerma lag demasiado bien, su cada vez más difíciles de golpear a una persona en ejecución o que aparecen de la nada que se dispara en la cara.

Una solución costosa podría ser tener "subservers" (Proxy-juego-servidores) donde tiene algunos de los datos más cerca de los jugadores. Esto creo que sería necesario que usted tenga acceso a una gran cantidad de serverfarms en todo el mundo (como la ventisca hace con WOW) o tendrá que inventar una especie de inteligente "host P2P" que se actualizará a sí mismo a "subserver" cuando el entonces el ancho de banda es jugadores lo suficientemente grandes y están cerca en proxsamity de ella (siempre vigilando el retraso desde su punto de vista ...) ... ahora digamos que eso era posible .. ¿y si la línea se rompe entre este y el subserver gameloop principal a nivel mundial de nuevo?

LOL ... esto podría seguir ... que suena cada vez más como el problema general con el Internet: -)

codificación feliz ...!

Ciertamente no soy experto, pero suena un poco loco para mí. En mi experiencia, necesita servidores de juegos dedicados a causa de ancho de banda y rendimiento. Con P2P que perdería ambas cosas. En mi opinión, P2P es bueno para algunas cosas. Distribución de archivos y la investigación se encuentran entre ellos. Sin embargo, esas 2 cosas no necesitan datos en tiempo real. Si usted tuviera algún tipo de mundo de juego multijugador masivo, entonces probablemente podría utilizar P2P para distribuir archivos de juego, y tal vez incluso descargar cálculo de números.

Yo diría que hay posibilidades, pero el número de ellos parecen limitadas, aunque potencialmente poderosa.

Creo que esto es probable que sea posible en teoría, pero sigue siendo un largo camino por recorrer.

Como se observa en los demás puestos, la latencia podría mantenerse baja por única que garantiza cambios a otros jugadores que están cerca. Esto se ha hecho durante muchos años en los juegos distribuidos.

La pérdida de datos puede mantenerse a niveles tolerables al permitir que varios nodos sean responsables de cada pieza de datos.

En cuanto al problema de confianza, sería posible tener un protocolo donde un jugador puede "desafío" a otro jugador para descubrir el engaño. Es decir. el retador duplicaría alguna parte del cálculo a otros jugadores y solicite que se comparen los resultados. Ya existen protocolos criptográficos que hacen este tipo de cosas, pero no conocen los detalles o si son factibles en la práctica.

El verdadero problema que veo es que hay pocas razones para desarrollar como sistema. El costo sería alto y añadir complejidad, pero la experiencia de juego (el producto) no se vería mejorado significativamente. Una actividad para ahorrar dinero debe ahorrar más dinero de lo que cuesta con el fin de ser viable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top