Переход с Gamelift
Если вы хотите перейти с использования AWS GameLift на Edgegap, следующие простые шаги позволят вам запуститься в кратчайшие сроки. Прежде чем начать, мы предполагаем, что:
Вы в настоящее время используете AWS GameLift
У вас есть рабочая сборка игрового сервера на GameLift
Вы уже создали и развернули приложение на Edgegap
Удалите AWS GameLift SDK
Первым шагом к переходу на Edgegap является удаление кода, который инициализирует AWS GameLift внутри вашего игрового сервера. Это нужно для уменьшения накладных расходов и предотвращения ошибок. Код, который вы собираетесь удалить, вероятно, выглядит следующим образом:
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 — контейнеризация вашего игрового сервера. Вы можете следовать следующим руководствам:
Unity
Unreal
Отправьте ваш контейнер в репозиторий
Вам нужно будет отправить ваш контейнер в репозиторий. Вы можете использовать приватный репозиторий Edgegap или любой другой вариант.
Создайте приложение на Edgegap
Теперь, когда ваш контейнер находится в репозитории, вам потребуется создать приложение на Edgegap. Это приложение будет представлять ваш игровой сервер. С этим приложением вы сможете развернуть ваш сервер.
Теперь вы можете развернуть ваш сервер по требованию для ваших игроков!
Последнее обновление
Это было полезно?

