Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo sincronizar Play Services Multijugador en tiempo real

Estoy desarrollando una versión en línea del popular juego Pong usando Libgdx. Comencé a usar el servicio de multijugador en tiempo real de Google para enviar los datos del juego entre los jugadores, pero no puedo resolver cómo solucionar el problema de sincronización que enfrento.

La información enviada en este momento es la paleta del jugador, así que cuando me muevo envío mi nueva posición al oponente. En el momento en que el oponente lo recibe, el tiempo ya ha pasado y se pierde la sincronización.

Entiendo que debe haber tal vez un tiempo de espera entre los movimientos que utilizan la conexión más lenta, pero ¿cómo puedo hacer que parezca suave entonces?

  • Combinación de java y nodejs para la aplicación android
  • Soporte de WebSocket en dispositivos móviles
  • Cómo hacer juego multijugador
  • Android en tiempo real Multijugador - Creación de habitaciones está fallando
  • Detectar si otro jugador salió involuntariamente (por ejemplo, desconexión de Internet) y volver a conectar - Google play en tiempo real multijugador
  • Androide basado en turnos multijugador personalizado invitar pantalla
  • Android Play Games: Configuración de la habitación personalizada con una cantidad flexible de jugadores
  • El cambio de orientación del dispositivo multiusuario de los servicios de juegos de Google Play expulsa al usuario de la habitación
  • 2 Solutions collect form web for “Cómo sincronizar Play Services Multijugador en tiempo real”

    No hay una respuesta definitiva a esta pregunta, pero hay varias estrategias que la gente adapta para resolver esta situación.

    Pasando de usar el protocolo UDP (si usted está usando la comunicación basada en socket que le voy a recomendar, porque cada ms importa en los juegos en tiempo real.Me parece que google api tiene UDP que es mensajería poco fiable. Otra vez no tengo experiencia con google-realtime-api) El intercambio de mensajes a la interpolación, estimación muerta, las predicciones del lado del cliente etc son sólo unos pocos.

    Este es un tema muy amplio para responder aquí. Cuando hice mi juego basado en tanques multijugador hice algunas cosas para hacer las cosas un poco más suaves.

    1. Protocolo UDP utilizado para enviar movimientos al servidor.
    2. Voy a mantener dos entradas en el lado del cliente para un jugador. Uno es el valor actual y uno es el valor a establecer. Entonces multiplicaré el valor actual con un factor de suavización como 0,3f hasta el momento en que no sea igual al valor a establecer. (Esto ayuda a reducir el nerviosismo)
    3. Enviaría mensajes importantes a través de TCP.

    Los puntos que he mencionado describen lo que hice en mi juego, pero se puede utilizar en cualquier. Aunque te sugiero que leas artículos en este sitio web llamado Gaffer on Games

    Otra vez esta área es enorme y ninguna respuesta puede ayudarle hacia fuera. Hice mi tesis sobre este tema y aún no puedo darle una respuesta definitiva. Tendrás que leer muchos artículos y modelar lo que aprendes de acuerdo a tus necesidades.

    Necesitas usar algún tipo de Animation Interpolation de Animation Interpolation lo que significa que la paleta no se "teletransporta" a la nueva posición, pero lentamente comienza a moverse allí, después de recibir la nueva posición.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.