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)이라는 것입니다. 다음은 이를 더 쉽게 관리할 수 있게 해주는 한 가지 제안입니다.- 게임의 레이아웃 파일에서 각 지속형이 Feature에 대응하도록 만듭니다.
- Feature는 게이머가 해당 콘텐츠에 대한 라이선스가 있으면 레이아웃 파일의 어떤 청크가 설치되어야 하는지를 나타내는 데 사용할 수 있는 하나 이상의 Tag를 선언합니다.
- 레이아웃 파일에 Store ID 자식이 있는 Recipe가 포함되어 있는지 확인합니다. 이 recipe는
동일한 Store ID에 해당하는 단일 기능을 참조해야 합니다. recipe를 추가하면 게이머가 이전에
이 콘텐츠를 구매한 경우 자동으로 설치되도록 보장됩니다.
[!NOTE] 지속형과 관련이 없는 다른 기능과 recipe가 있을 수 있습니다.
- XPackageEnumerateFeatures를 호출하여 기능을 열거합니다.
- XPackageFeature에 있는 반환된 Store ID를 사용하여 라이선스를 확인하고, 자세한 정보를 쿼리하거나, 스토어 구매 흐름을 호출합니다.
다운로드 가능 콘텐츠
기본 패키지를 지속적으로 발전시키는 대신, 일부 GaaS 타이틀은 다운로드 가능 콘텐츠(DLC)를 사용하여 몇 년에 걸쳐 발전시키는 방법을 선택할 수 있습니다. 게임은 그 DLC에 자산이나 실행 코드를 넣는 것을 선택할 수 있습니다. 실행 코드를 사용하면 두 가지 가능한 경로가 있습니다. DLL과 EXE입니다. 게임이 DLC에 DLL을 넣으면 다음을 할 수 있습니다.- XPackageMountWithUiAsync를 사용하여 그 DLC를 마운트합니다.
- LoadLibraryEx를 사용합니다.
- 이전에 마운트된 모든 DLC는 마운트된 상태로 유지됩니다.
- XPackageMountWithUiAsync를 사용하여 그 DLC를 마운트합니다.
- 마운트된 DLC의 경로를 사용하여 XLaunchNewGames를 호출합니다.
- 기존 게임 프로세스가 종료됩니다.
- XLaunchNewGames의 대상을 제외한 모든 DLC가 마운트 해제됩니다.
- G: 드라이브는 새로 실행된 EXE가 아니라 기본 패키지의 루트를 계속 가리킵니다.
참조 API 문서
- XPackage(API 콘텐츠)
- Functions
- Structures
- xgame(API 콘텐츠)
- Functions
