Переход с GameLift
Удалите AWS GameLift SDK
Unity (C#)
using UnityEngine;
using Aws.GameLift.Server;
using System.Collections.Generic;
public class GameLiftServerExampleBehavior : MonoBehaviour
{
//Это пример простой интеграции с GameLift server SDK, которая сделает процессы игрового сервера активными на GameLift!
public void Start()
{
//Определите номер порта (здесь жестко задан для простоты), на котором игровой сервер прослушивает подключения игроков
var listeningPort = 7777;
//InitSDK установит локальное соединение с агентом GameLift для обеспечения дальнейшей связи.
var initSDKOutcome = GameLiftServerAPI.InitSDK();
if (initSDKOutcome.Success)
{
ProcessParameters processParameters = new ProcessParameters(
(gameSession) => {
//Когда создается игровая сессия, GameLift отправляет запрос на активацию игрового сервера и передает объект game session, содержащий свойства игры и другие настройки.
//Здесь игровой сервер должен предпринять действия на основе объекта игровой сессии.
//Когда игровой сервер будет готов принимать входящие подключения игроков, он должен вызвать GameLiftServerAPI.ActivateGameSession()
GameLiftServerAPI.ActivateGameSession();
},
(updateGameSession) => {
//Когда игровая сессия обновляется (например, при завершении FlexMatch backfill), GameLift отправляет запрос игровому
//серверу, содержащий обновленный объект игровой сессии. Затем игровой сервер может просмотреть предоставленные
//matchmakerData и соответствующим образом обработать новых входящих игроков.
//updateReason — это причина, по которой предоставляется это обновление.
},
() => {
//Обратный вызов OnProcessTerminate. GameLift вызовет этот обратный вызов перед выключением экземпляра, на котором размещен этот игровой сервер.
//Он дает игровому серверу возможность сохранить состояние, связаться с сервисами и т. д. перед завершением работы.
//В этом случае мы просто сообщаем GameLift, что действительно собираемся завершить работу.
GameLiftServerAPI.ProcessEnding();
},
() => {
//Это обратный вызов HealthCheck.
//GameLift будет вызывать этот обратный вызов примерно каждые 60 секунд.
//Здесь игровой сервер может проверить состояние зависимостей и т.п.
//Просто верните true, если все в порядке, иначе false.
//У игрового сервера есть 60 секунд, чтобы ответить своим статусом здоровья. Если игровой сервер не ответит вовремя, GameLift по умолчанию примет 'false'.
//В этом случае мы всегда здоровы!
return true;
},
listeningPort, //Этот игровой сервер сообщает GameLift, что будет прослушивать порт 7777 для входящих подключений игроков.
new LogParameters(new List<string>()
{
//Здесь игровой сервер сообщает GameLift, какие файлы загружать, когда игровая сессия завершится.
//GameLift загрузит все указанное здесь, чтобы разработчики могли получить это позже.
"/local/game/logs/myserver.log"
}));
//Вызов ProcessReady сообщает GameLift, что игровой сервер готов принимать входящие игровые сессии!
var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParameters);
if (processReadyOutcome.Success)
{
print("ProcessReady success.");
}
else
{
print("ProcessReady failure : " + processReadyOutcome.Error.ToString());
}
}
else
{
print("InitSDK failure : " + initSDKOutcome.Error.ToString());
}
}
void OnApplicationQuit()
{
//Обязательно вызовите GameLiftServerAPI.Destroy() при выходе из приложения. Это сбрасывает локальное соединение с агентом GameLift.
GameLiftServerAPI.Destroy();
}
}Unreal Engine (C++)
Контейнеризируйте ваш игровой сервер
Отправьте ваш контейнер в репозиторий
Создайте приложение на Edgegap
Последнее обновление
Это было полезно?

