Amazon GameLift Anywhere 플릿을 사용하여 통합 테스트 - 아마존 GameLift

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon GameLift Anywhere 플릿을 사용하여 통합 테스트

Amazon GameLift Anywhere 플릿을 사용하여 Amazon GameLift와의 게임 통합을 반복적으로 구축하고 테스트할 수 있습니다. Amazon GameLift 서비스에 연결하여 자체 하드웨어를 Anywhere 플릿으로 설정한 다음 여기에 게임 서버를 설치하고 실행합니다. 테스트 앱을 사용하여 게임 세션 시작/중지, 플레이어 연결 추적, 매치메이킹 채우기 처리와 같은 시나리오를 실행할 수 있습니다. Anywhere 플릿을 사용하면 필요에 따라 게임 서버 빌드를 업데이트하고 호스팅 활동을 완벽하게 파악할 수 있습니다.

Amazon GameLift Server SDK 버전 5 이상과 통합된 게임을 사용하여 Amazon GameLift Anywhere 플릿을 사용할 수 있습니다.

초기 개발

게임을 개발하고 Amazon GameLift Server SDK와 통합하고 있습니다. 통합을 테스트하려면 게임 서버 빌드의 각 새로운 반복을 Amazon GameLift에 업로드하고 플릿을 생성할 수 있습니다. 또는 개발용 랩톱과 함께 Anywhere 플릿을 사용하면 반복 개발 및 테스트를 더 효율적으로 수행할 수 있습니다.

Amazon GameLift 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Anywhere 플릿을 생성하고 랩톱에서 게임 세션을 시작하려면 다음 절차를 수행합니다.

Console
  1. Amazon GameLift 콘솔을 엽니다.

  2. 탐색 창의 호스팅에서 위치를 선택합니다.

  3. 위치 생성을 선택합니다.

  4. 위치 생성 대화 상자에서 다음 작업을 수행하세요.

    1. 위치 이름을 입력합니다. 그러면 Amazon GameLift가 Anywhere 플릿으로 게임을 실행하는 데 사용하는 컴퓨팅 리소스의 위치가 레이블로 표시됩니다. 사용자 지정 위치 이름은 custom-으로 시작해야 합니다.

    2. 생성을 선택합니다.

  5. Anywhere 플릿을 생성하려면 다음 작업을 수행합니다.

    1. 탐색 창의 호스팅에서 플릿을 선택합니다.

    2. 플릿 페이지에서 플릿 생성을 선택합니다.

    3. 컴퓨팅 유형 선택 단계에서 Anywhere를 선택하고 다음을 선택합니다.

    4. 플릿 세부 정보 정의 단계에서 새 플릿을 정의합니다. 자세한 내용은 새 Amazon GameLift 플릿 생성 섹션을 참조하세요.

    5. 위치 선택 단계에서 생성한 사용자 지정 위치를 선택합니다.

    6. 나머지 플릿 생성 단계를 완료하여 Anywhere 플릿을 생성합니다.

  6. 생성한 플릿에 컴퓨팅 리소스로 랩톱을 등록합니다. register-compute 명령(또는 RegisterCompute API 작업)을 사용합니다. 이전 단계에서 생성한 fleet-id를 포함하고 compute-name 및 랩톱의 ip-address를 추가합니다.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    출력 예:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  7. 게임 서버의 디버그 세션을 시작합니다.

    1. 생성한 플릿에서 랩톱의 인증 토큰을 가져옵니다. get-compute-auth-token 명령(또는 GetComputeAuthToken API 작업)을 사용합니다.

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      출력 예:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. 게임 서버 실행 파일의 디버그 인스턴스를 실행합니다. 디버그 인스턴스를 실행하려면 게임 서버가 InitSDK()를 호출해야 합니다. 프로세스가 게임 세션을 호스팅할 준비가 되면 게임 서버가 ProcessReady()를 호출합니다.

  8. 게임 세션을 생성하여 Amazon GameLift Anywhere와의 첫 통합을 테스트합니다. create-game-session 명령(또는 CreateGameSession API 작업)을 사용합니다. 플릿의 사용자 지정 위치를 지정합니다.

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2 \ --location custom-location-1

    출력 예:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift는 등록된 서버 프로세스로 onStartGameSession() 메시지를 보냅니다. 메시지에는 게임 속성, 게임 세션 데이터, 매치메이커 데이터 및 게임 세션에 대한 추가 정보와 함께 이전 단계의 GameSession 객체가 포함됩니다.

  9. 서버 프로세스가 onStartGameSession() 메시지에 ActivateGameSession()으로 응답하도록 게임 서버에 로직을 추가합니다. 이 작업을 통해 서버에서 게임 세션 생성 메시지를 수신하고 수락했음을 알리는 확인 메시지를 Amazon GameLift로 보냅니다. 자세한 내용은 Amazon GameLift Server SDK 참조 섹션을 참조하세요.

이제 게임 서버에서 사용자가 테스트하여 반복에 사용할 수 있는 게임 세션을 실행하고 있습니다. 게임 서버에서 반복하는 방법을 알아보려면 다음 섹션을 계속 진행합니다.

AWS CLI
  1. create-location 명령(또는 CreateLocation API 작업)을 사용하여 사용자 지정 위치를 생성합니다. 사용자 지정 위치는 Amazon GameLift가 Anywhere 플릿으로 게임을 실행하는 데 사용하는 하드웨어의 위치를 레이블로 표시합니다.

    aws gamelift create-location \ --location-name custom-location-1

    출력 예:

    { Location { LocationName = custom-location-1 } }
  2. create-fleet 명령(또는 CreateFleet API 작업)을 사용하여 사용자 지정 위치가 있는 Anywhere 플릿을 생성합니다. Amazon GameLift는 홈 리전과 사용자가 제공하는 사용자 지정 위치에 플릿을 생성합니다.

    aws gamelift create-fleet \ --name LaptopFleet \ --compute-type ANYWHERE \ --locations "location=custom-location-1"

    출력 예:

    Fleet { Name = LaptopFleet, ComputeType = ANYWHERE, FleetId = fleet-1234, Status = ACTIVE ... }
  3. 생성한 플릿에 컴퓨팅 리소스로 랩톱을 등록합니다. register-compute 명령(또는 RegisterCompute API 작업)을 사용합니다. 이전 단계에서 생성한 fleet-id를 포함하고 compute-name 및 랩톱의 퍼블릭 ip-address를 추가합니다.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    출력 예:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  4. 게임 서버의 디버그 세션을 시작합니다.

    1. 생성한 플릿에서 랩톱의 인증 토큰을 가져옵니다. get-compute-auth-token 명령(또는 GetComputeAuthToken API 작업)을 사용합니다.

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      출력 예:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. 게임 서버 실행 파일의 디버그 인스턴스를 실행합니다. 디버그 인스턴스를 실행하려면 게임 서버가 InitSDK()를 호출해야 합니다. 프로세스가 게임 세션을 호스팅할 준비가 되면 게임 서버가 ProcessReady()를 호출합니다.

  5. 게임 세션을 생성하여 Amazon GameLift Anywhere와의 첫 통합을 테스트합니다. create-game-session 명령(또는 CreateGameSession API 작업)을 사용합니다.

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2

    출력 예:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift는 등록된 서버 프로세스로 onStartGameSession() 메시지를 보냅니다. 메시지에는 게임 속성, 게임 세션 데이터, 매치메이커 데이터 및 게임 세션에 대한 추가 정보와 함께 이전 단계의 GameSession 객체가 포함됩니다.

  6. 서버 프로세스가 onStartGameSession() 메시지에 ActivateGameSession()으로 응답하도록 게임 서버에 로직을 추가합니다. 이 작업을 통해 서버에서 게임 세션 생성 메시지를 수신하고 수락했음을 알리는 확인 메시지를 Amazon GameLift로 보냅니다. 자세한 내용은 Amazon GameLift Server SDK 참조 섹션을 참조하세요.

이제 게임 서버에서 사용자가 테스트하여 반복에 사용할 수 있는 게임 세션을 실행하고 있습니다. 게임 서버에서 반복하는 방법을 알아보려면 다음 섹션을 계속 진행합니다.

게임 서버의 반복

이 사용 사례에서는 게임 서버를 설정하고 테스트한 후 버그를 발견한 시나리오에 대해 생각해 봅니다. Amazon GameLift Anywhere를 사용하면 코드를 반복하여 작업할 수 있으므로 Amazon EC2 플릿을 사용하는 번거로운 설정을 피할 수 있습니다.

  1. 가능하면 기존 GameSession을 정리합니다. 게임 서버가 충돌하거나 ProcessEnding()을 호출하지 않는 경우, Amazon GameLift는 게임 서버의 상태 확인 전송을 중단한 후 GameSession을 정리합니다.

  2. 게임 서버의 코드를 변경하고 컴파일한 후 다음 테스트를 준비합니다.

  3. 이전 Anywhere 플릿은 활성 상태이고 랩톱은 플릿의 컴퓨팅 리소스로 등록되어 있습니다. 다시 테스트를 시작하려면 새 디버그 인스턴스를 생성합니다.

    1. 생성한 플릿에서 랩톱의 인증 토큰을 검색합니다. get-compute-auth-token 명령(또는 GetComputeAuthToken API 작업)을 사용합니다.

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      출력 예:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = hijklmnop456, ExpirationTime = 1897492857.11 }
    2. 게임 서버 실행 파일의 디버그 인스턴스를 실행합니다. 디버그 인스턴스를 실행하려면 게임 서버가 InitSDK()를 호출해야 합니다. 프로세스가 게임 세션을 호스팅할 준비가 되면 게임 서버가 ProcessReady()를 호출합니다.

  4. 이제 플릿에서 사용 가능한 서버 프로세스를 사용할 수 있습니다. 게임 세션을 만들고 다음 테스트를 수행합니다. create-game-session 명령(또는 CreateGameSession API 작업)을 사용합니다.

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name SecondDebugSession \ --maximum-player-session-count 2

    Amazon GameLift는 등록된 서버 프로세스로 onStartGameSession() 메시지를 보냅니다. 메시지에는 게임 속성, 게임 세션 데이터, 매치메이커 데이터 및 게임 세션에 대한 추가 정보와 함께 이전 단계의 GameSession 객체가 포함됩니다.

  5. 서버 프로세스가 onStartGameSession() 메시지에 ActivateGameSession()으로 응답하도록 게임 서버에 로직을 추가합니다. 이 작업을 통해 서버에서 게임 세션 생성 메시지를 수신하고 수락했음을 알리는 확인 메시지를 Amazon GameLift로 보냅니다. 자세한 내용은 Amazon GameLift Server SDK 참조 섹션을 참조하세요.

게임 서버 테스트를 마친 후에도 플릿 및 게임 서버 관리에 Amazon GameLift를 계속 사용할 수 있습니다. 자세한 내용은 Amazon GameLift Anywhere 플릿 생성 섹션을 참조하세요.