
-
Premiers pas avec Game Center
Explorez les fonctionnalités de Game Center et découvrez comment bien démarrer. Nous vous présenterons les meilleures pratiques pour implémenter des trophées, des défis, des classements et des activités afin d'optimiser la visibilité de votre jeu, d'attirer de nouveaux joueurs et de renforcer l'engagement. Pour tirer pleinement parti de cette séance, nous vous recommandons également de regarder « Suscitez l'engagement des joueurs avec Apple Jeux ».
Chapitres
- 0:00 - Introduction
- 2:41 - Configuration du projet
- 6:51 - Intégrer les fonctionnalités de Game Center
- 10:00 - Défis et activités
- 23:53 - Tester votre implémentation
- 26:44 - Publier dans l’App Store
- 28:32 - Étapes suivantes
Ressources
- Apple Unity Plug-Ins on GitHub
- Creating activities for your game
- Creating engaging challenges from leaderboards
- Game Center overview
- Human Interface Guidelines: Game Center
Vidéos connexes
WWDC25
WWDC22
-
Rechercher dans cette vidéo…
Bonjour, je m’appelle Josh Arenson et je suis ingénieur dans l’équipe Frameworks Game Center. Je vais présenter les meilleures façons d’ajouter Game Center à votre jeu et pourquoi je vous le conseille. Moi c’est Varokas Panusuwan, Ingénieur des serveurs Game Center. Je vais présenter les nouvelles fonctionnalités géniales de cette année et des bonnes pratiques pour en tirer le meilleur parti. Parfait ! Nous allons aussi parler de nouveautés géniales, alors restez avec nous, quel que soit votre niveau. Si vous ne connaissez pas Game Center ou si vous avez besoin d’un rappel, il s’agit de fonctionnalités qui aident les joueurs à s’immerger dans les jeux et à en découvrir de nouveaux via leurs amis. Game Center permet aux joueurs d’interagir avec leurs contacts et de s’affronter, conformément à l’engagement d’Apple en matière de confidentialité. Game Center offre plusieurs fonctionnalités : Réalisations, Classements, Défis et Activités. Tout cela vous aide à créer des expériences captivantes. Les joueurs peuvent suivre leurs progrès, s’affronter et inviter facilement leurs amis à jouer à votre jeu. Si vous souhaitez que davantage de joueurs découvrent votre jeu, l’app Apple Games, préinstallée sur macOS, iPadOS et iOS dès cet automne, est faite pour vous. Game Center aide à booster la visibilité de votre jeu dans l’écosystème Apple, et en particulier dans l’app Games. Chaque fonctionnalité Game Center que vous intégrez fournit davantage d’infos pour présenter votre jeu dans plus d’emplacements. Game Center motive les joueurs grâce à ses fonctionnalités de base : Classements, Défis, Activités et Réalisations. Elles proposent aux joueurs des objectifs et des moyens d’interagir dans le jeu, ce qui les rend plus impliqués. Ces fonctionnalités de base contribuent à les fidéliser. Elles rendent votre jeu plus fun et boostent l’esprit de compétition, ce qui incite à continuer à jouer. Quand un joueur recherche de nouveaux jeux, il commence par parcourir l’App Store. Le classement « Jeux les plus joués » montre le top des jeux ayant enregistré le plus de temps de jeu. L’app Games propose aussi ce classement, donc Game Center vous donne un coup de pouce aux deux endroits. Dans l’App Store et dans l’app Games, vous trouverez la section « Amis en train de jouer ». C’est sympa de découvrir les jeux qui plaisent le plus, mais parfois on cherche des jeux plus adaptés à nos goûts. Cette section vous montre ce que vos amis aiment, ce qui peut vous aider à dénicher des perles rares qui ne figurent peut-être pas dans les classements. Game Center favorise la compétition amicale. Il envoie des notifications Push, par exemple si un ami vous détrône et passe en tête d’un classement. Maintenant que nous avons présenté Game Center et les avantages pour votre jeu, passons à la pratique. Varokas et moi-même allons vous montrer à quel point il est facile d’ajouter Game Center à votre jeu, depuis la configuration du projet jusqu’au test de votre implémentation et à la publication sur l’App Store. Il suffit de deux étapes pour que Game Center fonctionne dans votre jeu. D’abord, ajoutez l’autorisation Game Center à votre projet. Cela instaure une communication entre votre jeu et Game Center. Puis, initialisez GameKit, le framework qui permet de communiquer avec Game Center. Ajoutez l’autorisation Game Center dans Xcode : ouvrez votre projet, accédez à l’onglet Signing and Capabilities, cliquez sur + Capability, recherchez et ajoutez Game Center.
Si vous utilisez Unity, Apple fournit un plug-in qui simplifie le processus d’ajout de l’autorisation Game Center. Téléchargez le plug-in depuis GitHub. Le référentiel indique comment le compiler et l’installer. Une fois le plug-in installé, ouvrez l’éditeur Unity, accédez au menu Build Profiles et cliquez sur Build. Cela générera un projet Xcode contenant déjà les autorisations appropriées. Une fois l’autorisation ajoutée, quelques lignes de code suffisent pour initialiser GameKit, le framework permettant d’interagir avec Game Center. L’initialisation est très simple. Vous enregistrez un gestionnaire qui sera appelé une fois l’initialisation terminée. Une fois le gestionnaire exécuté, vous avez accès à l’objet GKLocalPlayer, qui fournit les infos nécessaires sur le joueur pour indiquer la progression du jeu. Dans ce code Swift, je configure le gestionnaire d’initialisation. Une fois l’initialisation terminée, le gestionnaire est appelé et GKLocalPlayer se reporte à un joueur valide. J’ai une excellente nouvelle pour les développeurs Unity : toutes les API GameKit ont des liaisons C#. Le plug-in Unity d’Apple permet d’intégrer GameKit directement depuis l’éditeur Unity. Voici le même code d’initialisation GameKit en C#.
Une fois le gestionnaire d’initialisation appelé, Game Center affiche une bannière pour informer les joueurs de sa disponibilité. Si une personne n’a jamais joué à un jeu Game Center auparavant, elle sera invitée à s’inscrire avec son compte Apple. Pour booster la visibilité du jeu, définissez le gestionnaire d’initialisation Game Center le plus près possible du lancement. Votre jeu apparaîtra ainsi dans le classement des jeux les plus joués et sera recommandé à d’autres joueurs. Dans The Coast, un jeu sur lequel je travaille avec Varokas et mon collègue Logan, nous avons configuré le gestionnaire pour qu’il se déclenche dès l’écran titre, un excellent emplacement. Une fois le gestionnaire d’initialisation configuré, vous pouvez améliorer votre jeu grâce aux fonctionnalités du Game Center : Les réalisations récompensent les progrès des joueurs pour qu’ils puissent frimer. Les classements et les défis stimulent la compétition et créent des opportunités multijoueurs, même dans les jeux solo. Les activités dirigent les joueurs directement vers un contenu spécifique du jeu. Par exemple, un accès direct au niveau permettant de gagner une réalisation ! Trois méthodes permettent de configurer ces fonctionnalités du Game Center. Une nouveauté Xcode 26 : on peut configurer Game Center directement dans Xcode avec un bundle GameKit. Cette méthode a des avantages sympas, elle peut se synchroniser avec App Store Connect et c’est l’approche recommandée pendant le développement du jeu.
Une fois que vous êtes prêt à lancer votre jeu, le site web App Store Connect vous aidera à passer le processus de vérification et à vérifier la configuration de votre Game Center. Si vous souhaitez automatiser une partie du processus de configuration, par exemple, dans le cadre de votre workflow d’intégration continue, l’API App Store Connect est là pour ça. Les bundles GameKit offrent de gros avantages : de nouvelles fonctionnalités de test pour vos réalisations, classements et activités, directement dans Xcode et totalement isolées du jeu en ligne, grâce au Game Progress Manager. Le fait de déclarer ces données localement signifie que la configuration Game Center est automatiquement incluse dans les révisions de code et le contrôle de version. Hier soir, Varokas et moi étions en train de travailler sur notre jeu, The Coast. Il a commencé à configurer Game Center dans App Store Connect, mais je veux utiliser un bundle .gamekit pour intégrer les fonctionnalités Game Center, ce qui simplifie le développement. Pour ajouter un bundle GameKit au projet Xcode, il suffit d’ouvrir le sélecteur de modèles.
Dans la barre de recherche, je saisis GameKit.
Vous voyez le modèle GameKit Bundle ? Je le sélectionne, puis Suivant.
Je peux choisir un nom de fichier, mais le nom par défaut me va. Je clique sur Create et Xcode ajoute le bundle à mon projet.
Comme j’ai déjà quelques classements, défis, activités et réalisations dans App Store Connect, je vais extraire les infos sur mon jeu à partir de là. Je clique sur les points de suspension, puis sur Pull from App Store Connect.
Je choisis mon équipe de développement, je recherche The Coast et je clique sur Pull pour récupérer les infos du jeu.
Une fois que c’est fait, je peux voir tout ce que j’ai créé auparavant dans App Store Connect.
Varokas et moi avons décidé d’ajouter un classement à l’un de nos niveaux, Cape Cod, dans The Coast. Dans Cape Cod, les joueurs touchent rapidement les navires pour les mener en lieu sûr et gagner des points. Mais attention ! Certains navires sont en réalité des homards déguisés. Si vous touchez un homard par erreur, vous perdez. Pour ajouter le classement, je clique sur le bouton + et je sélectionne Leaderboard.
Xcode demande un nom de référence et un identifiant. Tout ce qui est créé dans Game Center comporte ces deux champs, que seuls les développeurs peuvent voir. L’identifiant permet de référencer le classement à partir du code du jeu. Je mets les valeurs dont Varokas et moi avons parlé et je clique sur Add.
Je peux maintenant ajuster le classement selon les besoins du niveau du jeu. Pour l’instant, les réglages par défaut me vont. Game Center détecte automatiquement la région de mon joueur et affiche les informations dans sa langue. Il est donc essentiel de préparer des noms, des descriptions et des images localisés pour chaque langue prise en charge.
Je clique sur + pour ajouter une localisation, je saisis les valeurs dont nous avons parlé, puis je clique sur Add.
Tout est prêt, mon classement peut être appelé à partir du code de mon jeu. Vous pouvez vous baser sur ce que l’on vient de voir et utiliser ces concepts pour créer des réalisations, des défis et des activités. Maintenant que vous avez vu comment configurer votre jeu pour Game Center et implémenter ses fonctionnalités, je cède la parole à Varokas, qui va faire part de son expertise. Merci Josh. Je suis ravi de montrer comment ajouter deux nouvelles fonctionnalités Game Center à votre jeu : les défis et les activités. Tous deux ont été conçus pour créer de nouvelles expériences multijoueurs et renforcer l’engagement des joueurs dans le jeu. Les défis transforment un jeu solo en une expérience partagée avec des amis. Les défis sont des ajouts directs aux classements existants de votre jeu. Vous bénéficiez donc de deux fonctionnalités pour le prix d’une. Aucun code supplémentaire n’est nécessaire ! Avec les défis, les joueurs invitent leurs amis à s’affronter pour obtenir le meilleur score. Tous les scores apparaissent en temps réel, ils voient qui gagne et peuvent même lancer une revanche directement depuis cet écran. Tous les défis ont une limite de temps. Les joueurs vont donc se lancer dans le jeu avant la fin du temps imparti. Les défis sont associés aux classements, mais fonctionnent un peu différemment. Un classement est une compétition continue avec tous vos amis du Game Center. Un défi offre des options de personnalisation importantes lors de sa création. Les classements sont permanents, mais un défi a un début et une fin. Le joueur qui lance le défi peut choisir quand il souhaite commencer la partie. Il peut aussi choisir la durée du défi avant que le temps ne soit écoulé. Un classement englobe tous les amis Game Center d’un joueur, mais un défi lui permet de choisir qui peut y participer. Cela inclut les joueurs qui ne sont pas dans la liste d’amis. Il peut décider du nombre d’essais de chaque joueur, ce qui en fait une mini-compétition très personnalisée.
Vos joueurs personnalisent la durée du défi, mais vous avez la possibilité de choisir les durées qu’ils peuvent sélectionner. Vous pouvez permettre de choisir 1 jour, 3 jours, une semaine ou une combinaison de ces options. Voici la partie cool ! Pour activer les défis pour vos joueurs, vous n’aurez peut-être pas besoin d’apporter des modifications au jeu. Si votre jeu comporte un classement, vous utilisez déjà l’API submitScore() pour mettre à jour les scores des joueurs. Désormais, cette API soumet automatiquement les scores à tous les défis associés. Comme Cape Cod est le premier niveau de The Coast, c’est un niveau très populaire. C’est donc l’endroit idéal pour ajouter un défi. Je dois d’abord créer les métadonnées du défi dans Xcode. Comme toutes les fonctionnalités de Game Center, un défi doit être accompagné d’une image qui le représente et d’un nom d’affichage. En interne, vous devrez aussi utiliser un identifiant dans le code du jeu et un nom de référence pour rechercher le défi dans App Store Connect. J’ai donc préparé l’image, le nom d’affichage, l’ID et le nom de référence pour Cape Cod. Nous avons déjà configuré un classement dans The Coast. Je dois juste vérifier que l’ID du classement dans submitScore() est bien défini. En suivant le même processus que celui que Josh a montré, je crée le défi dans Xcode avec l’image et le nom d’affichage.
Pour m’assurer que tout est bon, je vérifie que le classement associé est bien défini sur Cape Cod. Ici, je peux configurer les durées que le joueur peut sélectionner. Comme The Coast est un jeu court d’une minute, je vais autoriser soit un jour, soit trois jours. Et c’est tout ce qu’il faut pour implémenter un défi. Vérifiez que les métadonnées du défi sont bien configurées. Si vous utilisez déjà des classements, pas besoin de changer le code du jeu. Si votre jeu comporte un classement récurrent, un défi associé fonctionnera un peu différemment. Les classements sont permanents, et un classement récurrent a une date de début et une date de fin bien définies. Voici un exemple de classement récurrent quotidien, qui a commencé à minuit aujourd’hui et se terminera à minuit demain.
Un défi associé à un classement récurrent se terminera en même temps que le classement actuel. Si je commence un nouveau défi maintenant avec Josh, nous avons jusqu’à mercredi minuit pour nous affronter avant la fin.
Dans ce cas, l’écran de création du défi affichera le temps restant avant minuit.
De plus, lorsqu’un défi est basé sur un classement récurrent, vous pouvez le marquer comme non répétable. Les joueurs n’ont alors droit qu’à un essai. Cela peut être utile, par exemple, dans un jeu de réflexion. Un défi de réflexion quotidien fonctionne mieux comme défi non répétable. Les joueurs peuvent créer et consulter des défis à plusieurs endroits dans l’app Games. Vous pouvez aussi créer votre propre UI pour afficher tous les défis disponibles et actifs dans votre jeu. Consultez la documentation pour en savoir plus. Les défis mettent tout le monde au même niveau et donnent une chance à tous. Veillez à soumettre vos scores pour les classements et les défis de la manière recommandée.
Par exemple, il est important de soumettre un nouveau score à la fin de chaque niveau. Ici, j’envoie le score « Nombre de navires sauvés » après chaque tentative du joueur. N’accumulez pas les scores sur plusieurs tentatives. Évitez les scores cumulés, comme « Total des navires sauvés ». Il s’agit d’un concours d’habileté, pas d’une mesure du temps passé par chaque personne à jouer au jeu.
N’oubliez pas que c’est le joueur qui crée le défi qui décide du nombre de tentatives autorisées pour chaque joueur. En général, il est préférable de ne soumettre un score qu’une fois, à la fin de chaque niveau. Veillez donc à ne pas soumettre de scores plus souvent que prévu. J’ai maintenant configuré mon défi. Je veux que mes joueurs commencent à y participer facilement. C’est là que les activités s’avèrent utiles.
Les activités sont une nouvelle fonctionnalité permettant l’ajout de liens profonds directement dans l’action du jeu. Les activités sont des destinations spécifiques du jeu. Vous pouvez diriger les joueurs directement vers elles avec un lien profond. Le point de départ d’une activité est défini en lui associant d’autres fonctionnalités du Game Center.
Par exemple, un classement qui soumet les scores à la fin du niveau 1 peut être associé à une activité qui renvoie vers le début de ce niveau. Lorsque les joueurs voient ce classement dans l’app Games, ils peuvent toucher Jouer pour démarrer directement le niveau. Tous les défis définis pour ce classement sont également associés à la même activité. Ainsi, lorsque les joueurs voient le défi du niveau 1 dans l’app Games, ils peuvent toucher Jouer et démarrer le niveau 1. Les activités peuvent aussi diriger le joueur vers des parties du jeu associées à des réalisations spécifiques, comme un combat contre un boss.
Les activités permettent aussi de créer des liens profonds vers des expériences multijoueurs en temps réel. La prise en charge intégrée des codes de groupe dans Game Center permet d’intégrer un système multijoueur en temps réel existant aux activités Game Center. Les activités offrent de nombreux moyens d’attirer davantage de joueurs vers votre jeu. Je vais montrer deux exemples avec The Coast : L’un concerne le défi Cape Cod que je viens de créer, et l’autre une activité multijoueur. J’ai déjà invité mes amis à essayer mon nouveau défi Cape Cod. Je veux définir une activité pour ce défi, pour que le bouton jouer mène directement au début d’un niveau lorsqu’on le touche. Définissons d’abord les métadonnées. Pour l’ID d’activité, j’utilise « thecoast.activity ». Si je veux, je peux ajouter plus de détails à l’activité de base. Je peux indiquer que l’activité correspond à un mode de jeu spécifique dans The Coast. Je peux ensuite associer un classement ou des réalisations à une activité. Mais qu’en est-il des défis ? N’oubliez pas que les défis étendent les classements. Cela signifie que lorsque vous associez un classement à une activité, les défis sont automatiquement associés aussi. Je vais donc associer le classement de Cape Cod à mon activité. L’élément associé peut également avoir des propriétés. J’ai ajouté ici « capeCod » comme valeur level pour les propriétés du classement. Lorsque cette activité est déclenchée par le défi Cape Cod, les propriétés de base sont combinées avec les propriétés du classement. Une fois toutes les propriétés envoyées, je vérifie dans le gestionnaire du jeu que Cape Cod est le niveau de départ. J’ai tout ce dont j’ai besoin pour une activité, je mets donc les valeurs de métadonnées dans Xcode. J’ai déjà créé ici une activité avec une image et un nom d’affichage. Je configure les propriétés de base de l’activité dans cette section. Pour associer le classement Cape Cod à la nouvelle activité, je sélectionne le classement dans Xcode et choisis l’activité Cape Cod dans ce menu déroulant.
Le classement doit également avoir les propriétés appropriées, que je peux définir dans cette section.
Les métadonnées de l’activité sont maintenant configurées et prêtes. Il ne manque plus qu’un élément : un gestionnaire du jeu qui enverra directement le joueur au niveau Cape Cod. Dans le code du jeu, je peux implémenter la fonction player à partir de GKLocalPlayerListener. L’instance d’activité transmise a une définition avec un identifiant que j’ai configuré dans Xcode. Après avoir trouvé le bon identifiant, j’examine la valeur des propriétés, et maintenant mon joueur peut démarrer au bon niveau.
Avec les activités, vous pouvez aussi utiliser la fonction setScore pour soumettre des scores. Après avoir appelé activity.start(), chaque soumission de score est mise en mémoire tampon. À activity.end(), Game Center soumet juste le dernier score du joueur une seule fois. Cela est particulièrement utile pour les défis. Ainsi, aucun risque de soumettre accidentellement un score plusieurs fois. Les liens profonds depuis les fonctionnalités Game Center aident les joueurs à accéder directement où ils le souhaitent dans le jeu. Grâce aux activités multijoueurs, ils peuvent désormais se retrouver entre amis pour jouer. Dans le cas des activités multijoueurs, une activité sera associée à un code de groupe, que l’on peut intégrer au système multijoueurs en temps réel existant.
Lorsqu’un joueur lance une nouvelle activité multijoueurs, Game Center génère automatiquement un code de groupe. Le joueur peut alors partager facilement cette activité avec ses amis via iMessage. L’activité et le code de groupe s’affichent sous forme de page web sur tous les appareils qui ne disposent pas de l’app Games. Cette page web fournit une balise OpenGraph afin de garantir un affichage optimal lors du partage. Quelle que soit la méthode de partage de l’activité, Game Center indique au jeu le code de groupe utilisé par chacun pour rejoindre la partie. Vous pouvez ensuite connecter tous les joueurs ayant le même code de groupe dans le système multijoueurs.
Vous devez configurer les métadonnées de l’activité comme précédemment. Il n’y a qu’une seule différence : vous devez cocher l’option « Supports Party Code ». Tout ce qui concerne le gestionnaire de jeu est identique. Vous pouvez accéder au code de groupe depuis l’instance d’activité. Les activités multijoueurs fonctionnent avec la solution de mise en relation du Game Center. Demandez à Game Center de trouver une correspondance pour cette activité avec la fonction findMatch() de l’instance d’activité.
Lorsque vous créez une activité, vous devez garder à l’esprit certains points. Pour mieux utiliser les liens profonds, évitez les écrans d’introduction ou de sélection du jeu. Dirigez plutôt le joueur directement vers le point de départ. Si l’endroit vers lequel vous renvoyez requiert un paiement ou une progression, affichez un message dans le jeu pour indiquer au joueur ce qu’il doit faire pour commencer à jouer. Affichez clairement le code de groupe actuel dans le jeu. Cela permet au joueur de s’assurer qu’il se trouve au bon endroit. Le joueur devrait aussi avoir la possibilité de saisir manuellement le code de groupe dans le jeu. Cela est utile si le code de groupe a été reçu sur un autre appareil ou une autre plate-forme. Maintenant que j’ai implémenté toutes ces fonctionnalités dans The Coast, je vais tester et vérifier que tout fonctionne. Je vais redonner la parole à Josh pour cela. Merci Varokas. Les activités et les défis seraient un excellent ajout à notre jeu, mais j’aimerais d’abord tester le classement que je viens d’ajouter. Pour rappel, mon classement enregistre le nombre de navires menés en lieu sûr. Je peux utiliser le nouveau Game Progress Manager pour vérifier que la logique de rapport des scores du jeu fonctionne pour ce classement. Pour tester mon nouveau classement, je dois modifier le schéma de mon jeu et activer le mode de débogage de la configuration GameKit. Cela se trouve dans les options d’exécution de l’éditeur de schéma.
Une fois cela fait, je lance mon jeu depuis Xcode et j’ouvre Game Progress Manager depuis le menu Debug.
Je sélectionne l’appareil et le jeu à tester. Je choisis mon iPhone et The Coast.
Toutes les réalisations et tous les classements de mon bundle .gamekit apparaissent ici, je sélectionne le classement que je viens de créer. À partir de là, je peux soumettre n’importe quel score en cliquant sur « plus score ». Je peux soumettre un score pour n’importe quel joueur, mais je soumets 42 points pour moi-même.
Une bannière apparaît dans mon jeu pour confirmer que le score a bien été reçu. Cela est très utile lorsque le jeu est en mode débogage. Maintenant, si j’ouvre le classement Cape Cod, je vois le score test que j’ai soumis. Ce que je souhaite vraiment vérifier, c’est si mon jeu rapporte correctement les scores. Je vais effacer le classement pour l’instant en cliquant sur Clear, confirmer que c’est ce que je souhaite faire, puis je vais jouer à mon jeu et obtenir un score. Dans « The Coast », je guide autant de navires que possible en lieu sûr.
Je me suis encore fait avoir par le homard ! Je vois à nouveau la bannière de débogage, et le classement du jeu affiche le score que je viens d’obtenir, c’est bon signe. Le score apparaît aussi dans Xcode, ce qui confirme que la logique du jeu est correcte. Ces scores sont uniquement enregistrés dans cette session de débogage et ne sont pas envoyés au serveur. Je souhaite maintenant tester l’activité GameActivity que Varokas a créée. Comme elle est associée au classement Cape Cod, je vois son lien profond ici, dans Game Progress Manager. Varokas a configuré le gestionnaire de liens pour démarrer le niveau Cape Cod lorsque l’on clique sur ce lien. Je clique sur le lien dans Xcode, ce qui a le même effet que lorsque l’on clique dessus sur l’appareil.
Je constate que Cape Cod redémarre, ce qui signifie que le code de gestion des liens fonctionne. Maintenant que je suis certain que tout fonctionne, je suis prêt à publier mon bundle .gamekit sur App Store Connect. Je suis de retour dans mon projet Xcode avec le bundle .gamekit sélectionné comme avant. Je clique sur les points de suspension, mais cette fois je choisis « Push to App Store Connect ».
Je sélectionne The Coast, puis je clique sur « Push ».
Une fois cela fait, je vois tout ce que j’avais dans mon bundle .gamekit sur le site web App Store Connect. Vous remarquez que tout indique « Not Live ». C’est un concept clé du cycle de vie Game Center, et il est important de comprendre pourquoi les éléments commencent dans cet état. Examinons tout le processus, de la création à la publication, afin de comprendre d’où vient l’état « Not Live ». Ce diagramme illustre le cycle de vie des classements, défis, activités et réalisations de votre jeu, de leur création à leur publication. Il se divise en trois sections : Xcode pour le développement et la configuration du Game Center, Test Flight pour les tests bêta et App Store Connect pour la publication. Tout d’abord, vous devez créer votre jeu. Vous écrivez le code et ajoutez des fonctionnalités Game Center avec un bundle .gamekit. Ensuite, vous testez tout ce que vous avez créé à l’aide du Game Progress Manager. Lorsque vous êtes satisfait de vos tests, vous publiez votre jeu sur TestFlight afin que vos bêta-testeurs puissent l’essayer. Une fois que vous estimez que tout fonctionne, soumettez votre jeu à Apple pour examen. Incluez toutes les ressources Game Center « Not Live » que vous souhaitez utiliser dans votre soumission. Une fois qu’Apple a examiné et approuvé le contenu et que vous décidez de lancer le jeu, vos ressources Game Center sont activées et le jeu est publié sur l’App Store. Félicitations ! C’est un moment passionnant pour votre jeu ! Vous devriez ajouter un bundle .gamekit à votre jeu dans Xcode. Que vous soyez un utilisateur expérimenté de Game Center ou un débutant, cela facilitera le développement de votre jeu. Ensuite, ajoutez le code pour initialiser GameKit. En faisant cela, vous rendez votre jeu plus visible dans tout le système d’exploitation. Les activités et les défis sont des fonctionnalités inédites, et vous verrez qu’elles en valent la peine. N’hésitez pas à les tester. Pour vous assurer que vos jeux s’affichent correctement dans l’app Games, regardez la vidéo « Engage players with the Apple Games app ». Pour les développeurs Unity, la vidéo sur l’intégration des frameworks Apple dans vos projets Unity est à ne pas manquer. Nous avons hâte de découvrir les jeux fun que vous allez créer. Merci de nous avoir suivis.
-
-
4:17 - Initialize GameKit
GKLocalPlayer.local.authenticateHandler = { _, error in print("\(GKLocalPlayer.local.alias) is ready to play!") }
-
4:29 - Initialize GameKit (Unity)
var player = await GKLocalPlayer.Authenticate(); Debug.Log($"{player.alias} is ready to play!");
-
13:07 - Submit score to challenge
// Submit score GKLeaderboard.submitScore(points, context: 0, player: GKLocalPlayer.local, leaderboardIDs: ["thecoast.lb.capecod"])
-
20:24 - Activity properties
// Activity properties extension AppDelegate: GKLocalPlayerListener { func player(_ player: GKPlayer, wantsToPlay activity: GKGameActivity) async -> Bool { let activityId = activity.activityDefinition.identifier if activityId == "thecoast.activity" { let level = activity.properties["level"] if level == "capecod" { startCapeCod(activity) } } return true } }
-
20:48 - Managing score submission with activity
// Managing score submission with activity class GameplayManager { let activity: GKGameActivity let leaderboard: GKLeaderboard init(activity: GKGameActivity, leaderboard: GKLeaderboard) { self.activity = activity self.leaderboard = leaderboard activity.start() } func setScore(_ newScore: Int) { activity.setScore(on: leaderboard, to: newScore) } deinit { activity.end() } }
-
22:35 - Access the Party Code
extension AppDelegate: GKLocalPlayerListener { func player(_ player: GKPlayer, wantsToPlay activity: GKGameActivity) async -> Bool { let activityId = activity.activityDefinition.identifier if activityId == "thecoast.multiplayer" { startMultiplayer(partyCode: activity.partyCode) } return true } }
-
22:48 - Game Center Matchmaking
let match = try await activity.findMatch()
-
-
- 0:00 - Introduction
Game Center est le réseau social de jeu d’Apple. Il offre un ensemble de fonctionnalités, dont Réalisations, Classements, Défis et Activités, qui renforcent l’engagement des joueurs dans les jeux. Le simple fait d’activer Game Center augmente la visibilité de votre jeu dans tout l’écosystème Apple, y compris dans la nouvelle app Apple Games, qui sera préinstallée sur macOS, iPadOS et iOS cet automne. Game Center favorise également les interactions sociales grâce aux notifications push, ce qui encourage les compétitions amicales et permet aux joueurs de rester investis dans le jeu.
- 2:41 - Configuration du projet
Il est facile d’intégrer Game Center dans votre jeu. Il y a deux étapes : ajouter le droit Game Center à votre projet Xcode et ajouter deux lignes de code pour initialiser GameKit. Et voilà ! Vous pouvez éventuellement configurer des fonctionnalités supplémentaires de Game Center directement dans Xcode à l’aide des lots GameKit, une nouvelle fonctionnalité de Xcode 26 qui peut être synchronisée avec App Store Connect.
- 6:51 - Intégrer les fonctionnalités de Game Center
En prenant l’exemple d’un jeu intitulé The Coast, Josh vous explique avec précision comment utiliser un lot GameKit dans Xcode pour intégrer les fonctionnalités de Game Center. Il ajoute un nouveau classement pour le niveau Cape Cod, où les joueurs tapent sur des navires pour les guider vers la sécurité, et ainsi éviter les homards sournois qui mettent un terme au niveau. Les mêmes étapes s’appliquent également lorsque vous créez d’autres fonctionnalités de Game Center, comme Réalisations, Défis et Activités.
- 10:00 - Défis et activités
Game Center propose deux nouveautés cette année : Défis et Activités. Les Défis s’appuient sur les classements existants et permettent aux joueurs d’inviter des amis à s’affronter lors de matchs en temps réel et limités dans le temps. Les joueurs peuvent personnaliser les défis, en choisissant les participants, la durée et le nombre d’essais, ce qui personnalise chaque compétition. Les activités permettent de créer des liens profonds vers des zones spécifiques du jeu, comme le début d’un niveau ou un combat contre un boss. Vous pouvez associer les Activités à des classements, des défis et même des expériences multijoueurs en temps réel. Game Center prend désormais en charge les codes de groupe partageables, que les jeux peuvent utiliser pour connecter les joueurs dans le cadre d’expériences multijoueurs.
- 23:53 - Tester votre implémentation
Josh vous guide tout au long des étapes requises pour tester un classement et son lien profond d’activité associé dans Xcode.
- 26:44 - Publier dans l’App Store
Découvrez comment la création d’un lot GameKit et le test de votre implémentation avec le Game Progress Manager s’intègrent parfaitement au processus de publication de votre jeu sur l’App Store.
- 28:32 - Étapes suivantes
Ajoutez un lot GameKit à votre jeu dans Xcode pour simplifier le processus de développement de votre jeu. Ensuite, ajoutez le code d’initialisation de GameKit à votre jeu. Ces deux étapes vous permettront de rendre votre jeu plus visible dans tout le système d’exploitation. Essayez aussi les fonctionnalités, activités et défis récents de Game Center dans votre jeu. Si vous êtes un développeur Unity, consultez le plug-in GameKit sur GitHub.