Skip to main content
Au lieu d’être des jeux autonomes publiés à un moment précis, certains jeux évoluent vers un modèle dans lequel ils sont traités comme un service, avec des saisons ou des mises à jour qui les maintiennent attrayants pendant de nombreuses années. Ce modèle est appelé jeux en tant que service (GaaS). Le GDK prend bien en charge ce modèle. Ce document présente les bonnes pratiques à prendre en compte lorsque vous utilisez le GDK pour publier un jeu en tant que service.

Adoption du GDK

Chaque GDK n’est pris en charge que pendant un an. Bien que les jeux existants puissent continuer à être livrés avec un GDK retiré, cela peut poser problème pour les jeux livrés en tant que service. Les jeux qui introduisent de nouvelles fonctionnalités après le retrait d’un GDK peuvent rencontrer des bogues ou des problèmes d’intégration qui n’avaient pas été observés dans les cas d’utilisation antérieurs du GDK. De même, le jeu peut vouloir tirer parti de fonctionnalités disponibles uniquement dans les GDK les plus récents. Un jeu doit être généré avec un seul GDK. Les jeux ne peuvent pas mélanger des composants d’un GDK avec ceux d’un autre. Sur console, le jeu n’inclut qu’un seul Game OS et les différentes bibliothèques du GDK peuvent dépendre de ce système d’exploitation sous-jacent. Sur PC, une seule version du runtime de jeu est chargée dans le processus du jeu, ce qui crée un environnement « à version unique » semblable à celui de la console. Il est recommandé que les titres GaaS passent régulièrement à un GDK publié plus récemment et toujours pris en charge.

Intelligent Delivery

Les titres GaaS peuvent devenir de plus en plus volumineux au fil des années avec l’ajout de nouveau contenu. L’espace de stockage des joueurs peut être limité, ce qui peut les empêcher d’installer la dernière mise à jour du jeu. Bien que les joueurs puissent gérer eux-mêmes leur espace de stockage, les jeux conçus avec Intelligent Delivery leur offrent davantage de souplesse et de choix dans l’utilisation de leur espace de stockage, au-delà de la simple désinstallation de jeux entiers, et permettent aux joueurs de conserver davantage de jeux installés sur leurs appareils beaucoup plus longtemps. Avec Intelligent Delivery, les jeux peuvent tirer parti des fonctionnalités et recettes, en choisissant ce qui est installé par défaut et en permettant de gérer les parties du jeu à conserver installées et celles qu’ils peuvent vouloir supprimer parce qu’elles ne sont plus utilisées. Les titres GaaS peuvent choisir de placer leur nouveau contenu dans des fonctionnalités distinctes pour permettre ce type de gestion. L’idée est que le nouveau contenu soit un durable. Voici une suggestion qui facilite cette gestion :
  1. Dans le fichier de disposition du jeu, faites correspondre chaque durable à une Feature.
  2. La Feature déclare un ou plusieurs Tags qui permettent d’indiquer quels blocs du fichier de disposition doivent être installés si le joueur possède une licence pour ce contenu.
  3. Assurez-vous que le fichier de disposition inclut une Recipe comportant un enfant Store ID. Cette recette doit référencer une seule fonctionnalité correspondant au même Store ID. L’ajout de la recette garantit que, si le joueur a déjà acheté ce contenu, celui-ci sera automatiquement installé.
    [!NOTE] Il peut exister d’autres fonctionnalités et recettes qui n’ont aucun rapport avec les durables.
En suivant cette recommandation, les jeux peuvent ensuite :
  1. Appeler XPackageEnumerateFeatures pour énumérer les fonctionnalités.
  2. Utiliser le Store ID retourné dans XPackageFeature pour vérifier la licence, demander plus de détails ou lancer des flux d’achat dans le Store.
Tous les jeux de plus de 40 Go devraient sérieusement envisager d’utiliser Intelligent Delivery. Les jeux peuvent envisager d’utiliser des durables pour prendre en charge le modèle GaaS.

Contenu téléchargeable

Au lieu de faire évoluer continuellement leur package de base, certains titres GaaS peuvent choisir d’évoluer au fil des années à l’aide de contenu téléchargeable (DLC). Les jeux peuvent choisir de placer des ressources ou du code exécutable dans ce DLC. Pour le code exécutable, deux approches sont possibles : les DLL et les EXE. Si le jeu place des DLL dans son DLC, il peut :
  1. Monter ce DLC à l’aide de XPackageMountWithUiAsync.
  2. Utiliser LoadLibraryEx.
  3. Tous les DLC montés précédemment restent montés.
Si le jeu place un EXE dans son DLC, il peut :
  1. Monter ce DLC à l’aide de XPackageMountWithUiAsync.
  2. Appeler XLaunchNewGames avec le chemin du DLC monté.
  3. Le processus de jeu existant est arrêté.
  4. Tous les DLC, à l’exception de la cible de XLaunchNewGames, sont démontés.
  5. Le lecteur G: continue de pointer vers la racine du package de base et non vers l’EXE nouvellement lancé.
Il est recommandé que les jeux qui placent du code exécutable dans leur DLC accèdent à ce code exécutable à l’aide de LoadLibraryEx.

Documentation de référence de l’API

Voir aussi

Contenu téléchargeable (DLC) Fonctionnalités et recettes Intelligent Delivery XPackageMountWithUiAsync
Last modified on October 6, 2026