Multiplayer tutorial 3: Pong

2

Index

Tagged

Stats

11,057 visits, 18,359 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 21 Dec, 2014. Last updated 25 Feb, 2019

El resto del grupo Signalign es más familiar a el ejemplo del chat; aún así hay algunas otras diferencias por venir. En primer lugar, como antes, nos conectamos con nuestro nombre de usuario (username).

Para iniciar el juego, una diferencia es que usamos Auto-join room en lugar de Join room. Si solo usamos Join room, entonces todos terminan en el mismo juego. 30 jugadores en un juego que sólo soporta 2 jugadores, ¡es muy útil! Para usar Auto-join room, una vez que la sala esta llena el resto de los usuarios que se unan serán enviados a una nueva sala. En este caso 30 jugadores obtendrán asignamientos en 15 juegos separados de 2 jugadores cada uno. Bloquear la sala cuando esta llena previene más uniones; esto quiere decir que una vez que la sala esta llena, nadie más podrá unirse a la misma sala. Si la sala se permanece desbloqueada alguien más puede entrar en la misma sala, pero esto significa que al manejar más uniones vamos a tener problemas.

Una vez que ha iniciado, establecemos si somos el anfitrión. Vamos a hacer los mismo que en el ejemplo del chat: cualquiera de los dos grupos Host o Peer son activados. Pero también necesitamos manipular la paleta y la bola en el layout dependiendo si nos convertimos en el anfitrión. Si somos un peer, es sencillo: sólo destruimos los objetos que ya están en el layout. Los objetos de sincronización van a ser crearse, moverse y destruirse automáticamente, cualquier objeto que este presente en el anfitrión, incluyendo los objetos que representan a nuestro propio personaje.

Siempre que somo el host, adoptamos la pelta existente en el layout como nuestro propio objeto que controlamos. La paleta tiene una variable de instancia peerid. Esto almacena la señalización asignada a cada peer ID y nos permite recoger cualquier instancia de la paleta y saber con que jugador representa. Esto debe ser una variable de texto, ya que los peer IDs son secuencias cortas de caracteres aleatorios. Nuestro propio peer ID es asignado a este objeto para indicar que representa para nosotros.

La acción Associate object with peer es también necesaria para indicar al engine multijugador que esta instancia representa un jugador en la sala. Por defecto sync object trata a los objetos neutralmente, como un escenario de objetos o un control IA de los enemigos y simplemente se asegura que todos vean el mismo numero de objetos en el mismos lugares. Usando Associate object significa que el objeto no es neutral y es asociado con un peer conectado en la misma sala y permite que se hagan más de manera automática (por ejemplo, destruyendo el objeto cuando el peer se sale). En este caso estamos adoptando el objeto que ya esta en el layout, así asociamos esto con nuestro propio ID.

El resto de los eventos en el grupo Signalling cubre errores de la misma manera que la sala de chat lo hacia. Sin embargo hay un evento extra que simplemente muestra algunas estadísticas de la conexión, incluyendo el numero de mensajes entrantes y salientes enviados por segundo, el resultado total de ancho de banda en kilobytes por segundo y la latencia y la latencia y PDV al host (Esto se mostrara como 0 para el anfitrión, ya que no necesita conectarse a el mismo).

  • 0 Comments

Want to leave a comment? Login or Register an account!