다음을 통해 공유


GaaS(Games-as-a-Service) 지원

특정 시점에 출시되는 독립 실행형 게임이 아닌 일부 게임은 서비스로 취급되는 모델로 전환하여 해당 게임을 수년 동안 신선하게 유지하는 시즌 또는 업데이트를 제공합니다. 이 모델을 GaaS(Games-as-a-Service)라고 합니다. GDK는 이 모델을 잘 지원합니다. 이 문서는 GDK를 사용하여 게임을 서비스로 게시하는 것을 지원할 때 고려해야 할 모범 사례에 대한 개요를 제공합니다.

GDK 채택

각 GDK는 1년 동안만 지원됩니다. 기존 게임은 폐기된 GDK를 사용하여 계속 제공할 수 있지만 서비스로 제공되는 게임에는 문제가 될 수 있습니다. GDK가 중단된 후 새로운 기능을 도입하는 게임은 GDK의 이전 사용 사례에서 볼 수 없었던 버그 또는 통합 문제가 발생할 수 있습니다. 마찬가지로 게임은 출시되는 최신 GDK에만 있는 기능을 활용하고자 할 수 있습니다.

게임은 단일 GDK에 대해 빌드되어야 합니다. 게임은 한 GDK의 구성 요소를 다른 GDK와 혼합할 수 없습니다. 콘솔에서 게임에는 단일 게임 OS만 포함되며 다양한 GDK 라이브러리는 해당 기본 OS에 종속될 수 있습니다. PC에서는 게임 런타임의 한 버전만 게임 프로세스에 로드되어 콘솔에서 볼 수 있는 유사한 "단일 버전" 환경을 만듭니다.

GaaS 타이틀은 여전히 ​​지원되는 보다 최근에 출시된 GDK로 주기적으로 업데이트하는 것이 좋습니다.

지능형 전송

GaaS 타이틀은 새로운 콘텐츠의 도입으로 수년에 걸쳐 점점 더 커질 수 있습니다. 게이머는 저장 공간이 제한적일 수 있습니다. 이는 게임의 최신 업데이트를 설치하는 능력에 영향을 미칠 수 있습니다. 게이머가 자신의 저장 공간을 관리할 수 있는 능력이 있는 것은 사실이지만 지능형 전달로 구축된 게임은 게이머에게 전체 게임을 도매로 제거하는 것 이상으로 저장 공간을 사용하는 방법에서 더 많은 유연성과 선택권을 제공하고 게이머가 다음을 수행할 수 있도록 합니다. 훨씬 더 오랫동안 장치에 더 많은 게임을 설치하세요.

지능형 전달을 사용하면 게임에서 기능 및 레시피를 활용하여 기본적으로 설치된 항목을 선택하고 게임에서 게임의 어떤 부분을 계속 설치하고 싶은지, 어떤 부분은 제거할 수 있는지 관리할 수 있는 기능을 제공합니다. 더 이상 사용하지 않습니다.

GaaS 타이틀은 이러한 종류의 관리를 가능하게 하기 위해 새로운 콘텐츠를 별도의 기능에 넣을 수 있습니다. 아이디어는 새 콘텐츠가 지속성 콘텐츠라는 것입니다. 다음은 이를 관리하기 쉽게 하는 한 가지 제안입니다.

  1. 게임의 레이아웃 파일에서 각 지속성을 기능에 해당하도록 합니다.
  2. 기능은 게이머에게 해당 콘텐츠에 대한 라이선스가 있는 경우 설치해야 하는 레이아웃 파일의 청크를 나타내는 데 사용할 수 있는 하나 이상의 태그를 선언합니다.
  3. 레이아웃 파일에 Store ID 하위 항목이 있는 레시피가 포함되어 있는지 확인하세요. 이 레시피는 동일한 스토어 ID에 해당하는 단일 기능을 참조해야 합니다. 레시피를 추가하면 게이머가 이전에 이 콘텐츠를 구매한 경우 자동으로 설치됩니다.

    참고 항목

    지속성 콘텐츠와 관련이 없는 다른 기능과 레시피가 있을 수 있습니다.

이 권장 사항을 따르면 게임에서 다음을 수행할 수 있습니다.

  1. XPackageEnumerateFeatures를 호출하여 기능을 열거합니다.
  2. XPackageFeature에 있는 반환된 스토어 ID를 사용하여 라이선스를 확인하거나, 자세한 내용을 쿼리하거나, 스토어 구매 흐름을 호출합니다.

40GB보다 큰 모든 게임은 지능형 전달 사용을 적극 고려해야 합니다. 게임은 지속성 콘텐츠를 사용하여 GaaS를 지원하는 것을 고려할 수 있습니다.

다운로드 가능한 콘텐츠

일부 GaaS 타이틀은 기본 패키지를 지속적으로 발전시키는 대신 다운로드 가능한 콘텐츠(DLC)를 사용하여 수년에 걸쳐 발전하도록 선택할 수 있습니다. 게임은 자산 또는 실행 가능한 코드를 해당 DLC에 배치하도록 선택할 수 있습니다. 실행 코드에는 DLL과 EXE의 두 가지 가능한 경로가 있습니다.

게임에서 DLL을 DLC에 넣으면 다음을 수행할 수 있습니다.

  1. XPackageMountWithUiAsync를 사용하여 해당 DLC를 탑재합니다.
  2. LoadLibraryEx를 사용합니다.
  3. 이전에 탑재된 모든 DLC는 탑재된 상태로 유지됩니다.

게임에서 EXE를 DLC에 넣으면 다음을 수행할 수 있습니다.

  1. XPackageMountWithUiAsync를 사용하여 해당 DLC를 탑재합니다.
  2. 탑재된 DLC의 경로를 사용하여 XLaunchNewGames를 호출합니다.
  3. 기존 게임 프로세스가 종료됩니다.
  4. XLaunchNewGames 대상을 제외한 모든 DLC가 탑재 해제됩니다.
  5. G: 드라이브는 계속해서 새로 실행된 EXE가 아닌 기본 패키지의 루트를 가리킵니다.

실행 코드를 DLC에 넣는 게임은 LoadLibraryEx를 사용하여 실행 코드에 액세스하는 것이 좋습니다.

참고 항목

다운로드 가능한 콘텐츠(DLC)기능 및 레시피지능형 전달XPackageMountWithUiAsync