2012-07-11 28 views
8

He estado leyendo la válvula article on multi-player networking que ha sido adaptada del artículo de 2001 de Yahn Bernier llamado Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization. Estoy haciendo un juego multi-jugador en tiempo real utilizando un servidor conectado a Node.js clientes a través de socket.io y tengo algunas preguntas con respecto a los principios detallan a continuación:Principios del juego multijugador en tiempo real para TCP y Node.js

Entity Interpolation

[] interpolación evita el movimiento nervioso esto normalmente conduce a las actualizaciones del servidor de almacenamiento en búfer y luego reproducirlas con los espacios interpolados sin problemas. También puede proteger contra problemas técnicos causados ​​por la pérdida de paquetes.

Client-Side Prediction

predicción es la noción de que el cliente la predicción de los efectos de las acciones del del jugador local, sin esperar a que el servidor para confirmarlos. El estado predicho de una entidad se prueba contra los comandos del servidor, ya que llegan al hasta que se detecta una coincidencia o una coincidencia incorrecta.

Lag Compensation

compensación de lag es la noción de que el servidor utilizando la latencia de un jugador a rebobinar el tiempo en el tratamiento de [la entrada del usuario], con el fin de ver lo que vio el jugador cuando se envió el comando . En combinación con la predicción, la compensación de retardo puede ayudar a combatir la latencia de la red hasta el punto , casi eliminándolo desde la perspectiva de un atacante.

  • ¿Los principios se aplican a TCP como lo hacen a UDP y habría alguna diferencias en la aplicación? Puedo ver que la interpolación de la entidad no necesitaría proteger contra la pérdida de paquetes, pero eso es todo.

  • ¿Puedo incluso comunicarme entre un servidor y un navegador web y viceversa usando UDP y Node.js?

  • Como el papel tiene más de una década de antigüedad, ¿estos principios todavía se usan o ha aparecido otra tecnología?

Cualquier ayuda sería muy apreciada.

Respuesta

2
  • ¿Los principios se aplican a TCP como lo hacen a UDP y habría diferencias en la implementación? Puedo ver que la interpolación de la entidad no necesitaría proteger contra la pérdida de paquetes, pero eso es todo.

Aunque no tendrá que lidiar con la pérdida de paquetes, tendrá que lidiar con tiempos de tránsito más largos. TCP es más lento que UDP y tendrás que mitigarlo en el modo multijugador en tiempo real. Creo que estos principios todavía se aplican en un nivel fundamental.

  • ¿Puedo incluso comunicarme entre un servidor y un navegador web y viceversa usando UDP y Node.js?

En general, todavía no. Al menos no sin alguna forma de extensión o complemento del navegador: WebSockets usa TCP. Dicho esto, WebRTC (y más específicamente, la API PeerConnection) está por llegar. Cuando se implementan canales de datos, las comunicaciones UDP deberían, en teoría, ser posibles.

  • Como el papel tiene más de una década de antigüedad, ¿siguen vigentes estos principios o ha aparecido otra tecnología?

Me sorprendería saber que ya no están en uso: el artículo que ha citado es prácticamente obligatorio para los programadores de juegos. Lo mismo ocurre con las nuevas técnicas que no aparecen, aunque no he prestado mucha atención a los desarrollos en esta área desde hace varios años.

Cuestiones relacionadas