Creando y uniéndose a sesiones

Cuando te conectas a una red, puede haber múltiples juegos ejecutándose en la misma red. Esos juegos reciben el nombre de sesiones. Estas diferentes sesiones pueden corresponder a juegos diferentes o al mismo. Un juego debe identificarse en la red. Afortunadamente, Game Maker hace esto por ti. Lo único que debes saber es que cuando cambias el id del juego en la ventana de opciones esta identificación cambia. De esta forma puedes evitar que personas con versiones anteriores de tu juego jueguen contra personas que cuentan con versiones más recientes.

 

Si quieres iniciar un nuevo juego multijugador necesitas crear una nueva sesión. Para esto puedes emplear la siguiente rutina:

mplay_session_create(sesname,playnumb,playername) Crea una nueva nueva sesión en la conexión actual. sesname es una cadena que indica el nombre de la sesión. playnumb indica el número máximo de jugadores permitidos para este juego (usa 0 para un número arbitrario de jugadores). playname es tu nombre como jugador. Indica si ha tenido éxito.

 

Una instancia del juego debe crear la sesión. La(s) otra(s) instancia(s) del juego deben unirse a esta sesión. Esto es un poco más complicado. Primero debes ver las sesiones disponibles y luego elegir a la que te unirás. Hay tres rutinas importantes para esto:

mplay_session_find() Busca todas las sesiones que aún aceptan jugadores y devuelve el número de sesiones encontradas.

mplay_session_name(numb) Devuelve el nombre de la sesión número numb (0 es la primer sesión). Esta rutina puede ser llamada sólo después de haber llamado a la anterior.

mplay_session_join(numb,playername) Con esta rutina te unes a la sesión número numb (0 es la primer sesión). playername es tu nombre como jugador. Indica si ha tenido éxito.

 

Hay una rutina más que puede cambiar el modo de la sesión. Debe llamarse antes de crear una sesión:

mplay_session_mode(move) Indica si se mueve la sesión de host a otra computadora cuando el host actual cierre. move debe ser true o false (valor por defecto).

 

Para checar el estado de la sesión actual puedes usar la siguiente función

mplay_session_status() Devuelve el estado de la sesión actual. 0 = no hay sesión, 1 = sesión creada, 2 = se unió a la sesión.

 

Un jugador puede detener una sesión empleando la siguiente rutina:

mplay_session_end() Finaliza la sesión para este jugador.