ReferenciaGameLift de la API del servidor Amazon (C#): Acciones - Amazon GameLift

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ReferenciaGameLift de la API del servidor Amazon (C#): Acciones

Esta referencia de la API del servidor AmazonGameLift C# le ayuda a preparar su juego multijugador para usarlo con AmazonGameLift. Para obtener información detallada acerca del proceso de integración, consulteAñade Amazon GameLift a tu servidor de juegos.

GetSdkVersion()

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

Sintaxis

AwsStringOutcome GetSdkVersion();

Valor devuelto

Si funciona correctamente, devuelve la versión del SDK actual como objeto AwsStringOutcome. La cadena devuelta incluye el número de versión (ejemplo5.0.0). Si no funciona, devuelve un mensaje de error.

Ejemplo

var getSdkVersionOutcome = GameLiftServerAPI.GetSdkVersion();

InitSDK()

Inicializa elGameLift SDK de Amazon. Ejecute este método en el momento del lanzamiento antes de queGameLift se produzca cualquier otra inicialización relacionada con Amazon.

Sintaxis

GenericOutcome InitSDK(ServerParameters serverParameters);

Parámetros

ServerParameters

UnServerParameters objeto contiene información sobre la comunicación del servidor con AmazonGameLift desde unGameLiftAnywhere servidor de Amazon.

  • La URLWebSocket utilizada para conectarse a tu servidor de juegos.

  • El ID del proceso utilizado para alojar el servidor de juegos.

  • El ID del equipo que aloja los procesos del servidor del juego.

  • El ID de laGameLift flota de Amazon que contiene suGameLiftAnywhere ordenador de Amazon.

  • El token de autorización generado por laGameLift operación de Amazon.

Para inicializar un servidor de juegos en un EC2GameLift administrado por Amazon, cree su servidorServerParameters connull valores. Tras proporcionarnull los valores, AmazonGameLift configura el entorno informático y se conecta automáticamente a AmazonGameLift por usted.

Valor devuelto

Si tiene éxito, devuelve unInitSdkOutcome objeto para indicar que el proceso del servidor está listo para la llamadaProcessReady().

Ejemplo

GameLiftAnywhereEjemplo de Amazon

//Define the server parameters ServerParameters serverParameters = new ServerParameters( webSocketUrl, processId, hostId, fleetId, authToken); //InitSDK establishes a local connection with GameLift's agent to enable further communication. var initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);

Ejemplo de EC2GameLift gestionado por Amazon

//Define the server parameters ServerParameters serverParameters = new ServerParameters(null, null, null, null, null); //InitSDK establishes a connection with GameLift's websocket server for communication. var initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);

ProcessReady()

Notifica a AmazonGameLift que el proceso del servidor está listo para albergar sesiones de juego. Llame a este método después de la invocaciónInitSDK(). Este método debe invocarse solo una vez por proceso.

Sintaxis

GenericOutcome ProcessReady(ProcessParameters processParameters)

Parámetros

ProcessParameters

UnProcessParameters objeto contiene información sobre el proceso del servidor.

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

Este ejemplo ilustra las implementaciones del método y de la función delegada.

// Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnStartGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnUpdateGameSession, port, new LogParameters(new List<string>() // Examples of log and error files written by the game server { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

ProcessEnding()

Notifica a AmazonGameLift que el proceso del servidor se está cerrando. Este método debe llamarse después de realizar las demás tareas de limpieza, incluido el cierre de todas las sesiones de juego activas. Se debe salir de este método con un código de salida de 0; un código de salida que no sea 0 provoca un mensaje de evento que afirma que no se ha salido del proceso correctamente.

Una vez que el método salga con un código de 0, puede finalizar el proceso con un código de salida correcto. También puede salir del proceso con un código de error. Si sales con un código de error, el evento de la flota indicará que el proceso finalizó de forma anormal (SERVER_PROCESS_TERMINATED_UNHEALTHY).

Sintaxis

GenericOutcome ProcessEnding()

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

ActivateGameSession()

Notifica a AmazonGameLift que el proceso del servidor ha activado una sesión de juego y ahora está listo para recibir las conexiones de los jugadores. Esta acción debe ejecutarse como parte de la función deonStartGameSession() devolución de llamada, después de inicializar toda la sesión de juego.

Sintaxis

GenericOutcome ActivateGameSession()

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

Este ejemplo muestra cómo se llama a ActivateGameSession() como parte de la función de delegación onStartGameSession().

void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }

UpdatePlayerSessionCreationPolicy()

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

Sintaxis

GenericOutcome UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy playerSessionPolicy)

Parámetros

playerSessionPolicy

Nombre de cadena que indica si la sesión de juego acepta jugadores nuevos.

Los valores válidos son:

  • ACCEPT_ALL: se aceptan todas las sesiones de jugador nuevas.

  • DENY_ALL: se rechazan todas las sesiones de jugador nuevas.

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

var updatePlayerSessionPolicyOutcome = GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);

GetGameSessionId()

Recupera el ID de la sesión de juego alojada en el proceso del servidor activo.

Para los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve unGameLiftError.

Sintaxis

AwsStringOutcome GetGameSessionId()

Valor devuelto

Si funciona correctamente, devuelve el ID de sesión del juego como objeto AwsStringOutcome. Si no funciona, devuelve un mensaje de error.

Ejemplo

var getGameSessionIdOutcome = GameLiftServerAPI.GetGameSessionId();

GetTerminationTime()

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir unaonProcessTerminate() llamada de AmazonGameLift. AmazonGameLift llamaonProcessTerminate() por los siguientes motivos:

  • Cuando el proceso del servidor ha informado de problemas o no ha respondido a AmazonGameLift.

  • Al finalizar la instancia durante un evento de reducción de escala.

  • Cuando se termina una instancia debido a una interrupción puntual.

Sintaxis

AwsDateTimeOutcome GetTerminationTime()

Valor devuelto

Si tiene éxito, devuelve la hora de terminación como unAwsDateTimeOutcome objeto. El valor es el tiempo de finalización, expresado en marcas transcurridas desde entonces0001 00:00:00. Por ejemplo, el valor de fecha y hora2020-09-13 12:26:40 -000Z es igual a637355968000000000 las marcas. Si no hay una hora de finalización disponible, devuelve un mensaje de error.

Ejemplo

var getTerminationTimeOutcome = GameLiftServerAPI.GetTerminationTime();

AcceptPlayerSession()

Notifica a AmazonGameLift que un jugador con el identificador de sesión especificado se ha conectado al proceso del servidor y necesita ser validado. AmazonGameLift comprueba que el ID de sesión del jugador es válido. Una vez validada la sesión del jugador, AmazonGameLift cambia el estado del espacio de jugador de RESERVADO a ACTIVO.

Sintaxis

GenericOutcome AcceptPlayerSession(String playerSessionId)

Parámetros

playerSessionId

ID único queGameLift se emite cuando se crea una nueva sesión de jugador.

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

Este ejemplo muestra una función para gestionar una solicitud de conexión, incluida la validación y el rechazo de ID de sesión de jugador no válidos.

void ReceiveConnectingPlayerSessionID (Connection connection, String playerSessionId){ var acceptPlayerSessionOutcome = GameLiftServerAPI.AcceptPlayerSession(playerSessionId); if(acceptPlayerSessionOutcome.Success) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(acceptPlayerSessionOutcome.Error.ErrorMessage); } }

RemovePlayerSession()

Notifica a AmazonGameLift que un jugador se ha desconectado del proceso del servidor. En respuesta, AmazonGameLift cambia el espacio del jugador a disponible.

Sintaxis

GenericOutcome RemovePlayerSession(String playerSessionId)

Parámetros

playerSessionId

ID único emitido por AmazonGameLift cuando se crea una nueva sesión de jugador.

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);

DescribePlayerSessions()

Recupera los datos de la sesión del jugador, que incluyen la configuración, los metadatos de la sesión y los datos del jugador. Utilice esta acción para obtener información para una única sesión de jugador, para todas las sesiones de jugador de una sesión de juego o para todas las sesiones de jugador asociadas a un solo ID de jugador.

Sintaxis

DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)

Parámetros

DescribePlayerSessionsRequest

UnDescribePlayerSessionsRequest objeto describe qué sesiones del jugador se van a recuperar.

Valor devuelto

Si tiene éxito, devuelve unDescribePlayerSessionsOutcome objeto que contiene un conjunto de objetos de sesión del jugador que se ajustan a los parámetros de la solicitud.

Ejemplo

Este ejemplo muestra una solicitud de todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir NextTokeny establecer el valor límite en 10, AmazonGameLift devolverá los registros de sesión de los 10 primeros jugadores que coincidan con la solicitud.

// Set request parameters var describePlayerSessionsRequest = new Aws.GameLift.Server.Model.DescribePlayerSessionsRequest() { GameSessionId = GameLiftServerAPI.GetGameSessionId().Result, //gets the ID for the current game session Limit = 10, PlayerSessionStatusFilter = PlayerSessionStatusMapper.GetNameForPlayerSessionStatus(PlayerSessionStatus.ACTIVE) }; // Call DescribePlayerSessions Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome =

StartMatchBackfill()

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte la función deFlexMatch relleno.

Esta acción es asíncrona. Si se emparejan nuevos jugadores, AmazonGameLift envía datos actualizados del matchmaker mediante la función de devolución de llamadasOnUpdateGameSession().

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a StopMatchBackfill() para cancelar la solicitud original.

Sintaxis

StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);

Parámetros

StartMatchBackfillRequest

UnStartMatchBackfillRequest objeto contiene información sobre la solicitud de relleno.

Valor devuelto

Devuelve unStartMatchBackfillOutcome objeto con el identificador del ticket de relleno coincidente o un error con un mensaje de error.

Ejemplo

// Build a backfill request var startBackfillRequest = new AWS.GameLift.Server.Model.StartMatchBackfillRequest() { TicketId = "a ticket ID", //optional MatchmakingConfigurationArn = "the matchmaker configuration ARN", GameSessionId = GameLiftServerAPI.GetGameSessionId().Result, // gets ID for current game session //get player data for all currently connected players MatchmakerData matchmakerData = MatchmakerData.FromJson(gameSession.MatchmakerData); // gets matchmaker data for current players // get matchmakerData.Players // remove data for players who are no longer connected Players = ListOfPlayersRemainingInTheGame }; // Send backfill request var startBackfillOutcome = GameLiftServerAPI.StartMatchBackfill(startBackfillRequest); // Implement callback function for backfill void OnUpdateGameSession(GameSession myGameSession) { // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed }

StopMatchBackfill()

Cancela una solicitud de reposición de partidas activa. Para obtener más información, consulte la función deFlexMatch relleno.

Sintaxis

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

Parámetros

StopMatchBackfillRequest

UnStopMatchBackfillRequest objeto que proporciona detalles sobre el ticket de matchmaking que estás deteniendo.

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

// Set backfill stop request parameters var stopBackfillRequest = new AWS.GameLift.Server.Model.StopMatchBackfillRequest() { TicketId = "a ticket ID", //optional, if not provided one is autogenerated MatchmakingConfigurationArn = "the matchmaker configuration ARN", //from the game session matchmaker data GameSessionId = GameLiftServerAPI.GetGameSessionId().Result //gets the ID for the current game session }; var stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);

GetComputeCertificate()

Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre su recursoGameLiftAnywhere informático de Amazon y AmazonGameLift. Puede utilizar la ruta del certificado al registrar su dispositivo informático en unaGameLiftAnywhere flota de Amazon. Para obtener más información, consulte RegisterCompute.

Sintaxis

GetComputeCertificateOutcome GetComputeCertificate();

Valor devuelto

Devuelve unGetComputeCertificateResponse objeto que contiene lo siguiente:

  • CertificatePath: la ruta al certificado TLS de su recurso de cómputo.

  • ComputeName: el nombre del recurso de cómputo.

Ejemplo

var getComputeCertificateOutcome = GameLiftServerAPI.GetComputeCertificate();

GetFleetRoleCredentials()

Recupera las credenciales del rol de servicio que creas para extender los permisos a tu otroServicios de AWS en AmazonGameLift. Estas credenciales permiten que el servidor del juego utilice tusAWS recursos. Para obtener más información, consulte Configure un rol de servicio de IAM para Amazon GameLift.

Sintaxis

GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);

Parámetros

GetFleetRoleCredentialsRequest

Credenciales de rol que amplían el acceso limitado a tusAWS recursos al servidor del juego.

Valor devuelto

Devuelve unGetFleetRoleCredentialsOutcome objeto que contiene lo siguiente:

  • AssumedRoleUserArnNombre de recurso de Amazon (ARN) del usuario al que pertenece el rol de servicio.

  • AssumedRoleId- El ID del usuario al que pertenece la función de servicio.

  • AccessKeyId- El identificador de la clave de acceso para autenticar y proporcionar acceso a susAWS recursos.

  • SecretAccessKey- Nombre de acceso secreto para la autenticación.

  • SessionToken- Un token para identificar la sesión activa actual que interactúa con susAWS recursos.

  • Vencimiento: el tiempo transcurrido hasta que caduquen las credenciales de la sesión.

Ejemplo

// form the fleet credentials request var getFleetRoleCredentialsRequest = new AWS.GameLift.Server.Model.GetFleetRoleCredentialsRequest(){ RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction" } var GetFleetRoleCredentialsOutcome credentials = GetFleetRoleCredentials(getFleetRoleCredentialsRequest)

Destruir ()

Elimina la instancia del SDK del servidor deGameLift juegos de Amazon de tu recurso. Esto elimina toda la información de estado, detiene la comunicación de Heartbeat con AmazonGameLift, detiene la gestión de las sesiones del juego y cierra cualquier conexión. Llame a esta opción una vez finalizados los procesos del servidor.

Sintaxis

GenericOutcome Destroy()

Valor devuelto

Devuelve un resultado genérico que consiste en el éxito o el fracaso con un mensaje de error.

Ejemplo

// Operations to end game sessions and the server process var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // Otherwise, exit with error code Environment.Exit(errorCode); // Shutdown and destroy the instance of the GameLift Game Server SDK var destroyOutcome = GameLiftServerAPI.Destroy();