Amazon GameLift Realtime 서버와 게임 통합 - 아마존 GameLift

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

Amazon GameLift Realtime 서버와 게임 통합

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

게임을 시작하고 실행하는 완전한 로드맵에 대해서는 Amazon GameLift 관리형 호스팅 로드맵 섹션을 참조하세요.

작은 정보

Amazon GameLift 게임 서버 호스팅을 사용해 보려면 Amazon GameLift 시작하기 섹션을 참조하세요.

Realtime 서버란 무엇입니까?

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

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

  • 핵심 게임 서버 기능

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

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

  • FlexMatch 매치메이킹

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

플릿을 만들고 구성 스크립트를 제공하여 Realtime 서버를 설정합니다. Realtime 서버의 생성 및 게임 클라이언트를 준비하는 방법에 대해 자세한 내용은 Realtime 서버 준비 섹션을 참조하세요.

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

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

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

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

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

통신 프로토콜

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

메시지 콘텐츠

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

플레이어 그룹

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

TLS 인증서가 있는 Realtime 서버

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

Realtime 서버 사용자 지정

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

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

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

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

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

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

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

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

Realtime 서버 배포 및 업데이트

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