Passer au contenu principal
Au lieu d’être des jeux autonomes publiés à un moment précis, certains jeux adoptent un modèle dans lequel ils sont traités comme un service, recevant des saisons ou des mises à jour qui les gardent frais pendant de nombreuses années. Ce modèle s’appelle « jeux en tant que service » (GaaS). Le GDK prend bien en charge ce modèle. Ce document présente un aperçu des pratiques exemplaires à considérer 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 publiés avec un GDK retiré, cela peut poser problème pour les jeux publié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 offertes uniquement dans les plus récents GDK publiés. 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 diverses bibliothèques du GDK peuvent avoir des dépendances envers 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 périodiquement à un GDK publié plus récemment et qui est toujours pris en charge.

Intelligent Delivery

Les titres GaaS peuvent devenir de plus en plus volumineux au fil des ans avec l’ajout de nouveau contenu. Les joueurs peuvent disposer d’un espace de stockage limité, ce qui pourrait nuire à leur capacité d’installer la plus récente 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 offrent au joueur plus de souplesse et de choix dans l’utilisation de son espace de stockage, au-delà de la désinstallation complète de jeux, et permettent aux joueurs de garder plus de jeux installés sur leurs appareils beaucoup plus longtemps. Grâce à Intelligent Delivery, les jeux peuvent tirer parti des fonctionnalités et recettes, en choisissant ce qui est installé par défaut et en ayant la possibilité de gérer les parties du jeu qu’ils veulent garder installées et celles qu’ils voudront peut-être supprimer parce qu’elles ne sont plus utilisées. Les titres GaaS pourraient choisir de placer leur nouveau contenu dans des fonctionnalités distinctes afin de permettre ce type de gestion. L’idée est que le nouveau contenu soit un durable. Voici une suggestion qui faciliterait cette gestion :
  1. Dans le fichier de disposition du jeu, faites correspondre chaque durable à une Feature.
  2. La Feature déclarera une ou plusieurs Tags pouvant servir à indiquer quels blocs du fichier de disposition doivent être installés si le joueur détient une licence pour ce contenu.
  3. Assurez-vous que le fichier de disposition comprend une Recipe ayant 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 lien 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 la structure XPackageFeature pour vérifier la licence, obtenir plus de détails ou appeler les flux d’achat du 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 ans au moyen 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 sera arrêté.
  4. Tous les DLC, sauf la cible de XLaunchNewGames, seront démontés.
  5. Le lecteur G: continuera 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 au moyen de LoadLibraryEx.

Documentation de référence des API

Voir aussi

Contenu téléchargeable (DLC) Fonctionnalités et recettes Intelligent Delivery XPackageMountWithUiAsync
Dernière modification le 6 octobre 2026