다음을 통해 공유


Xbox Live 네트워크 간 멀티 플레이 구현 예제: MMO

버전 1.0, 2020/3/1

다음 예제 시나리오는 다중 접속 온라인 게임에서 권장되는 네트워크 간 기능 및 흐름을 보여줍니다. 여기에서는 한 가지 사용 가능한 디자인 및 구현 경로를 보여줍니다.

이 시나리오에서 타이틀은 다음과 같은 멀티 플레이 기능을 지원합니다.

  • 오픈 게임 월드

    타이틀에서 플레이어 간 상호 작용이 가능한 오픈 게임 월드가 지원됩니다. 플레이어는 PvE(Player vs. Environment) 경험을 위한 오픈 월드에서 느슨한 형태의 그룹을 형성할 수 있습니다. PvP(Player vs. Player) 경험은 1:1로 진행되며 선택된 영역에서만 허용됩니다.

  • 인스턴스 그룹 섹션을 위한 사용자 지정 매치 메이킹

    타이틀은 인스턴스 PvP 또는 PvE 게임 플레이 섹션에 들어가는 플레이어를 위한 사용자 지정 매치 메이킹 서비스를 구현합니다. 이 서비스는 플레이어 및/또는 플레이어 팀을 함께 매칭합니다.

  • 전용 서버

    타이틀의 모든 게임 플레이는 전용 서버에서 실행됩니다. 또한 모든 트래픽이 이러한 서버를 통해 연결됩니다.

  • 채팅

    타이틀은 모든 플레이어 간 음성 및 문자 채팅을 지원합니다. 전역 문자 채팅도 지원됩니다. 모든 트래픽은 서버를 통해 연결됩니다.

  • 소모품

    타이틀이 구매 가능한(프리미엄) 게임 내 통화가 지원되는 게임 내 스토어를 제공합니다. 이 통화를 이용해서 플레이어가 아이템 및 소모품을 구매할 수 있습니다.

  • DLC

    구매할 수 있는 다운로드 가능한 콘텐츠에는 새로운 플레이어 캐릭터 클래스를 잠금 해제하는 새로운 게임 영역이 포함됩니다.

타이틀 서비스

이 예에서 게임을 시작할 때 플레이어가 상호 작용하는 첫 번째 타이틀 서비스는 타이틀 로그인 서비스입니다. 게임을 플레이하기 위해 플레이어는 타이틀 계정을 만들고 이를 Xbox Live 계정에 연결해야 합니다. 계정 생성은 타이틀 내에서 또는 타이틀의 웹 페이지에서 가능합니다.

계정 연결의 경우 플레이어의 XUID가 사용되고 타이틀 관련 계정에 연결됩니다. 타이틀에서 플레이어는 타이틀 계정에 대한 사용자 이름/암호를 사용하여 한 번에 로그인하고 계정을 연결합니다. XUID는 사용 전 승인을 받아야 하고 개발자 계정 관리자와 논의해야 합니다. 전송 및 저장 중에는 XUID를 보호해야 합니다.

타이틀의 웹 페이지에서 타이틀 계정으로 로그인한 플레이어는 계정을 연결하기 위해 Microsoft 계정에도 로그인합니다. 자세한 내용은 웹 사이트 계정 연결 설명서 항목을 참조하세요.

타이틀 계정에는 네트워크 시작 위치에 관계없이 모든 타이틀 서비스가 플레이어를 처리할 수 있게 해주는 고유한 ID(GUID)가 포함되어 있습니다. 타이틀 계정에는 또한 플레이어 캐릭터, 진행 상태, 인벤토리 및 모든 플레이어 메타 데이터와 같은 모든 플레이어 상태가 저장됩니다.

타이틀 흐름

MMO 게임에서 네트워크 간 기능에 대해 호환되는 흐름은 플레이어가 오픈 월드에 있는지 아니면 인스턴스 게임 플레이에 있는지 여부에 따라 달라집니다. 다음 단계는 모든 경우에 적용됩니다.

  1. 권한 검증

    플레이어가 로그인한 후 타이틀은 활성 플레이어의 멀티 플레이 권한(254 및 189) 및 네트워크 간 권한(185)을 검증합니다. 권한이 거부된 경우 플레이어가 타이틀에 들어가지 못할 수 있고 오류 대화 상자가 표시됩니다. 이 때 타이틀은 또한 적절한 기능 제한을 위해 음성 및 문자 채팅에 대한 통신 권한(252)도 확인해야 합니다.

  2. 네트워크 간 알림

    처음 게임을 실행하면 네트워크 간 기능이 게임 플레이에 포함된다는 것을 플레이어에게 알려줍니다.

다음 단계는 오픈 게임 월드에 적용됩니다.

  1. 오픈 월드에 들어가기

    플레이어는 게임에 로그인하고 타이틀 서버에 연결할 때 항상 오픈 월드에 들어갑니다.

  2. 오픈 월드 MPSD 세션에 참가

    오픈 월드 게임 플레이를 위한 타이틀 서버가 오픈 게임 월드의 게임 영역이 반영된 여러 개의 MPSD 세션을 생성합니다. 이러한 MPSD 세션 중 하나 이상에는 활성화된 상태의 게임 플레이 기능이 포함됩니다. 모든 Xbox Live 사용자는 자신의 게임 영역에 대한 오픈 월드 세션에 참가합니다. 서버는 Xbox Live 내부 및 Xbox Live 외부 플레이어 모두에 대한 정보를 유지 관리합니다.

    오픈 월드 세션은 Xbox Live 플레이어의 진행 중 참가 및 초대를 허용하며 서버가 클라이언트의 새 연결을 수락하지 않는 경우에만 닫힘 상태로 설정됩니다.

  3. 오픈 월드 게임 플레이 활성화

    다른 플레이어와의 게임 플레이 기능은 플레이어 권한에 따라 제공됩니다.

    • 글로벌 문자 채팅은 통신 권한이 설정된 플레이어에 대해 항상 활성화됩니다.
    • 모든 문자 채팅 메시지는 문자열 검증 서비스 및 차단 목록을 사용해서 부적절한 표현 및 문구를 필터링합니다.
    • 모든 플레이어 사이(Xbox Live 내부 플레이어 사이 및 Xbox Live 내부와 Xbox Live 외부 플레이어 사이)의 직접 문자 채팅 또는 음성 채팅은 모든 필요한 개인 정보 보호 및 권한 검사가 완료된 후에만 활성화됩니다. 자세한 내용은 플레이어 차단/음소거/보고를 참조하세요.

    Xbox Live 외부 플레이어와의 친구 관계에 대해 타이틀은 타이틀 특정 친구 관계를 사용합니다.

    Xbox Live 플레이어 사이의 직접 상호 작용은 타이틀 서비스에 의해 추적되며, 오픈 월드 MPSD 세션에서 이러한 플레이어 사이의 만남 ID를 설정하기 위해 사용됩니다. 이 경우 플레이어는 서로 간의 최신 플레이어 목록에서 볼 수 있도록 합니다.

다음 단계는 인스턴스 PvE 또는 PvP 게임 플레이에 적용됩니다.

  1. 그룹 MPSD 세션

    Xbox Live 플레이어에 대해 타이틀은 Xbox Live 플레이어 추적을 위해 MPSD 세션을 생성합니다. Xbox Live 외부 플레이어는 타이틀 서비스를 통해 추적됩니다.

  2. 그룹 초대/진행 중 참가

    이 예에서 게임 디자인은 참가 또는 초대를 플레이어 그룹으로 제한합니다. 그룹 MPSD 세션은 Xbox Live 플레이어에 대한 진행 중 참가 및 초대를 지원하기 위해 사용됩니다. 게임 내 네트워크 간 초대는 타이틀 서비스에서 지원됩니다.

    타이틀을 시작하는 Xbox Live 초대는 초대된 게임 플레이에 자동화된 UI 흐름을 제공하고, 초대된 게임 내 활동/파티에 플레이어를 참가시킵니다. 참가 실패가 발생하는 경우, 관련 오류는 플레이어에 분명하게 전달됩니다. 이러한 실패에는 전체 게임 그룹, 참가할 수 없는 활동, 오프라인 플레이어 등이 포함될 수 있습니다.

  3. 그룹 매치 메이킹

    타이틀은 그룹 PvP 또는 PvE 매치 메이킹 흐름에 대해 네트워크 간 멀티 플레이를 활성화합니다. 이 예에서 플레이어는 매치 메이킹 UI를 사용하여 PvP 또는 PvE 경험을 선택합니다. 그런 후 플레이어는 다른 플레이어와 함께 인스턴스 플레이 경험 그룹에 포함됩니다.

  4. 게임 MPSD 세션 생성 및 참가

    그룹 매치 메이킹의 결과는 Xbox Live에 대한 서비스 간 호출을 통한 매치 서비스로 생성되는 MPSD 로비 세션입니다. 모든 Xbox Live 사용자는 이 게임 세션에 참가하고 인스턴스 게임 플레이 시간 동안 이 세션에 포함된 상태로 유지됩니다.

    서비스는 사용자 지정 속성을 사용해서 세션에 있는 Xbox Live 외부 사용자에 대한 힌트를 추가적으로 제공합니다. 그런 다음에는 클라이언트 논리에 따라 이러한 힌트를 사용하여 나머지 흐름 기간 동안 세션 상태를 설정할 수 있습니다.

  5. 인스턴스 게임 플레이

    모든 플레이어가 준비되면 인스턴스 게임 플레이가 시작됩니다. 이 예에서는 전용 서버를 통해 Xbox Live 플레이어 간 채팅도 활성화됩니다.

    인스턴스 게임 플레이 기간 동안에는 게임 UI에 플레이어 목록이 표시됩니다. 이 목록은 플레이어의 게이머태그 또는 다른 네트워크 식별자를 표시하는 옵션이 포함된 타이틀 캐릭터 이름 목록입니다. Xbox Live 플레이어는 고유하게 강조 표시됩니다.

    이 그룹 UI 예는 다음과 같습니다.

    인스턴스화된 게임 플레이 중 플레이어 목록을 표시하는 그룹 UI의 예입니다.

  6. 게임 플레이 완료

    인스턴스 게임 플레이가 완료된 다음에는 팀 플레이어들이 오픈 게임 월드로 돌아갑니다. 플레이어가 MPSD 게임 세션을 떠나고 오픈 월드 MPSD 세션을 활동 세션으로 설정합니다.

세션 관리

모든 Xbox 요구 사항을 준수하기 위해 타이틀은 Xbox Live 플레이어에 대해 2개의 MPSD 세션을 생성합니다.

  • 오픈 월드 영역 게임 세션

    각 타이틀 서버 인스턴스에 대해 Xbox Live에 대한 서비스 간 호출을 통해 시작 시 타이틀 서비스가 대형 MPSD 세션을 생성합니다. 타이틀 서버 인스턴스의 모든 플레이어가 해당 MPSD 세션에 참가합니다. 이 세션에서 서버는 최근 플레이어 목록에 올바르게 표시될 수 있도록 서로 상호 작용하는 Xbox Live 플레이어의 만남 ID를 설정합니다.

  • 인스턴스 게임 세션

    이 세션은 Xbox Live에 대한 서비스 간 호출을 통해 매치 메이킹 서비스에 의해 생성됩니다. 여기에는 게임 세션(팀 간)에 있는 모든 Xbox Live 플레이어에 대한 예약이 포함됩니다. Xbox Live 플레이어의 최근 플레이어 목록을 올바르게 채우기 위해 사용됩니다.

  • 그룹 세션

    해당 세션은 플레이어가 그룹(1 그룹)을 만든 직후에 생성됩니다. 이는 활동 세션을 사용하여 진행 중인 게임 참가 및 초대를 지원합니다.

    게임 디자인에 따라 플레이어는 특정 게임 모드 중 참가할 수 없습니다. 이러한 모드에서 closed 속성은 진행 중 참가 및 초대를 비활성화하기 위해 사용됩니다.

Xbox Live 외부 플레이어는 MPSD 세션에 세션 멤버로 직접 표시되지 않습니다. 추적을 위해 타이틀은 사용자 지정 세션 속성에서 해당 사용자의 현재 상태를 반영합니다.

{{"name":"jackplayer"},{"name":"johnplayer"},{"name":"joeplayer"}}

또한 이 목록 및 Xbox Live 세션 멤버를 사용하여 서버 인스턴스가 가득 찼는지 여부를 확인할 수 있습니다.

대형 MPSD 세션은 Xbox 요구 사항을 준수하기 위해 게임 플레이 기능을 활성화해야 합니다.

서비스 간 호출에 대한 자세한 내용은 Service-to-Service Xbox Live Calls 설명서 항목을 참조하세요.

플레이어 ID

플레이어의 타이틀별 캐릭터 이름은 모든 네트워크에서 공유됩니다. 캐릭터 이름을 만드는 동안 모든 문자열은 문자열 유효성 검사 서비스를 사용하여 유효성이 검사됩니다. 부적절한 표현 및 문구는 차단됩니다.

  • Xbox Live 플레이어 ID

    타이틀은 모든 Xbox Live 플레이어의 Xbox Live 프로필에 대한 액세스를 제공합니다. 이 작업은 채팅 및 게임 플레이 상호 작용 내에서 사용할 수 있는 게임 내 UI를 통해 수행됩니다.

  • Xbox Live 외부 플레이어 ID

    타이틀은 Xbox Live 이외의 프로필 또는 프로필 이름에 대한 액세스를 제공하지 않습니다.

플레이어 차단, 음소거 및 보고

타이틀에서 플레이어 차단 및 음소거는 타이틀 수준에서 지원됩니다.

  • Xbox Live 플레이어 차단/음소거

    타이틀은 check_multiple_permissions_with_multiple_target_users를 사용하여 다른 Xbox Live 플레이어 및 Xbox Live 외부 플레이어/Xbox Live 외부 친구의 플레이어 클래스와의 멀티 플레이 및 채팅을 위한 권한을 확인합니다. 차단 및 음소거는 플레이어의 프로필 UI를 통해 사용할 수 있습니다.

    동일한 게임 플레이 환경에서 다른 Xbox Live 플레이어의 차단/음소거 상태는 게임 플레이 전환 중에(예: 다른 게임 플레이 모드 또는 위치로 이동) 또는 5분 중 먼저 발생하는 시간에 확인됩니다.

  • Xbox Live 외부 플레이어 차단/음소거

    타이틀은 타이틀 내 차단 목록을 사용하여 Xbox Live 외부 플레이어 차단 또는 음소거를 지원합니다. 이 목록은 타이틀 서비스에서 유지 관리되며 멀티 플레이 권한이 확인됩니다. 사용자 지정 타이틀 UI를 통해 타이틀에서 Xbox Live 외부 플레이어를 음소거할 수 있어야 합니다.

  • Xbox Live 플레이어 보고

    타이틀은 또한 플레이어 보고를 허용합니다. Xbox Live에서 보고는 타이틀에서 액세스 가능한 프로필 UI를 통해 플레이어에 의해 수행됩니다. Xbox Live 집행 기관은 플레이어 보고를 처리합니다.

  • Xbox Live 외부 플레이어 보고

    Xbox Live 외부 사용자의 경우 타이틀이 사용자 지정 보고 UI 흐름을 제공합니다. 타이틀은 타이틀에 따라 또는 다른 멀티 플레이 네트워크의 지침을 기준으로 플레이어 보고를 처리합니다.

마켓플레이스

Xbox Live 및 다른 멀티 플레이 네트워크에서의 가상 통화 구입은 시나리오에 종속된 타이틀 서비스로 추적됩니다.

  • 가상 통화

    플레이어는 모든 플랫폼 간에 병합된 가상 통화 및 아이템 지갑을 갖고 있습니다.

  • 다운로드 가능한 콘텐츠

    DLC(다운로드 가능한 콘텐츠)는 게임의 새 영역에 액세스할 수 있게 해줍니다. Microsoft Store는 Xbox Live 플랫폼에서의 구매를 위해 사용됩니다.

    플레이어는 해당 DLC 영역에만 들어가서 해당 Microsoft Store의 영역을 사용할 자격이 있는 다른 캐릭터와만 플레이할 수 있습니다.

도전 과제

타이틀에는 오픈 월드 및 인스턴스 게임 플레이 작업을 기반으로 하는 도전 과제가 있습니다. 도전 과제 진행 상태에는 네트워크 간 게임 플레이 경험이 포함됩니다. 네트워크 간 게임 플레이로만 제한되는 도전 과제는 타이틀에 포함되지 않습니다.

플레이어 진행 상태

플레이어 진행률은 모든 타이틀 버전 간에 공유됩니다. 여러 멀티 플레이 네트워크에 연결된 사용자 지정 타이틀 계정과 사용자 지정 타이틀 서비스가 이 목적으로 사용됩니다.

게임 DVR/브로드캐스팅

타이틀은 오픈 월드 및 인스턴스 게임 플레이에서 게임 DVR 및 스크린샷을 허용하지만, 이미지 버퍼에서 모든 문자 채팅을 제거합니다.

순위표

타이틀은 타이틀 내 PvP 매치 및 PvE 챌린지를 위한 사용자 지정 순위표를 지원합니다. 이러한 순위표는 타이틀 서비스에 의해 유지 관리됩니다. 이 서비스는 클라이언트에서 읽을 수 있는 플레이어 이름으로 확인되는 GUID로 플레이어를 식별합니다.