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 :- Dans le fichier de disposition du jeu, faites correspondre chaque durable à une Feature.
- 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.
- 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.
- Appeler XPackageEnumerateFeatures pour énumérer les fonctionnalités.
- 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.
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 :- Monter ce DLC à l’aide de XPackageMountWithUiAsync.
- Utiliser LoadLibraryEx.
- Tous les DLC montés précédemment restent montés.
- Monter ce DLC à l’aide de XPackageMountWithUiAsync.
- Appeler XLaunchNewGames avec le chemin du DLC monté.
- Le processus de jeu existant sera arrêté.
- Tous les DLC, sauf la cible de XLaunchNewGames, seront démontés.
- Le lecteur G: continuera de pointer vers la racine du package de base et non vers l’EXE nouvellement lancé.
Documentation de référence des API
- XPackage (contenu de l’API)
- Fonctions
- Structures
- xgame (contenu de l’API)
- Fonctions
