Amazon GameLift 실시간 서버와 게임 통합 - 아마존 GameLift

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

Amazon GameLift 실시간 서버와 게임 통합

이 주제에서는 실시간 서버를 GameLift 갖춘 관리형 Amazon 솔루션에 대한 개요를 제공합니다. 이 개요에서는 이 솔루션이 게임에 적합한 시기와 Realtime 서버가 멀티플레이어 게임을 지원하는 방법에 대해 설명합니다.

작은 정보

Amazon GameLift 게임 서버 호스팅을 사용해 보려면 을 참조하십시오아마존 시작하기 GameLift.

Realtime 서버란 무엇입니까?

실시간 서버는 Amazon이 멀티플레이어 ready-to-go 게임에 사용할 수 있도록 GameLift 제공하는 가벼운 게임 서버입니다. Realtime 서버는 사용자 지정 게임 서버의 개발, 테스트 및 배포 프로세스를 제거합니다. 이 솔루션을 사용하면 게임을 완료하는 데 필요한 시간과 노력을 최소화할 수 있습니다.

주요 기능
  • 게임 클라이언트 및 서버 상호 작용을 위한 전체 네트워크 스택

  • 핵심 게임 서버 기능

  • 사용자 지정 가능한 서버 로직

  • Realtime 구성 및 서버 로직에 대한 실시간 업데이트

  • FlexMatch 매치메이킹

  • 호스팅 리소스의 유연한 제어

플릿을 만들고 구성 스크립트를 제공하여 Realtime 서버를 설정합니다.

Realtime 서버가 게임 세션을 관리하는 방법

로직을 Realtime 스크립트로 빌드하여 게임 세션 관리에 대한 사용자 지정 로직을 추가할 수 있습니다. 코드를 작성하여 서버별 객체에 액세스하거나, 콜백을 사용하여 이벤트 중심 로직을 추가하고 또는 비 이벤트 시나리오를 기반으로 로직을 추가할 수 있습니다.

Realtime 클라이언트와 서버가 상호 작용하는 방식

게임 세션 중에 게임 클라이언트는 백엔드 서비스를 통해 Realtime 서버에 메시지를 전송하여 상호 작용합니다. 그런 다음 백엔드 서비스는 게임 클라이언트 간에 메시지를 전달하여 활동, 게임 상태, 관련 게임 데이터를 교환합니다.

추가로, 게임 로직을 Realtime 스크립트에 추가하여 클라이언트와 서버가 상호 작용하는 방식을 사용자 지정할 수 있습니다. 사용자 지정 게임 로직을 사용하면 Realtime 서버는 이벤트 중심 응답을 시작하는 콜백을 구현할 수 있습니다.

통신 프로토콜

실시간 서버와 연결된 게임 클라이언트는 안정적인 전송을 위한 TCP 연결과 빠른 전송을 위한 채널이라는 두 가지 UDP 채널을 통해 통신합니다. 메시지를 생성할 때 게임 클라이언트는 메시지의 특성에 따라 어떤 프로토콜을 사용할지를 선택합니다. 메시지 전송은 UDP 기본적으로 설정되어 있습니다. UDP채널을 사용할 수 없는 경우 Amazon은 대체 TCP 수단으로 를 사용하여 메시지를 GameLift 보냅니다.

메시지 콘텐츠

메시지 콘텐츠는 필수 작업 코드 (opCode) 와 선택적 페이로드라는 두 가지 요소로 구성됩니다. 메시지는 특정 플레이어 활동이나 게임 이벤트를 opCode 식별하며, 페이로드는 운영 코드와 관련된 추가 데이터를 제공합니다. 이 두 요소는 모두 개발자가 정의합니다. 게임 클라이언트는 수신한 메시지 내용을 opCodes 기반으로 작동합니다.

플레이어 그룹

Realtime 서버는 플레이어 그룹을 관리하기 위한 기능을 제공합니다. 기본적으로 Amazon은 게임에 접속하는 모든 플레이어를 “모든 플레이어” 그룹에 GameLift 배치합니다. 또한, 개발자는 게임을 위한 기타 그룹을 설정할 수 있으며, 플레이어는 동시에 여러 그룹의 멤버일 수 있습니다. 그룹 멤버는 메시지를 전송하고 게임 데이터를 그룹의 모든 플레이어와 공유할 수 있습니다. 그룹에 가능한 한 가지 사용은 플레이어 팀을 설정하고 팀 통신을 관리하는 것입니다.

인증서가 있는 TLS 실시간 서버

Realtime 서버를 사용하면 서버 인증 및 데이터 패킷 암호화가 서비스에 기본 제공됩니다. TLS인증서 생성을 켜면 이러한 보안 기능이 활성화됩니다. 게임 클라이언트가 실시간 서버와 연결을 시도하면 서버가 자동으로 인증서로 응답하여 클라이언트가 TLS 인증서를 검증합니다. Amazon은 TLS for TCP (WebSockets) 통신 및 DTLS UDP 트래픽을 사용하여 암호화를 GameLift 처리합니다.

Realtime 서버 사용자 지정

Realtime 서버는 비저장 릴레이 서버의 역할을 합니다. Realtime 서버는 게임에 연결된 게임 클라이언트 간에 메시지와 게임 데이터의 패킷을 릴레이합니다. 하지만 Realtime 서버는 메시지를 평가, 데이터를 처리 또는 게임플레이 로직을 수행하지 않습니다. 이 방식으로 사용되는 각 게임 클라이언트는 게임 상태 보기를 유지하고 릴레이 서버를 통해 다른 플레이어에게 업데이트를 제공합니다. 각 게임 클라이언트는 이러한 업데이트를 통합하고 자체 게임 상태를 조정합니다.

Realtime 스크립트 기능에 추가하여 서버를 사용자 지정할 수 있습니다. 예를 들어, 게임 로직을 사용하면 서버 권한이 있는 게임 상태 보기와 함께 상태 저장 게임을 빌드할 수 있습니다.

GameLift Amazon은 실시간 스크립트에 대한 서버 측 콜백 세트를 정의합니다. 이러한 콜백을 구현하여 이벤트 중심 기능을 서버에 추가합니다. 예를 들어, 다음을 수행할 수 있습니다.

  • 게임 클라이언트가 서버에 연결하려고 할 때 플레이어를 인증합니다.

  • 요청 시 플레이어가 그룹에 참가할 수 있는지 여부를 확인합니다.

  • 특정 플레이어에서 또는 대상 플레이어로 메시지를 언제 전송할지를 평가하거나, 응답에서 추가 처리를 결정합니다.

  • 플레이어가 그룹에서 나가거나 서버에서 연결이 제거되면 모든 플레이어에게 알립니다.

  • 게임 세션 개체 또는 메시지 객체의 콘텐츠를 평가하고 데이터를 확인합니다.

Realtime 서버 배포 및 업데이트

Realtime 서버의 주요 장점은 언제든지 스크립트를 업데이트할 수 있는 기능입니다. 스크립트를 업데이트하면 Amazon에서 몇 분 내에 새 버전을 모든 호스팅 리소스에 GameLift 배포합니다. Amazon이 새 스크립트를 GameLift 배포하고 나면 해당 시점 이후에 생성되는 모든 새 게임 세션은 새 스크립트 버전을 사용합니다. (기존 게임 세션에서는 원본 버전을 계속 사용합니다.)