GameLift Amazon을 게임 클라이언트에 추가 - 아마존 GameLift

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

GameLift Amazon을 게임 클라이언트에 추가

GameLift Amazon을 게임 세션 정보가 필요한 게임 구성 요소에 통합하고, 새 게임 세션을 만들고, 게임에 플레이어를 추가합니다. 게임 아키텍처에 따라 이 기능은 플레이어 인증, 매치메이킹 또는 게임 세션 배치와 같은 작업을 처리하는 백엔드 서비스에 있습니다.

참고

Amazon GameLift 호스팅 게임의 매치메이킹을 설정하는 방법에 대한 자세한 내용은 Amazon GameLift FlexMatch 개발자 안내서를 참조하십시오.

백엔드 GameLift 서비스에 Amazon 설정

Amazon GameLift 클라이언트를 초기화하고 키 설정을 저장하는 코드를 추가합니다. 이 코드는 Amazon에 종속된 코드보다 먼저 실행되어야 GameLift 합니다.

  1. 클라이언트 구성을 설정합니다. 기본 클라이언트 구성을 사용하거나 사용자 지정 클라이언트 구성 객체를 만듭니다. 자세한 내용은 AWS::Client::ClientConfiguration(C++) 또는 AmazonGameLiftConfig(C#) 을 참조하십시오.

    클라이언트 구성은 GameLift Amazon에 문의할 때 사용할 대상 지역 및 엔드포인트를 지정합니다. 리전은 사용하도록 배포된 리소스(플릿, 대기열, 매치메이커) 세트를 식별합니다. 기본 클라이언트 구성은 위치를 미국 동부(버지니아 북부) 리전으로 설정합니다. 다른 리전을 사용하려면 사용자 지정 구성을 생성합니다.

  2. Amazon GameLift 클라이언트를 초기화합니다. 기본 클라이언트 구성 또는 사용자 지정 클라이언트 구성과 함께 AwsGameLift::: GameLiftClient AmazonGameLiftClient() (C++) 또는 () (C#) 를 사용하십시오.

  3. 각 플레이어에 대한 고유 식별자를 생성하는 메커니즘을 추가합니다. 자세한 정보는 플레이어 ID 생성을 참조하세요.

  4. 다음 정보를 수집하고 저장합니다.

    • 대상 플릿 — 많은 Amazon GameLift API 요청은 플릿을 지정해야 합니다. 이렇게 하려면 대상 플릿을 가리키는 플릿 ID 또는 별칭 ID를 사용합니다. 백엔드 서비스를 업데이트하지 않고도 한 플릿에서 다른 플릿으로 플레이어를 전환할 수 있도록 플릿 별칭을 사용하는 것이 가장 좋습니다.

    • 대상 대기열 - 다중 플릿 대기열을 사용하여 새 게임 세션을 배치하는 게임의 경우 사용할 대기열 이름을 지정합니다.

    • AWS credentials — Amazon에 거는 모든 호출은 게임을 AWS 계정 호스팅하는 사람의 자격 증명을 GameLift 제공해야 합니다. 게임의 프로그래밍 방식 액세스 설정에 설명된 대로 플레이어 사용자를 생성하여 이러한 자격 증명을 획득합니다. 플레이어 사용자의 액세스를 관리하는 방법에 따라 다음을 수행합니다.

      • 역할을 사용하여 플레이어 사용자 권한을 관리하는 경우 Amazon GameLift API를 호출하기 전에 역할을 수임하는 코드를 추가하세요. 역할 수임 요청은 임시 보안 자격 증명 집합을 반환합니다. 자세한 내용은 IAM 사용 설명서의 IAM 역할 (AWS API) 로 전환을 참조하십시오.

      • 장기 보안 자격 증명이 있는 경우 저장된 자격 증명을 찾아 사용하도록 코드를 구성합니다.AWS SDK 및 도구 참조 가이드에서 장기 보안 인증 정보를 사용한 인증을 참조하세요. 자격 증명 저장에 대한 자세한 내용은 (C++) 및 (.NET) 의AWS API 참조를 참조하십시오.

      • 임시 보안 자격 증명이 있는 경우 IAM 사용 설명서의 AWS SDK에서 임시 보안 자격 증명 사용에 설명된 대로 AWS Security Token Service (AWS STS)를 사용하여 자격 증명을 정기적으로 새로 고치는 코드를 추가합니다. 이전 자격 증명이 만료되기 전에 코드는 새 자격 증명을 요청해야 합니다.

게임 세션 가져오기

코드를 추가하여 사용 가능한 게임 세션을 검색하고 게임 세션 설정 및 메타데이터를 관리합니다.

활성 게임 세션 검색

특정 게임 세션, 모든 활성 세션 또는 검색 기준을 충족하는 세션에 대한 정보를 가져오는 SearchGameSessions데 사용합니다. 이 호출은 각 활성 게임 세션에 대해 검색 요청과 일치하는 GameSession객체를 반환합니다.

검색 기준을 사용하여 플레이어가 참여할 활성 게임 세션의 필터링된 목록을 가져옵니다. 예를 들어 다음과 같이 세션을 필터링할 수 있습니다.

  • 가득 찬 게임 세션 제외: CurrentPlayerSessionCount = MaximumPlayerSessionCount

  • 세션이 실행된 시간을 기준으로 게임 세션 선택: CreationTime 평가

  • 사용자 지정 게임 속성을 기반으로 게임 세션 찾기: gameSessionProperties.gameMode = "brawl"

게임 세션 관리

다음 작업 중 하나를 사용하여 게임 세션 정보를 검색 또는 업데이트합니다.

게임 세션 만들기

코드를 추가하여 배포된 플릿에서 새 게임 세션을 시작하고 플레이어가 사용할 수 있게 허용합니다. 게임을 여러 AWS 리전 지역에 배포할지 아니면 단일 지역에 배포하는지에 따라 두 가지 게임 세션 생성 옵션이 있습니다.

다중 위치 대기열에서 게임 세션 만들기

대기열에 새 게임 세션을 요청하는 StartGameSessionPlacement데 사용합니다. 이 작업을 사용하려면 대기열을 만듭니다. 이는 Amazon이 새 게임 세션을 GameLift 배치하는 위치를 결정합니다. 대기열 및 사용 방법에 대한 자세한 내용은 게임 세션 배치에 대한 Amazon GameLift 대기열 설정 섹션을 참조하세요.

게임 세션 배치를 생성할 때는 사용할 대기열의 이름, 게임 세션 이름, 최대 동시 플레이어 수 및 선택적 게임 속성 세트를 지정합니다. 필요하다면 자동으로 게임 세션에 참가시킬 플레이어 목록을 제공할 수도 있습니다. 관련 지역의 플레이어 지연 시간 데이터를 포함하면 GameLift Amazon은 이 정보를 사용하여 플레이어에게 이상적인 게임플레이 경험을 제공하는 플릿에 새 게임 세션을 배치합니다.

게임 세션 배치는 비동기식 프로세스입니다. 요청한 후에는 이 요청을 성공하거나 시간 초과되도록 할 수 있습니다. 를 사용하여 언제든지 요청을 취소할 수 StopGameSessionPlacement있습니다. 배치 요청 상태를 확인하려면 전화하십시오 DescribeGameSessionPlacement.

특정 플릿에서 게임 세션 생성

지정된 플릿에 새 세션을 생성하는 CreateGameSession데 사용합니다. 이 동기식 작업을 해당 플릿에 새 게임 세션을 호스팅하는 데 사용할 수 있는 리소스가 있는지 여부에 따라 성공 또는 실패가 결정됩니다. Amazon에서 새 게임 세션을 GameLift 생성하고 GameSession객체를 반환한 후 플레이어를 해당 세션에 참여시킬 수 있습니다.

이 작업을 사용하는 경우 플릿 ID 또는 별칭 ID, 세션 이름, 게임의 최대 동시 플레이어 수를 제공합니다. 선택적으로 게임 속성 세트를 포함할 수 있습니다. 게임 속성은 키-값 페어의 배열에 정의됩니다.

Amazon GameLift 리소스 보호 기능을 사용하여 한 명의 플레이어가 생성할 수 있는 게임 세션 수를 제한하는 경우 게임 세션 생성자의 플레이어 ID를 제공하십시오.

게임 세션에 플레이어 참여

코드를 추가하여 활성 게임 세션에서 플레이어 슬롯을 예약하고 게임 클라이언트를 게임 세션에 연결합니다.

  1. 게임 세션에서 플레이어 슬롯을 예약합니다.

    플레이어 슬롯을 예약하려면 게임 세션에 대해 새 플레이어 세션을 만듭니다. 플레이어 세션에 대한 자세한 내용은 플레이어의 게임 연결 방법 섹션을 참조하세요.

    새 플레이어 세션을 만드는 방법은 두 가지가 있습니다.

    • 새 게임 세션에서 한 명 이상의 플레이어를 위한 슬롯을 예약하는 StartGameSessionPlacement데 사용합니다.

    • 게임 세션 ID를 사용하거나 게임 세션 ID가 CreatePlayerSessions있는 한 명 이상의 플레이어를 위해 플레이어 슬롯을 예약하십시오. CreatePlayerSession

    Amazon은 GameLift 먼저 게임 세션이 새 플레이어를 받아들이고 있으며 플레이어 슬롯이 사용 가능한지 확인합니다. 성공하면 Amazon은 플레이어를 위한 슬롯을 GameLift 예약하고, 새 플레이어 세션을 생성하고, PlayerSession객체를 반환합니다. 이 객체에는 게임 클라이언트가 게임 세션에 연결하는 데 필요한 DNS 이름, IP 주소 및 포트를 포함합니다.

    플레이어 세션 요청은 각 플레이어의 고유한 ID를 포함해야 합니다. 자세한 정보는 플레이어 ID 생성을 참조하세요.

    플레이어 세션이 사용자 지정 플레이어 데이터 집합을 포함할 수 있습니다. 이 데이터는 새로 생성된 플레이어 세션 객체에 저장되며, 이 객체는 DescribePlayerSessions() 를 호출하여 검색할 수 있습니다. GameLift 또한 Amazon은 플레이어가 게임 세션에 직접 연결할 때 이 객체를 게임 서버로 전달합니다. 여러 플레이어 세션을 요청하는 경우 각 플레이어에 대해 요청의 플레이어 ID와 매핑된 플레이어 데이터 문자열을 제공합니다.

  2. 게임 세션에 연결

    게임 클라이언트에 코드를 추가하여 게임 세션의 연결 정보를 포함한 PlayerSession 객체를 검색합니다. 이 정보를 사용하여 서버에 직접 연결을 설정합니다.

    • 지정된 포트와 서버 프로세스에 할당된 DNS 이름 또는 IP 주소를 사용하여 연결할 수 있습니다.

    • 플릿에 TLS 인증서 생성이 활성화된 경우 DNS 이름과 포트를 사용하여 연결합니다.

    • 게임 서버가 들어오는 플레이어 연결을 검증하는 경우 플레이어 세션 ID를 참조하세요.

    연결 후 게임 클라이언트와 서버 프로세스는 Amazon의 개입 없이 직접 GameLift 통신합니다. 서버는 Amazon과 통신을 GameLift 유지하여 플레이어 연결 상태, 상태 등을 보고합니다. 게임 서버가 들어오는 플레이어를 검증하면 플레이어 세션 ID가 게임 세션의 예약된 슬롯과 일치하는지 확인하고 플레이어 연결을 수락하거나 거부합니다. 플레이어 연결이 끊기면 서버 프로세스는 끊어진 연결을 보고합니다.

게임 세션 속성 사용

게임 클라이언트는 게임 속성을 사용하여 게임 세션에 데이터를 전달할 수 있습니다. 게임 속성은 게임 서버가 추가하고, 읽고, 나열하고, 변경할 수 있는 키-값 쌍입니다. 새 게임 세션을 만들 때 또는 나중에 게임 세션이 활성 상태일 때 게임 속성을 전달할 수 있습니다. 게임 세션에는 최대 16개의 게임 속성이 포함될 수 있습니다. 게임 속성은 삭제할 수 없습니다.

예를 들어, 게임의 난이도는Novice,, EasyIntermediate, Expert 등입니다. 플레이어가 Easy 선택하고 게임을 시작합니다. 게임 클라이언트는 이전 섹션에 설명된 CreateGameSession 대로 StartGameSessionPlacement 또는 하나를 GameLift 사용하여 Amazon에 새 게임 세션을 요청합니다. 요청에서 클라이언트는 다음을 {"Key": "Difficulty", "Value":"Easy"} 전달합니다.

요청에 따라 Amazon은 지정된 게임 속성이 포함된 GameSession 객체를 GameLift 생성합니다. GameLift 그러면 Amazon은 사용 가능한 게임 서버에 새 게임 세션을 시작하라고 지시하고 GameSession 객체를 전달합니다. 게임 서버는 o를 사용하여 게임 세션을 시작합니다Difficulty. Easy

자세히 알아보기