Multijugador Tutorial 1: conceptos

4

Index

Tagged

Stats

29,666 visits, 45,688 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 10 Sep, 2014. Last updated 25 Feb, 2019

Señalización

Como se mostró en la sección anterior, para que un cliente se conecte al host, es necesario encontrar su dirección IP y determinar cómo conectarlo a ella. El host puede ser cualquiera, en cualquier parte del mundo, así que es imposible saber por adelantado hacia quien conectar. Así que para permitir que los jugadores se conecten, hay un servidor central separado llamado Servidor de Señalización.

Este servidor de señalización no hace de host en el juego actual: el primer jugador de la sala hace de host del juego y transmite los datos hacia los otros clientes. La señalización es simplemente un lugar central para que los jugadores se encuentren el uno al otro. Cuando un cliente desea unirse a un host, el servidor de señalización retransmite la información tal como la dirección IP y los detalles de conectividad entre ambos. Una vez que el cliente se ha conectado satisfactoriamente al host, el servidor de señalización ya no se involucra y los jugadores están comunicándose entre ellos directamente.

Scirra aloja un servidor de señalización dedicado al público en wss://multiplayer.scirra.com. (wss: indica un conexión WebSocket segura, desde que los datos de señalización están llevados en WebSockets. El juego todavía estará funcionando sobre WebRTC.)

Terminología de Señalización

El servidor de señalización necesita evitar mezclar jugadores de juegos no relacionados, y permitir diferentes grupos de jugadores a organizarse en juegos separados al mismo tiempo. Para hacer esto, los jugadores se unen a una sala en una instancia de juego.

El servidor de señalización separa primero los jugadores en cada juego. Tu juego en particular debe tener un nombre global único en el servidor. Entonces cualquiera en tu juego puede unirse al mismo juego en el servidor de señalización. ¡Esto evita que los jugadores de tu juego se mezclen con jugadores de otros juegos que funcionan completamente diferente! para cada juego que crees, debes usar únicamente un juego en el servidor de señalización. Para asegurar que el nombre de tu juego es único en el servidor y nunca ha sido accidentalmente escogido por el juego de alguien más, incluye tu nombre o el nombre de tu compañía, ejemplo "MiEstudio-Asteroides" o "JohnSmith-Asteroides" en vez de sólo "Asteroides". (Este nombre nunca es mostrado en ningún lugar y sólo es usado internamente en el servidor de señalización, así que siéntete libre de añadir otros detalles para asegurar que es único.)

A continuación el servidor de señalización separa los jugadores en una instancia de juego. Esto te permitirá correr distintas instancias separadas de tu juego. Por ejemplo, desearás tener una instancia "estable" a la cual la mayoría de jugadores se unan, pero una instancia "beta" para pruebas usando la próxima (y ligeramente diferente) versión de tu juego. Esto prevendrá que los beta testers se conecten a los jugadores normales quienes podrían tener diferentes mecánicas o características de juego. Por la misma razón las instancias pueden ser versiones, como "v1.0", "v1.1", "v1.2", siempre asegurando que los jugadores sólo puedan ver otros jugadores con su misma versión del juego. Alternativamente otro buen uso es tener instancias basadas en localizaciones, tales como "Europa", "Norte América", "Sur América" y "Asia". Asumiendo que los jugadores se unirán a la instancia desde su ubicación actual, ellos verán sólo otros jugadores en su misma ubicación, mejorando la probabilidad de tener una buena calidad de conexión entre ellos.

Estos propósitos pueden incluso combinarse como "Europa-v1.1", "Europa-v1.2" etc.

Finalmente los jugadores pueden unirse a una sala. Una sala representa un grupo de jugadores que están jugando con otros. Los jugadores no pueden ver a otros jugadores excepto a aquellos en la misma sala. Al primer jugador de una sala se le asigna el host. entonces el servidor de señalización notifica al host de cualquier otro jugador que desee unirse a la misma sala. ¡Ellos entonces se conectan y pueden empezar a jugar el juego, viendo las acciones del otro en tiempo real!

En el objeto multijugador de Construct 2, todas las acciones, condiciones y expresiones relacionadas con el servidor de señalización están en la categoría de Señalización. Todas las otras características se relacionan directamente con el juego.

  • 0 Comments

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