Unity용 플러그인: Amazon을 사용하여 로컬 테스트 설정 GameLift Anywhere - Amazon GameLift

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

Unity용 플러그인: Amazon을 사용하여 로컬 테스트 설정 GameLift Anywhere

이 워크플로에서는 Amazon GameLift 기능에 대한 클라이언트 및 서버 게임 코드를 추가하고 플러그인을 사용하여 로컬 워크스테이션을 테스트 게임 서버 호스트로 지정합니다. 통합 작업을 완료하면 플러그인을 사용하여 게임 클라이언트 및 서버 구성 요소를 빌드합니다.

Amazon GameLift Anywhere 워크플로를 시작하려면:
  • Unity 편집기 기본 메뉴에서 Amazon GameLift을 선택하고 Host with Anywhere를 선택합니다. 이 작업을 수행하면 @Anywhere 플릿. 이 페이지에는 게임 구성 요소를 통합, 빌드 및 시작하는 5단계 프로세스가 나와 있습니다.

프로필 설정

이 워크플로를 따를 때 사용할 프로필을 선택합니다. 선택한 프로필은 워크플로의 모든 단계에 영향을 줍니다. 생성하는 모든 리소스는 프로필의 AWS 계정과 연결되며 프로필의 기본 AWS 리전에 배치됩니다. 프로필 사용자의 권한에 따라 AWS 리소스 및 작업에 대한 액세스 권한이 결정됩니다.

  1. 사용 가능한 프로필 드롭다운 목록에서 프로필을 선택합니다. 아직 프로필이 없거나 새 프로필을 생성하려는 경우 Amazon GameLift 메뉴로 이동하여 AWS 계정 프로필 설정을 선택합니다.

  2. 부트스트랩 상태가 “활성”이 아닌 경우, 프로필 부트스트랩을 선택하고 상태가 “활성”으로 변경될 때까지 기다립니다.

Amazon과 게임 통합 GameLift

참고

샘플 게임을 가져온 경우 이 단계를 건너뛸 수 있습니다. 샘플 게임 자산에는 이미 필요한 서버 및 클라이언트 코드가 있습니다.

워크플로의 이 단계에서는 게임 프로젝트의 클라이언트 및 서버 코드를 업데이트합니다.

  • * 게임 서버는 Amazon GameLift 서비스와 통신하여 게임 세션을 시작하고, 게임 세션 연결 정보를 제공하고, 상태를 보고하라는 메시지를 받을 수 있어야 합니다.

  • 게임 클라이언트는 게임 세션에 대한 정보를 얻고, 게임 세션에 참여하거나 시작하고, 게임에 참여하려면 연결 정보를 얻을 수 있어야 합니다.

서버 코드 통합

사용자 지정 장면에서 자체 게임 프로젝트를 사용하는 경우 제공된 샘플 코드를 사용하여 게임 프로젝트에 필요한 서버 코드를 추가합니다.

  1. 게임 프로젝트 파일에서 Assets/Scripts/Server 폴더를 엽니다. 존재하지 않는 경우 생성합니다.

  2. GitHub 리포지토리 aws/amazon-gamelift-plugin-unity로 이동하여 경로 를 엽니다Samples~/SampleGame/Assets/Scripts/Server.

  3. GameLiftServer.cs. 파일을 찾아 게임 프로젝트의 서버 폴더에 복사합니다. 서버 실행 파일을 빌드할 때 이 파일을 빌드 대상으로 사용합니다.

샘플 코드에는 Amazon GameLift C# 서버SDK(버전 5)를 사용하는 다음과 같은 최소 필수 요소가 포함됩니다.

  • Amazon GameLift API 클라이언트를 초기화합니다. Amazon GameLift Anywhere 플릿에는 서버 파라미터가 있는 InitSDK() 호출이 필요합니다. 이러한 설정은 플러그인에서 사용하도록 자동으로 설정됩니다.

  • , 및 를 포함하여 Amazon GameLift 서비스의 요청에 응답하는 데 필요한 콜백 함수를 구현합니다OnStartGameSessionOnProcessTerminateonHealthCheck.

  • 서버 프로세스가 게임 세션을 호스팅할 준비가 되면 지정된 포트ProcessReady()가 있는 를 호출하여 Amazon GameLift 서비스에 알립니다.

샘플 서버 코드를 사용자 지정하려면 다음 리소스를 참조하세요.

클라이언트 코드 통합

사용자 지정 장면과 함께 자체 게임 프로젝트를 사용하는 경우 기본 기능을 게임 클라이언트에 통합해야 합니다. 또한 플레이어가 게임 세션에 로그인하고 참여할 수 있도록 UI 요소를 추가해야 합니다. Amazon GameLift 서비스APIs(에서 AWS SDK)를 사용하여 게임 세션 정보를 가져오거나, 새 게임 세션을 생성하거나, 기존 게임 세션에 참여하거나,

Anywhere 플릿을 사용하여 로컬 테스트를 위한 클라이언트를 구축할 때 Amazon GameLift 서비스에 직접 호출을 추가할 수 있습니다. 클라우드 호스팅을 위한 게임을 개발할 때 또는 프로덕션 호스팅을 위해 Anywhere 플릿을 사용할 계획이라면 게임 클라이언트와 Amazon 서비스 간의 모든 통신을 처리하기 위해 클라이언트 측 백엔드 GameLift 서비스를 생성해야 합니다.

Amazon을 클라이언트 코드 GameLift 에 통합하려면 다음 리소스를 가이드로 사용하세요.

  • 클라이언트를 리포지토리 aws/의 GameLiftCoreApi 클래스 GitHub와 통합합니다amazon-gamelift-plugin-unity. 이 클래스는 플레이어 인증 및 게임 세션 정보 검색에 대한 제어를 제공합니다.

  • GitHub 리포지토리 aws/, amazon-gamelift-plugin-unity에서 사용할 수 있는 샘플 게임 통합을 봅니다Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs.

  • Unity 게임 클라이언트 GameLift 에 Amazon 추가의 지침을 따릅니다.

Anywhere 플릿에 연결하는 게임 클라이언트의 경우 게임 클라이언트에 다음 정보가 필요합니다. 플러그인은 플러그인에서 생성한 리소스를 사용하도록 게임 프로젝트를 자동으로 업데이트합니다.

  • FleetId - Anywhere 플릿의 고유 식별자입니다.

  • FleetLocation - Anywhere 플릿의 사용자 지정 위치입니다.

  • AwsRegion - Anywhere 플릿이 호스팅되는 AWS 리전입니다. 사용자 프로필에 설정한 리전입니다.

  • ProfileName - 용 에 대한 액세스를 AWS SDK 허용하는 로컬 시스템의 AWS 보안 인증 프로필입니다 GameLift. 게임 클라이언트는 이러한 자격 증명을 사용하여 Amazon GameLift 서비스에 대한 요청을 인증합니다.

참고

보안 인증 프로필은 플러그인에서 생성되어 로컬 시스템에 저장됩니다. 따라서 로컬 시스템(또는 프로필이 동일한 시스템)에서 클라이언트를 실행해야 합니다.

Anywhere 플릿에 연결

이 단계에서는 사용할 Anywhere 플릿을 지정합니다. Anywhere 플릿은 게임 서버 호스팅을 위해 어디에서나 배치할 수 있는 컴퓨팅 리소스 모음을 정의합니다.

  • 현재 사용 중인 AWS 계정에 기존 Anywhere 플릿이 있는 경우 플릿 이름 드롭다운 필드를 열고 플릿을 선택합니다. 이 드롭다운은 현재 활성 사용자 프로필에 대한 AWS 리전의 Anywhere 플릿만 표시합니다.

  • 기존 플릿이 없거나 새 플릿을 생성하려는 경우 새 Anywhere 플릿 생성을 선택하고 플릿 이름을 입력합니다.

프로젝트에 Anywhere 플릿을 선택한 후 Amazon은 플릿 상태가 활성 상태인지 GameLift 확인하고 플릿 ID를 표시합니다. Unity 편집기의 출력 로그에서 이 요청의 진행 상황을 추적할 수 있습니다.

컴퓨팅 등록

이 단계에서는 로컬 워크스테이션을 새로운 Anywhere 플릿의 컴퓨팅 리소스로 등록합니다.

  1. 로컬 시스템의 컴퓨팅 이름을 입력합니다. 플릿에 두 개 이상의 컴퓨팅을 추가하는 경우 이름은 고유해야 합니다.

  2. 컴퓨팅 등록을 선택합니다. Unreal 편집기의 출력 로그에서 이 요청의 진행 상황을 추적할 수 있습니다.

플러그인은 IP 주소가 localhost(127.0.0.1)로 설정된 로컬 워크스테이션을 등록합니다. 이 설정은 동일한 시스템에서 게임 클라이언트와 서버를 실행한다고 가정합니다.

이 작업에 대한 응답으로 Amazon은 컴퓨팅에 연결할 수 있는지 GameLift 확인하고 새로 등록된 컴퓨팅에 대한 정보를 반환합니다.

게임 시작

이 단계에서는 게임 구성 요소를 빌드하고 시작하여 게임을 플레이합니다. 다음 단계를 완료합니다.

  1. 게임 클라이언트를 구성합니다. 이 단계에서는 플러그인에 게임 프로젝트의 GameLiftClientSettings 자산을 업데이트하라는 메시지를 표시합니다. 플러그인은 이 자산을 사용하여 게임 클라이언트가 Amazon GameLift 서비스에 연결하는 데 필요한 특정 정보를 저장합니다.

    1. 샘플 게임을 가져오고 초기화하지 않은 경우 새 GameLiftClientSettings 자산을 생성합니다. Unity 편집기 기본 메뉴에서 자산, 생성 GameLift, 클라이언트 설정 을 선택합니다. 프로젝트에 의 사본을 여러 GameLiftClientSettings 개 생성하면 플러그인이 이를 자동으로 감지하고 플러그인이 업데이트할 자산을 알려줍니다.

    2. 게임 시작에서 클라이언트 구성: Anywhere 설정 적용을 선택합니다. 이 작업은 방금 설정한 Anywhere 플릿을 사용하도록 게임 클라이언트 설정을 업데이트합니다.

  2. 게임 클라이언트를 빌드하고 실행합니다.

    1. 표준 Unity 빌드 프로세스를 사용하여 클라이언트 실행 파일을 빌드합니다. 파일, 빌드 설정 에서 플랫폼을 Windows, Mac, Linux 로 전환합니다. 샘플 게임을 가져와 설정을 초기화하면 빌드 목록과 빌드 대상이 자동으로 업데이트됩니다.

    2. 새로 빌드된 게임 클라이언트 실행 파일의 인스턴스를 하나 이상 시작합니다.

  3. Anywhere 플릿에서 게임 서버를 시작합니다. 서버: Editor에서 서버 시작을 선택합니다. 이 작업은 Unity 편집기가 열려 있는 한 클라이언트가 연결할 수 있는 라이브 서버를 시작합니다.

  4. 게임 세션을 시작하거나 참여합니다. 게임 클라이언트 인스턴스에서 UI를 사용하여 각 클라이언트를 게임 세션에 조인합니다. 이렇게 하는 방법은 클라이언트에 기능을 추가한 방법에 따라 달라집니다.

샘플 게임 클라이언트를 사용하는 경우 다음과 같은 특성이 있습니다.

  • 플레이어 로그인 구성 요소입니다. Anywhere 플릿의 게임 서버에 연결할 때는 플레이어 검증이 없습니다. 값을 입력하여 게임 세션에 참여할 수 있습니다.

  • 간단한 조인 게임 UI. 클라이언트가 게임에 참여하려고 하면 클라이언트는 사용 가능한 플레이어 슬롯이 있는 활성 게임 세션을 자동으로 찾습니다. 사용할 수 있는 게임 세션이 없는 경우 클라이언트는 새 게임 세션을 요청합니다. 게임 세션을 사용할 수 있는 경우 클라이언트는 사용 가능한 게임 세션에 참여하도록 요청합니다. 여러 동시 클라이언트로 게임을 테스트할 때 첫 번째 클라이언트는 게임 세션을 시작하고 나머지 클라이언트는 기존 게임 세션에 자동으로 참여합니다.

  • 플레이어 슬롯 4개가 있는 게임 세션. 최대 4개의 게임 클라이언트 인스턴스를 동시에 시작할 수 있으며 동일한 게임 세션에 참여합니다.

서버 실행 파일에서 시작(선택 사항)

Anywhere 플릿에서 테스트할 게임 서버 실행 파일을 빌드하고 시작할 수 있습니다.

  1. 표준 Unity 빌드 프로세스를 사용하여 서버 실행 파일을 빌드합니다. 파일, 빌드 설정에서 플랫폼을 전용 서버로 전환하고 빌드합니다.

  2. Anywhere AWS CLI플릿 ID 및 AWS 리전으로 명령을 호출하여 단기 인증 토큰get-compute-auth-token을 가져옵니다. 플릿을 생성할 때 플릿 ID가 Connect to a Anywhere Fleet에 표시됩니다. 활성 프로필을 선택하면 프로필 설정에 AWS 리전이 표시됩니다.

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. 명령줄에서 새로 구축된 게임 서버 실행 파일을 시작하고 유효한 인증 토큰으로 전달합니다.

    my_project.exe --authToken [token]