Lumberyard
Guía del usuario (Version 1.21)

Ejemplo de multijugador

El ejemplo de multijugador ilustra cómo generar y estructurar juegos de multijugador que utilicen diversas características de la biblioteca de red de GridMate. La nueva vista previa intenta incorporar tantas características de GridMate como sea posible, pero no es exhaustiva. En vez de ello, está pensada para usarse como una instantánea en directo del estado actual de la biblioteca de red. Por lo tanto, según avance en el ejemplo, es posible que se vayan añadiendo características para mejorar la funcionalidad, o se quiten para no perder concisión en el ejemplo.

Compilación y ejecución del ejemplo

Siga estos pasos para compilar y ejecutar el ejemplo.

Para generar y ejecutar el ejemplo de multijugador

  1. En Project Configurator, establezca MultiplayerSample como el proyecto activo.

  2. Ejecute el comando siguiente:

    lmbr_waf configure
  3. Ejecute el siguiente comando para compilar todo el contenido del perfil, para su versión de Visual Studio.

    lmbr_waf build_win_x64_vs2015_profile -p all
  4. Ejecute el archivo MultiplayerSampleLauncher.exe desde el directorio bin predeterminado.

    • Para Visual Studio 2017, utilice el directorio Bin64vc141.Dedicated.

    • Para Visual Studio 2015, utilice el directorio Bin64vc140.Dedicated.

MultiplayerLobby

En este nivel se ilustra una sala de multijugador que utiliza las redes de GridMate. En estos momentos, el nivel realiza las siguientes tareas:

  • Crea un servidor.

  • Muestra una lista de servidores en la red LAN local.

  • Se conecta a un servidor.

Para crear un servidor

  1. Escriba el nombre del servidor en el formulario Create a Server (Crear un servidor).

  2. Haga clic en Create Server (Crear servidor).

    El videojuego comienza a funcionar como alojamiento y carga el mapa seleccionado.

Para conectarse a un servidor

  1. Busque el servidor en la lista de servidores. Si su servidor no aparece, haga clic en Refresh (Actualizar).

  2. Para seleccionar el servidor, haga clic en la fila que contiene su nombre.

  3. Haga clic en Connect.

Información general del videojuego

El ejemplo de multijugador es un juego arcade tipo Space Shooter o de disparo con naves espaciales. Cada jugador controla una nave en un campo gigante de asteroides. Cada jugador debe esquivar los asteroides y destruir tantos como pueda para conseguir la máxima puntuación posible. Cuando otros jugadores mueren se ganan puntos adicionales. Cada vez que el jugador muere se restan puntos. Además del peligro que representan los asteroides y los otros jugadores, hay pozos de gravedad diseminados por el mapa que pueden atraer a los jugadores y atraparlos. Los jugadores que queden atrapados en un pozo de gravedad, morirán en el acto.

Cuando se genera una nave nueva, esta puede ser de tres tipos que se asignarán de forma aleatoria:

  • Fighter: nave espacial normal.

  • Speeder: nave espacial más rápida y con más capacidad de maniobra pero, por tanto, menos resistente.

  • Rammer: una nave espacial más robusta sin armas, pero diseñada para estrellarse contra los asteroides y destruirlos. La nave es rápida, pero no es muy maniobrable.

Hay algunos asteroides que, cuando se destruyen, lanzan objetos que dan potencia durante un tiempo breve o bonificaciones. Esta potencia adicional incluye daño extra con ciertos objetivos, más tiempo de potencia y protección adicional frente ciertas fuentes de daño.

Controles del juego

Las tablas siguientes incluyen controles de comandos para teclados y mandos de Xbox.

Teclado

Clave Acción
Claves de WASD Mover la nave espacial con respecto a la pantalla (W siempre hacia arriba, S siempre hacia abajo, etc.).
Flecha izquierda, flecha derecha Rotar la nave espacial en sentido de las agujas del reloj o al contrario.
Barra espaciadora Disparar el arma de la nave espacial (si procede).
Tabulador (mantener pulsado) Abrir la ventana Player Stats (Estadísticas de jugador).

Mando de Xbox

Control Acción
Joystick izquierdo Mover la nave espacial en términos absolutos con respecto a la pantalla.
Joystick derecho Rotar la nave espacial en sentido de las agujas del reloj o al contrario.
Botón superior derecho Disparar el arma de la nave espacial (si procede).
Botón trasero (mantener pulsado) Abrir la ventana Player Stats (Estadísticas de jugador).

Mando de PS4

Control Acción
Joystick izquierdo Mover la nave espacial en términos absolutos con respecto a la pantalla.
Joystick derecho Rotar la nave espacial en sentido de las agujas del reloj o al contrario.
R2 Disparar el arma de la nave espacial (si procede).
Botón de opciones (mantener pulsado) Abrir la ventana Player Stats (Estadísticas de jugador).

Controles táctiles

Control Acción
Joystick virtual (parte izquierda de la pantalla, sin indicación visual) Mover la nave espacial en términos absolutos con respecto a la pantalla.
Joystick virtual (parte derecha de la pantalla, sin indicación visual) Rotar la nave espacial en sentido de las agujas del reloj o al contrario.

Notas

  • Tan pronto como comience a moverse con cualquiera de los joysticks virtuales, la nave espacial comienza a disparar (si procede).

  • También se puede acceder a estos controles con el ratón (haga clic para tocar).

  • Si dispara manualmente, el disparo automático se detiene hasta que se produzca otra acción desde los joysticks virtuales.

Game CVars (Variables de consola de juego)

Se pueden utilizar en el juego las siguientes variables de la consola.

mps_AISteeringDebug

Especifica si se ha extraído la información de depuración de dibujo del bot.

mps_ControllerType number

Controla el tipo de PlayerController que utiliza el cliente para controlar la nave espacial asignada. En la siguiente tabla se muestran los valores posibles para número:

Valor Descripción
0 Especifica que el control es manual. Un usuario controla una única nave.
1 Un bot que se encarga de jugar.
mps_DrawBucketSystem

Especifica si se ha extraído la información de depuración para el sistema de bucket.

mps_SpawnTag

Controla la nave espacial que se va a generar para un jugador cuando este genera una nave espacial. Los posibles valores se muestran en la siguiente tabla.

Valor Descripción
Random Elige una nave espacial disponible de forma aleatoria. Este es el valor predeterminado.
Fighter Genera una nave espacial Fighter.
Speeder Genera una nave espacial Speeder.
Rammer Genera una nave espacial Rammer.
mps_UserName

Especifica el nombre para el cliente en los elementos del juego, como la puntuación o la notificación de acción.

Creación de un servidor dedicado

Para crear un servidor dedicado para el juego, siga los pasos a continuación.

Para crear un servidor dedicado

  1. En Project Configurator, establezca MultiplayerSample como el proyecto activo.

  2. Escriba el siguiente comando:

    lmbr_waf configure
  3. Escriba el siguiente comando para compilar todo el contenido del perfil, para su versión de Visual Studio:

    lmbr_waf build_win_x64_vs2015_profile -p all
  4. Escriba el siguiente comando para compilar game_and_engine de profile_dedicated, para su versión de Visual Studio:

    lmbr_waf build_win_x64_vs2015_profile_dedicated –p game_and_engine
  5. Ejecute el archivo MultiplayerSampleLauncher_Server.exe desde el directorio bin predeterminado.

    • Para Visual Studio 2017, utilice el directorio Bin64vc141.Dedicated.

    • Para Visual Studio 2015, utilice el directorio Bin64vc140.Dedicated.

Plataformas compatibles

El ejemplo de multijugador es compatible con distintas plataformas de cliente y de servidor.

Clientes

Se puede jugar con las siguientes plataformas de cliente:

  • Windows (Visual Studio 2015, 2017)

  • Android

  • iOS

Plataformas de servidor dedicadas

Se admiten las siguientes plataformas de servidor dedicadas:

  • Windows (Visual Studio 2015, 2017)

  • Linux (Ubuntu)

Acerca los certificados autofirmados en el ejemplo de multijugador

En Windows, el ejemplo de multijugador permite un sistema de autoautenticación en el lado del cliente que utiliza un certificado autofirmado que genera el script de compilación para cada usuario. En lo que respecta a este certificado, tenga en cuenta los siguientes puntos:

  • El certificado autofirmado no es un certificado oficial. Si desea enviar un juego que esté disponible públicamente, será preciso que lo sustituya con un certificado de clave pública.

  • En las plataformas macOS y Linux, debe generar certificados autofirmados manualmente.

  • En las plataformas macOS y Linux, el ejemplo de multijugador presenta las siguientes limitaciones:

    • macOS: solo se pueden hacer compilaciones de cliente iOS.

    • Linux: solo se pueden hacer compilaciones de servidor dedicado.

Solución de problemas

He aquí algunos consejos para solucionar algunos problemas de conexión.

  • Si los clientes no pueden detectar un servidor, asegúrese de que el servidor y el cliente estén en la misma subred para permitir la detección de UDP.

  • Si los clientes no pueden conectarse a un servidor, asegúrese de que el servidor y el cliente estén utilizando la misma clave y los mismos archivos de certificado.

  • Al intentar alojar o unirse a una sesión, es posible que reciba uno de los siguientes mensajes de error:

    Invalid Secure Socket configuration given for hosting a session. Ensure that a Public and Private key are being supplied.
    Invalid Secure Socket configuration given for joining an encrypted session. Ensure that a Certificate Authority is being supplied.

    Para resolver estos problemas, lleve a cabo una de las siguientes acciones:

    • Ejecute el comando lmbr_waf configure para generar un conjunto de certificados.

    • En el directorio MultiplayerSample/certificates, especifique sus propios certificados con el nombre apropiado.

    Para obtener más información sobre certificados autofirmados, consulte el tema sobre cifrado en las secciones Características de red de ejemplo de multijugador y Acerca los certificados autofirmados en el ejemplo de multijugador.