Découvrez les pratiques recommandées concernant divers aspects des transactions sur l'île, ainsi que des conseils pour tester et déboguer votre vitrine.
Utiliser l'appareil Verse Transactions sur l'île
L'appareil Verse Transactions sur l'île contient un modèle pour les transactions sur l'île. Celui-ci inclut toutes les implémentations des principaux aspects du module Marché de l'API Verse. notamment les objets, les offres, les packs, et la gestion des achats via l'interface utilisateur par défaut de la boutique. Utilisez ce code comme guide pour configurer rapidement votre vitrine.
Pour accéder à l'appareil :
Accédez à l'Explorateur Verse.
Faites un clic droit sur le nom de votre projet.
Sélectionnez Ajouter un nouveau fichier Verse au projet.
Sélectionnez l'appareil Transactions sur l'île.
Pour utiliser le code tel quel, accédez au code Verse et modifiez les éléments suivants dans le fichier :
Noms des objets
Descriptions
Icônes
Dans le code, remplacez les noms par défaut par les noms correspondant aux objets et aux offres que vous proposez.
Pratiques recommandées en matière de codage
Vous pouvez affiner votre code Verse afin d'améliorer l'évolutivité de votre code et les performances de votre île.
Organiser votre flux de travail
L'une des pratiques recommandées en matière de programmation est de séparer les tâches. Il est en effet souhaitable que les fichiers et les fonctions soient axés sur l'exécution d'une tâche spécifique afin de faciliter leur maintenance ultérieure, à mesure que le projet prend de l'ampleur.
Vous obtenez donc des fichiers de code moins volumineux, organisés de manière claire et plus faciles à lire et à comprendre, ce qui simplifie le débogage.
Pour adapter cette approche aux transactions, vous pouvez :
Placer les définitions d'objets dans un fichier distinct.
Placer les offres et les packs dans un fichier distinct.
Créer un appareil qui gère toutes les offres statiques et prédéfinies.
Créer un appareil qui gère uniquement les offres dynamiques.
Créer un appareil qui gère uniquement les achats.
Organiser à l'aide de modules
Les modules sont des unités atomiques de code que vous pouvez redistribuer pour les utiliser dans plusieurs fichiers. Il est possible de modifier les modules sans rompre les dépendances dans les fichiers dans lesquels le module est déjà utilisé. Vous pouvez placer les unités de code longues ou répétitives, notamment les définitions d'objet, dans un fichier distinct, puis les importer à l'aide de l'instruction using.
L'un des principaux avantages d'utiliser des modules est que vous n'avez besoin de définir une variable pour un membre du module qu'une seule fois à un seul emplacement. Cela vous permet ensuite de partager les mêmes données entre différents fichiers de code Verse en important le module et en référençant les variables. En cas d'erreurs impliquant les données du module, cette approche réduit les points de défaillance à vérifier au module uniquement, plutôt qu'à tous les emplacements où vous avez utilisé le contenu du module.
L'extrait ci-dessous montre comment définir les informations concernant l'objet pour CornSeedPacket dans un module.
EntitlementInfo<public> := module:
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."ProductInfo et CornSeedPacket sont tous deux définis en tant que modules afin de vous permettre d'importer toutes les informations sur les objets et d'accéder directement aux variables membres de CornSeedPacket, notamment sa variable Name.
Cet extrait de code montre comment importer le module EntitlementInfo afin de définir l'objet corn_seed_pack.
Notez qu'il n'est pas nécessaire de saisir à nouveau les chaînes des variables telles que Name, car vous pouvez référencer la variable directement à partir du module CornSeedPacket. Cela réduit le risque d'erreurs visuelles telles que les fautes de frappe.
Entitlements<public> := module:
using { EntitlementInfo }
# Using custom entitlement class to distinguish your entitlements.
my_island_entitlement<public> := class<abstract><castable>(entitlement){}
corn_seed_pack<public> := class<concrete>(my_island_entitlement):
var Name<override> : message = CornSeedPacket.Name
var Description<override> : message = CornSeedPacket.Description
var ShortDescription<override> : message = CornSeedPacket.ShortDescription
Dans l'instruction using, vous devez spécifier un chemin d'accès au fichier du module que vous souhaitez importer. Il n'est pas nécessaire d'indiquer le chemin d'accès au fichier dans cet exemple, car le module est censé se trouver dans le même dossier.
Améliorer les performances de l'île
Vous pouvez améliorer la réactivité de votre expérience en définissant vos méthodes d'achat et d'octroi d'objets avec l'effet <suspends> et en les appelant à l'aide de spawn.
Cela permet à TryBuyOffer de s'exécuter de manière asynchrone pendant que d'autres aspects de la logique de votre jeu continuent à s'exécuter. Cela empêche également l'interruption de votre jeu jusqu'à ce qu'une transaction soit terminée.
TryBuyOffer(Player:player, Offer:offer)<suspends>:void=
Result := BuyOffer(Player, Offer)
OnButtonInteraction(Agent:agent):void=
if (Player := player[Agent]):
spawn{TryBuyOffer(Player, OfferType)}
Pratiques recommandées en matière d'icônes
Les textures de jeu présentent des exigences spécifiques en matière de rendu. Lorsque vous créez des textures dans l'UEFN avec des images importées, assurez-vous que le fichier d'image source utilise la puissance 2 pour la hauteur et la largeur. Cela permet d'améliorer la compatibilité et la stabilité de votre île sur les différentes plateformes.
La
Le chargement dynamique de textures permet :
Modifier la résolution d'une texture
Déterminer la vitesse de chargement d'un jeu
Améliorer la qualité visuelle du jeu
Économiser la mémoire du processeur graphique
Pour en savoir plus sur la règle de puissance 2 et le redimensionnement des textures, consultez la page Redimensionner les textures.
Pour en savoir plus sur l'importation de ressources personnalisées dans l'UEFN, consultez la page Importation des ressources. Pour en savoir plus sur la façon d'exposer des ressources telles que les textures dans Verse, consultez la page Exposer les ressources.
Tester et déboguer vos objets
Les sessions de modification en direct et de test privé sont des sessions de débogage. Les sessions de débogage ont les conséquences suivantes sur le comportement des transactions, des objets et des offres :
Les transactions n'entraînent pas la déduction des V-bucks des comptes.
Les objets accordés et achetés sont supprimés à la fin de la session de débogage.
Les sessions de débogage ont accès au menu Commandes de débogage.
Vos offres doivent être disponibles sur une version de test privée de l'île et accessibles à tous les coéquipiers en vue de leur utilisation pendant la phase de test. Les objets proposés ne sont pas considérés comme disponibles. Les objets ne sont disponibles qu'une fois l'île publiée et accessible au public.
Accéder au menu Commandes de débogage
Vous pouvez accéder au menu Commandes de débogage en appuyant sur la touche Échap sur un PC ou sur le bouton Démarrer/Options de la manette, puis en sélectionnant l'option Commandes de débogage dans le menu.
Commandes de débogage de la boutique
Les commandes de débogage de votre vitrine se trouvent sous Commandes de débogage de la boutique, où vous avez accès aux commandes suivantes :
Nom de la commande | Description |
Ouvrir la vitrine | Cette commande affiche une interface utilisateur dynamique avec des offres pour tous les objets disponibles, ce qui permet aux joueurs de les acheter individuellement. Elle permet de sélectionner directement l'objet que vous souhaitez tester. |
Accorder tous les objets | Cette commande remplit l'inventaire de ce joueur, afin que ce dernier possède le nombre maximal de tous les objets disponibles. Vous pouvez également tester le comportement de cette commande dans le jeu pour déterminer si les joueurs ont accès à un objet dans une zone où ils ne devraient pas. |
Accorder un exemplaire de l'objet | Cette commande accorde un exemplaire de chaque objet à un joueur. Elle permet d'obtenir un grand nombre d'objets, tout en permettant de tester l'achat d'objets non durables dans l'inventaire du joueur sans atteindre la quantité maximale. Si l'octroi de l'objet entre en conflit avec les paramètres Vous pouvez également tester le comportement de cette commande dans le jeu si les joueurs ont accès à un objet dans une zone où ils ne devraient pas. |
Supprimer les objets | Cette commande supprime tous les objets de l'inventaire du joueur. Elle permet de réinitialiser l'inventaire d'un joueur afin de poursuivre le test d'offres d'achat. Elle peut être utile pour tester les cas Cette commande peut également être utile pour accélérer l'itération lors des tests en réinitialisant rapidement l'inventaire. |
Afficher les objets détenus | Cette commande affiche tous les objets détenus dans le journal de sortie. |
Échec systématique des achats | Cette commande est désactivée par défaut. Si elle est désactivée, les achats se comportent comme prévu. Si elle est activée, les achats échouent systématiquement, quelles que soient les conditions indiquant qu'ils devraient aboutir. La commande Échec systématique des achats est utile pour tester les cas |