세션
세션은 배포 내의 한 계층으로, 소켓이나 배포 내의 사용 가능한 공간을 관리해야 할 때 사용됩니다. 세부 사항은 뒤에서 다루겠지만, 세션이 배포를 보완하는 일반적인 사용 사례는 다음과 같습니다:
배포 내에서 플레이어 또는 플레이어 그룹의 참여 및 이탈 관리.
단일 배포 내에서 여러 매치나 게임 생성.
세션은 항상 배포와 연관되므로 배포 없이 존재할 수 없습니다.
게임 서버 관리를 위한 배포와 세션 접근 방식 비교
이 섹션에 있다면 일반적인 배포 흐름이 귀하의 요구에 완벽히 맞지 않기 때문일 가능성이 큽니다. 전형적인 배포 흐름을 빠르게 요약해 보겠습니다.
귀하는 IP 주소 목록을 제공하고, 우리는 최적의 위치에 귀하의 애플리케이션으로 배포를 생성합니다. 그런 다음 사용자가 해당 배포에 연결합니다. 게임이 끝나면 또 다른 API 요청을 보내면 배포를 삭제합니다.
표준 배포 흐름에서는 각 게임마다 새로운 배포가 필요합니다.
배포 관리 흐름

배포 종료를 요청하면 우리는 귀하의 게임 인스턴스를 삭제하여 더 이상 플레이어가 접근할 수 없게 만듭니다. 다른 네 명의 플레이어를 위한 새 애플리케이션 인스턴스가 필요하면 또 다른 배포 요청을 제출할 수 있습니다.

이 흐름의 잠재적 문제
그러나 MMO나 오픈 월드 게임을 구축하는 경우 애플리케이션 인스턴스에 대한 플레이어의 입장과 퇴장을 관리해야 할 수 있습니다. 이러한 경우 배포는 예를 들어 새로운 지역에 새 서버를 열 때처럼 비어있는 상태로 시작될 가능성이 큽니다.

그리고 배포는 시간이 지남에 따라 플레이어가 인스턴스에 들어오고 나가면서 채워질 수 있습니다. 또는 전체 매치에 대해 플레이어의 참여 및 이탈 개념을 적용할 수도 있습니다.

플레이어가 들어오고 나가는 보다 지속적인 게임 인스턴스가 필요하거나 서버 인스턴스당 여러 게임/매치를 관리해야 하는 경우에는 세션이 단독 배포보다 권장되는 접근 방식입니다.
세션은 플레이어, 매치 및 게임 인스턴스 관리를 위한 내장 기능을 제공하여 개발 과정을 단순화하도록 설계되었습니다. 그러나 필요하다면 세션 없이 배포만으로 백엔드에서 "세션 유형" 시스템을 관리하는 것도 가능하다는 점은 주목할 만합니다. 세션은 앞서 설명한 사용 사례를 용이하게 하기 위해 특별히 설계되었습니다.
다음 섹션에서는 세션의 개념을 더 자세히 파고들겠습니다.
세션을 사용하여 플레이어를 관리하는 방법
이제 세션이 필요할 수 있다는 것을 확인했으므로, 배포와 함께 세션이 어떻게 사용되는지 더 자세히 이해해 보겠습니다. 같은 다이어그램을 사용하되 한 번에 하나의 원칙을 추가해 설명하겠습니다.
세션은 배포에서 플레이어, 플레이어 그룹 또는 매치의 추가 및 삭제를 관리하는 데 사용됩니다. 실행 중인 배포에 플레이어 또는 플레이어 그룹을 동적으로 추가하거나 제거할 수 있는 방법을 제공하여, 멀티플레이어 게임이나 기타 실시간 애플리케이션에서 보다 동적이고 유연한 플레이어 관리를 가능하게 합니다.
세션을 호스팅하기 위한 빈 배포 생성
이 시나리오에서는 세션을 호스팅할 수 있는 배포가 이미 존재한다고 가정합니다. 다른 섹션에서는 원하는 세션을 호스팅할 기존 배포가 없을 때 배포를 자동으로 생성하는 프로세스를 자동화하는 방법을 살펴보겠습니다.

세션 요청 생성
플레이어가 게임 인스턴스에 참여하려고 할 때, 귀하는 매치메이커를 통해 또는 게임 구현에 따라 게임 클라이언트에서 직접 Arbitrium에 세션 요청을 생성합니다.

여러 플레이어를 한 번에 추가하기
세션은 동일한 세션 요청에 플레이어들의 IP 주소를 포함시켜 단일 배포에 여러 플레이어를 추가할 수 있게 합니다.
배포는 여전히 다수의 플레이어를 호스팅하는 데 사용될 수 있지만, 세션과 달리 요청 시작 시 모든 플레이어를 지정해야 합니다. 반면 세션은 런타임 동안 플레이어의 동적 추가와 제거를 허용합니다.

배포에서 플레이어 제거하기
배포에서 플레이어를 제거하려면 해당 플레이어에 해당하는 세션을 삭제하는 요청을 보내면 됩니다.

새 세션으로 배포 채우기
이제 새로운 플레이어가 새 세션 요청을 보내 빈 자리를 차지할 수 있습니다.

세션을 더 잘 이해하게 되었으므로, 이제 세션이 어떻게 작동하는지와 몇 가지 세부 사항을 살펴보겠습니다.
특정 세션에서 플레이어를 추가하거나 제거하여 플레이어 및 세션을 더 관리할 수 있습니다. API 문서 보기.
마지막 업데이트
도움이 되었나요?

