2009-12-12 17 views
6

Tengo el comienzo de un pequeño juego para varios jugadores que estoy escribiendo en python como ejercicio de aprendizaje. Actualmente, el servidor funciona a 10 fps, mientras que los clientes funcionan a la velocidad que deseen. Esto funciona bien para conservar el ancho de banda, pero a menos que el cliente le informe al servidor cuando se produjo su entrada, todas las entradas se cuantifican a intervalos de 100 ms. ¿Cómo puedo sincronizar el tiempo entre el cliente y el servidor para poder hacer estas correcciones? Un gran obstáculo aquí es que tendré que determinar los tiempos de ping y compensarlos.Sincronización del tiempo entre el servidor simple basado en socket python y los clientes

+0

La respuesta que la mayoría de los otros diseñadores de juegos han encontrado es que (básicamente) nunca obtendrás una buena sincronización. Los juegos grandes como wow y kin simulan la mayoría de las acciones del lado del cliente, e impulsan las actualizaciones en cualquier dirección, según sea conveniente. –

Respuesta

1

Me encontré accidentalmente con un excruciatingly fine blog post sobre cómo hacer la física de la red distribuida en general (sin la predicción tradicional del cliente). Lo recomiendo encarecidamente, junto con las diapositivas GDC presentadas por Fiedler hace un par de años. ¡Buena suerte!

+0

Gracias, recuerdo esas publicaciones de blog de hace mucho tiempo cuando la serie estaba incompleta. El último sobre redes es genial, ¡y debería ayudar mucho! – Alex

0

Esta es una pregunta muy interesante. Lamentablemente, no hay una respuesta fácil. Simplemente debe entender bien el problema y conformarse con una solución que sea lo suficientemente buena como para su aplicación.

Mi primer instinto fue que el Network Time Protocol (NTP) para configurar relojes de máquina desde servidores NTP habría solucionado este problema. Una de las cuestiones abordadas se refiere a Jitter Buffers, que implica packet delay variation. Esto se elabora en RFC 3393; IP Packet Delay Variation Metric for IP Performance Metrics (IPPM).

+0

Examinaré NTP, que de hecho puede proporcionar una idea de mi situación. – Alex

Cuestiones relacionadas