GameLift에서 전환

AWS Gamelift에서 Edgegap으로 전환하려는 경우 다음의 간단한 단계로 금방 실행할 수 있습니다. 시작하기 전에 우리는 다음을 기대합니다:

  • 현재 AWS Gamelift를 사용하고 있습니다

  • 현재 Gamelift에서 작동하는 게임 서버 빌드가 있습니다

  • 이미 생성했습니다배포했습니다 Edgegap에 애플리케이션이 있습니다

circle-info

Edgegap 솔루션을 사용하면 훨씬 더 많은 위치의 이점을 누릴 수 있습니다.

AWS Gamelift SDK 제거

Edgegap으로 전환하는 첫 번째 단계는 게임 서버 내에서 AWS Gamelift를 초기화하는 코드를 제거하는 것입니다. 이는 오버헤드를 줄이고 오류를 방지하기 위함입니다. 제거하려는 코드는 아마 다음과 비슷할 것입니다:

Unity (C#)

using UnityEngine;
using Aws.GameLift.Server;
using System.Collections.Generic;

public class GameLiftServerExampleBehavior : MonoBehaviour
{
    //이것은 게임 서버 프로세스를 GameLift에서 활성화되게 하는 GameLift 서버 SDK의 간단한 통합 예시입니다!
    public void Start()
    {
        //플레이어 연결을 위해 게임 서버가 수신 대기하는 포트 번호를 식별합니다(여기서는 단순화를 위해 하드코딩).
        var listeningPort = 7777;

        //InitSDK는 추가 통신을 가능하게 하기 위해 GameLift의 에이전트와 로컬 연결을 설정합니다.
        var initSDKOutcome = GameLiftServerAPI.InitSDK();
        if (initSDKOutcome.Success)
        {
            ProcessParameters processParameters = new ProcessParameters(
                (gameSession) => {
                    //게임 세션이 생성되면 GameLift는 활성화 요청을 게임 서버로 보내고 게임 속성 및 기타 설정을 포함한 게임 세션 객체를 전달합니다.
                    //여기서 게임 서버는 게임 세션 객체에 따라 조치를 취해야 합니다.
                    //게임 서버가 들어오는 플레이어 연결을 받을 준비가 되면 GameLiftServerAPI.ActivateGameSession()을 호출해야 합니다.
                    GameLiftServerAPI.ActivateGameSession();
                },
                (updateGameSession) => {
                    //게임 세션이 업데이트되면(예: FlexMatch 백필에 의해) GameLift는 업데이트된 게임 세션 객체를 포함한 요청을 게임
                    //서버로 보냅니다. 게임 서버는 제공된
                    //matchmakerData를 검사하고 새로 들어오는 플레이어를 적절히 처리할 수 있습니다.
                    //updateReason은 이 업데이트가 제공되는 이유입니다.
                },
                () => {
                    //OnProcessTerminate 콜백. GameLift는 이 게임 서버를 호스팅하는 인스턴스를 종료하기 전에 이 콜백을 호출합니다.
                    //이 콜백은 게임 서버가 상태를 저장하고 서비스와 통신하는 등 종료 전에 작업할 기회를 제공합니다.
                    //이 경우 우리는 단순히 GameLift에 실제로 종료할 것이라고 알립니다.
                    GameLiftServerAPI.ProcessEnding();
                },
                () => {
                    //이것은 HealthCheck 콜백입니다.
                    //GameLift는 대략 60초마다 이 콜백을 호출합니다.
                    //여기서 게임 서버는 종속성 등의 상태를 확인하고 싶을 수 있습니다.
                    //건강하면 true를, 아니면 false를 반환하십시오.
                    //게임 서버는 자신의 상태를 응답하기 위해 60초가 주어집니다. 게임 서버가 제시간에 응답하지 않으면 GameLift는 기본값으로 'false'를 사용합니다.
                    //이 경우 우리는 항상 건강합니다!
                    return true;
                },
                listeningPort, //이 게임 서버는 들어오는 플레이어 연결을 위해 포트 7777에서 수신 대기한다고 GameLift에 알립니다.
                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에. 이 애플리케이션은 귀하의 게임 서버를 나타냅니다. 이 애플리케이션을 통해 서버를 배포할 수 있습니다.

이제 배포하십시오 플레이어를 위해 필요할 때 서버를!

마지막 업데이트

도움이 되었나요?