Unity용 플러그인: Amazon에서 로컬 테스트 설정 GameLift Anywhere - 아마존 GameLift

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

Unity용 플러그인: Amazon에서 로컬 테스트 설정 GameLift Anywhere

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

Amazon GameLift Anywhere 워크플로를 시작하려면:
  • Unity 에디터 메인 메뉴에서 GameLiftAmazon을 선택하고 어디서든 호스팅하기를 선택합니다. 그러면 @ Anywhere 플릿으로 게임을 설정할 수 있는 플러그인 페이지가 열립니다. 이 페이지는 게임 구성 요소를 통합, 빌드 및 출시하기 위한 5단계 프로세스를 제공합니다.

프로필 설정

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

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

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

게임을 Amazon과 통합하세요 GameLift

참고

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

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

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

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

서버 코드 통합

커스텀 씬이 포함된 자체 게임 프로젝트를 사용하는 경우 제공된 샘플 코드를 사용하여 게임 프로젝트에 필요한 서버 코드를 추가하세요.

  1. 게임 프로젝트 파일에서 Assets/Scripts/Server 폴더를 엽니다. 폴더가 없으면 새로 만드세요.

  2. aws/ GitHub amazon-gamelift-plugin-unity 저장소로 가서 경로를 여세요. Samples~/SampleGame/Assets/Scripts/Server

  3. GameLiftServer.cs. 파일을 찾아 게임 프로젝트의 Server 폴더에 복사합니다. 서버 실행 파일을 빌드할 때는 이 파일을 빌드 타겟으로 사용하십시오.

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

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

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

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

샘플 서버 코드를 사용자 정의하려면 다음 리소스를 참조하십시오.

클라이언트 코드 통합

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

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

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

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

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

  • Unity 게임 GameLift 클라이언트에 Amazon 추가의 지침을 따르십시오.

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

  • FleetId - 애니웨어 플릿의 고유 식별자.

  • FleetLocation - 애니웨어 플릿의 사용자 지정 위치.

  • AwsRegion - 애니웨어 플릿이 호스팅되는 AWS 지역. 사용자 프로필에서 설정한 지역입니다.

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

참고

자격 증명 프로필은 플러그인에 의해 생성되고 로컬 컴퓨터에 저장됩니다. 따라서 로컬 시스템 (또는 프로필이 동일한 시스템) 에서 클라이언트를 실행해야 합니다.

애니웨어 플릿에 연결

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

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

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

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

컴퓨팅 등록

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

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

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

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

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

게임 실행

이 단계에서는 게임 컴포넌트를 빌드하고 실행하여 게임을 플레이합니다. 다음 단계를 완료합니다.

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

    1. 샘플 게임을 임포트하여 초기화하지 않았다면 새 GameLiftClientSettings 에셋을 생성하십시오. Unity 에디터 메인 메뉴에서 에셋, 생성 GameLift, 클라이언트 설정을 선택합니다. 프로젝트에 복사본을 여러 개 생성하면 플러그인이 이를 자동으로 감지하여 플러그인이 업데이트할 에셋을 알려줍니다. GameLiftClientSettings

    2. 게임 실행에서 [클라이언트 구성: 어디서나 설정 적용] 을 선택합니다. 이렇게 하면 방금 설정한 Anywhere 플릿을 사용하도록 게임 클라이언트 설정이 업데이트됩니다.

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

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

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

  3. Anywhere 플릿에서 게임 서버를 시작하세요. 서버: 에디터에서 서버 시작을 선택합니다. 이 태스크는 Unity 에디터가 열려 있는 한 클라이언트가 연결할 수 있는 라이브 서버를 시작합니다.

  4. 게임 세션을 시작하거나 게임 세션에 참여하세요. 게임 클라이언트 인스턴스에서 UI를 사용하여 각 클라이언트를 게임 세션에 참여시키십시오. 이 작업을 수행하는 방법은 클라이언트에 기능을 추가한 방식에 따라 달라집니다.

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

  • 플레이어 로그인 컴포넌트. Anywhere 플릿의 게임 서버에 연결할 때는 플레이어 검증이 이루어지지 않습니다. 아무 값이나 입력하여 게임 세션에 참여할 수 있습니다.

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

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

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

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

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

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

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. 명령줄에서 새로 빌드한 게임 서버 실행 파일을 실행하고 유효한 인증 토큰을 전달하세요.

    my_project.exe --authToken [token]