Skip to main content
특정 시점에 출시되는 독립 실행형 게임 대신, 일부 게임은 시즌이나 업데이트를 통해 여러 해 동안 콘텐츠를 새롭게 유지하는 서비스로 취급되는 모델로 전환되고 있습니다. 이 모델을 Games-as-a-Service(GaaS)라고 합니다. GDK는 이 모델을 잘 지원합니다. 이 문서는 GDK를 사용하여 게임을 서비스로 게시할 때 고려해야 할 모범 사례에 대한 개요를 제공합니다.

GDK 도입

각 GDK는 1년 동안만 지원됩니다. 기존 게임은 은퇴한 GDK를 사용해 계속 출시할 수 있지만, 서비스로 출시되는 게임에는 문제가 될 수 있습니다. GDK가 은퇴한 후 새로운 기능을 도입하는 게임은 이전 GDK 사용 사례에서 보지 못했던 버그나 통합 문제에 부딪힐 수 있습니다. 마찬가지로 게임은 출시되고 있는 최신 GDK에서만 발견되는 기능을 활용하고 싶을 수도 있습니다. 게임은 단일 GDK를 대상으로 빌드해야 합니다. 게임은 한 GDK의 구성 요소를 다른 GDK의 구성 요소와 혼합할 수 없습니다. 콘솔에서는 게임에 단일 Game OS만 포함되며 다양한 GDK 라이브러리는 그 기본 OS에 의존성을 가질 수 있습니다. PC에서는 게이밍 런타임의 한 버전만 게임 프로세스에 로드되어, 콘솔에서 보이는 것과 유사한 “단일 버전” 환경이 만들어집니다. GaaS 타이틀은 여전히 지원되는 보다 최근에 출시된 GDK로 주기적으로 업데이트하는 것이 권장됩니다.

Intelligent delivery

GaaS 타이틀은 새 콘텐츠 도입으로 인해 시간이 지나면서 점점 더 커질 수 있습니다. 게이머는 저장 공간이 제한적일 수 있습니다. 이는 게임의 최신 업데이트를 설치할 수 있는 능력에 영향을 미칠 수 있습니다. 게이머는 자신의 저장 공간을 관리할 수 있지만, Intelligent Delivery로 빌드된 게임은 게이머가 게임 전체를 통째로 제거하는 것 이상으로 저장 공간을 사용하는 방법에서 더 많은 유연성과 선택권을 제공하며, 게이머가 훨씬 더 오랫동안 장치에 더 많은 게임을 설치된 상태로 유지할 수 있게 해줍니다. Intelligent Delivery를 사용하면 게임은 기능과 레시피를 활용하여 기본적으로 무엇을 설치할지 선택하고, 게임의 어떤 부분을 설치된 상태로 유지하고 어떤 부분을 더 이상 사용하지 않아 제거하고 싶은지 관리할 수 있는 능력을 게임에 제공합니다. GaaS 타이틀은 이러한 종류의 관리를 활성화하기 위해 새 콘텐츠를 별도의 기능에 넣을 수 있습니다. 아이디어는 새 콘텐츠가 지속형(durable)이라는 것입니다. 다음은 이를 더 쉽게 관리할 수 있게 해주는 한 가지 제안입니다.
  1. 게임의 레이아웃 파일에서 각 지속형이 Feature에 대응하도록 만듭니다.
  2. Feature는 게이머가 해당 콘텐츠에 대한 라이선스가 있으면 레이아웃 파일의 어떤 청크가 설치되어야 하는지를 나타내는 데 사용할 수 있는 하나 이상의 Tag를 선언합니다.
  3. 레이아웃 파일에 Store ID 자식이 있는 Recipe가 포함되어 있는지 확인합니다. 이 recipe는 동일한 Store ID에 해당하는 단일 기능을 참조해야 합니다. recipe를 추가하면 게이머가 이전에 이 콘텐츠를 구매한 경우 자동으로 설치되도록 보장됩니다.
    [!NOTE] 지속형과 관련이 없는 다른 기능과 recipe가 있을 수 있습니다.
이 권장 사항을 따르면 게임은 다음을 할 수 있습니다.
  1. XPackageEnumerateFeatures를 호출하여 기능을 열거합니다.
  2. XPackageFeature에 있는 반환된 Store ID를 사용하여 라이선스를 확인하고, 자세한 정보를 쿼리하거나, 스토어 구매 흐름을 호출합니다.
40GB보다 큰 모든 게임은 Intelligent Delivery 사용을 강력히 고려해야 합니다. 게임은 GaaS를 지원하기 위해 지속형 사용을 고려할 수 있습니다.

다운로드 가능 콘텐츠

기본 패키지를 지속적으로 발전시키는 대신, 일부 GaaS 타이틀은 다운로드 가능 콘텐츠(DLC)를 사용하여 몇 년에 걸쳐 발전시키는 방법을 선택할 수 있습니다. 게임은 그 DLC에 자산이나 실행 코드를 넣는 것을 선택할 수 있습니다. 실행 코드를 사용하면 두 가지 가능한 경로가 있습니다. DLL과 EXE입니다. 게임이 DLC에 DLL을 넣으면 다음을 할 수 있습니다.
  1. XPackageMountWithUiAsync를 사용하여 그 DLC를 마운트합니다.
  2. LoadLibraryEx를 사용합니다.
  3. 이전에 마운트된 모든 DLC는 마운트된 상태로 유지됩니다.
게임이 DLC에 EXE를 넣으면 다음을 할 수 있습니다.
  1. XPackageMountWithUiAsync를 사용하여 그 DLC를 마운트합니다.
  2. 마운트된 DLC의 경로를 사용하여 XLaunchNewGames를 호출합니다.
  3. 기존 게임 프로세스가 종료됩니다.
  4. XLaunchNewGames의 대상을 제외한 모든 DLC가 마운트 해제됩니다.
  5. G: 드라이브는 새로 실행된 EXE가 아니라 기본 패키지의 루트를 계속 가리킵니다.
DLC에 실행 코드를 넣는 게임은 LoadLibraryEx를 사용하여 해당 실행 코드에 액세스하는 것이 권장됩니다.

참조 API 문서

참고 항목

다운로드 가능 콘텐츠(DLC) 기능과 레시피 Intelligent Delivery XPackageMountWithUiAsync
마지막 수정일 2026년 8월 13일