Multijugador tutorial 2: Sala de Chat

2

Index

Taggé

Statistiques

11,545 visites, 16,738 vues

Outils

Partager

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 18 Sep, 2014. Last updated 25 Feb, 2019

Grupo de señalización

Este grupo se encarga del servidor de señalización. Debemos conectar para señalizar con el fin de encontrar quién más está en la sala, para poder conectarlos, y encontrar si fueron hechos el host. Primero que todo, debemos conectar con el servidor de señalización, que es el servidor oficial provisto por Scirra en wss://multiplayer.scirra.com. (Cada paso es registrado en el chat así que el usuario puede ver el progreso que ocurre).

Un momento después, asumiendo que todo ha salido bien se activa On signalling connected. Sin embargo, el servidor de señalización no nos permite unirnos a ningún juego hasta que iniciemos sesión con nuestro nombre de usuario (llamado el alias por el servidor de señalización). Así que al conectar, también requerimos el iniciar sesión con el nombre de usuario de la pantalla de Login.

Entonces, asumiendo que nuestra petición de inicio de sesión fue satisfactoria, se activa On signalling logged in. Ahora estamos listos para unirnos a un juego. Nótese que si el alias requerido ya está en uso en el servidor de señalización, él simplemente te asignará un nuevo alias. Por ejemplo, si dos personas inician sesión como "Joe", la segunda persona tendrá su alias actualizado como "Joe2". Para evitar confusión es una buena idea mostrar de nuevo al usuario su alias asignado (de la expresión Multiplayer.MyAlias) así ellos pueden ver cuál es su nombre real. Ahora que hemos iniciado sesión podemos pedir unirnos a la sala (usando las constantes globales del nombre del juego, instancia y sala)

Al unirnos a la sala, encontramos por primera vez si nos hemos convertido en el host o no. El servidor de señalización hará que la primera persona en la sala sea el host. Los datos del juego actual serán transferidos a la conexión de esa persona (ellos actúan como el servidor del juego). Hemos probado si nos volvemos el host utilizando la condición Is host en un sub evento al activador On signalling joined room. Ya que ambos el host (actuando como servidor) y los Peers (actuando como clientes al servidor) corren el juego desde el mismo proyecto único, es bueno organizar eventos en dos grupos diferentes Host y Peers. Cada uno está inicialmente inactivo, pero al unirse a la sala, activamos el apropiado. Esto significa que tenemos un lugar conveniente que pone los eventos que sólo deben aplicar al host o a los clientes (peers). Necesitamos también añadir nuestro propio nombre a la lista de clientes, ya que no recibimos una notificación de "cliente se ha unido".

Los últimos tres eventos en este grupo son básicamente para tratar con errores. En la gran mayoría de casos los eventos de arriba deben funcionar bien. Sin embargo, si dejamos la sala, somos desconectamos o encontramos un error en el servidor de señalización, añadimos un mensaje de chat para que el usuario pueda ver lo que ha ocurrido.

Este grupo nos ha llevado a través de la conexión, unirnos a una sala en el servidor de señalización y activar el grupo apropiado para ser un host o un cliente. Una vez unidos, los datos del juego corren únicamente a través del host. El resto de eventos tratan con la sala de chat. Estos son otros tres grupos Common, Peer y host bajo el grupo parental Chat.

  • 0 Comments

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