Matchmaking
Ce SDK est un kit de démarrage optionnel pour les utilisateurs Unity, qui peut être étendu et personnalisé par la suite.
💡 Fonctionnalités
Exemples complets
Automatisation du ping
Tickets, groupes, équipes
Variables de match
Définitions de types (C#)
Tests de développement local
Multiplateforme
Facile à personnaliser
Nouvelle tentative automatique
✔️ Préparation
🍀 Premiers pas
Ce guide suppose une connaissance de base de Matchmaking concepts et d’un Matchmaker en cours d’exécution.
Nous vous recommandons vivement d’importer notre exemple simple pour suivre le code au fil de la lecture de ce document. Vous pouvez le faire dans Unity Package Manager > Edgegap SDK > Samples .
Aperçu
Ce package comprend :
Fichiers d’exécution - seront compilés et intégrés à vos builds client et serveur :
Utilitaires spécifiques au service :
Matchmaking - une intégration client complète à réutiliser/étendre.
Fonctions API - définitions de points de terminaison, gestion des erreurs et automatisations de journalisation.
Spécifique au service DTO - conteneurs de données typés pour l’API de matchmaking.
Utilitaires partagés - journalisation, HTTP, ping, observables, etc...
Partagés DTO - utilisés par plusieurs services Edgegap pour faire circuler des données.
Fichiers d’exemple - intégrés et compilés UNIQUEMENT s’ils sont importés dans votre projet :
Matchmaking - des gestionnaires d’exemple pour un configuration minimale.
Matchmaking - explorez l’intégration UI avec sélection manuelle de région.
Client Group
L’automatisation du ping, la gestion des tickets et la récupération de l’hôte sont effectuées par le client Group.
Une fois instancié, le MonoBehaviour parent (gestionnaire) doit initialiser le client et fournir :
onMonitorUpdatecallback - observer les changements d’état du service,onAssignmentUpdatecallback - observer et réagir aux changements d’attribution d’hôte.
Une fois initialisé, ce client fournira automatiquement des validations et connectera les observateurs de journalisation, en terminant par un simple appel au point de terminaison de l’API de monitoring pour indiquer l’état du service.
Le gestionnaire du client est censé prendre le contrôle et appeler les fonctions du client à partir de ce point :
Balisespour récupérer une liste des Balises Ping,MeasureBeaconsRoundTripTimepour fournir des mesures de ping pour un ensemble donné de balises,CreateGrouppour que le leader du salon crée un groupe rejoignable, auquel des amis peuvent être invités,JoinGrouppour rejoindre un groupe existant en utilisant l’ID du groupe envoyé via un salon/backend tiers,SetReadypour marquer le propriétaire du groupe et les membres comme prêts et commencer la recherche de matchs,ResumeMatchmakingcharger un groupe mis en cache et poursuivre la recherche en cas de plantage du client,StopMatchmakingpour supprimer le ticket (s’il n’a pas trouvé de match) et quitter la file d’attente,Statutpour vérifier l’état du service Server Browser.
Lorsqu’une nouvelle connexion de joueur est établie, le joueur est censé envoyer son ID de ticket au serveur de jeu à l’aide de votre netcode, afin de corréler les connexions avec Vue approfondie.
Enregistrez les détails de connexion dans le client ou le backend du jeu pour vous reconnecter en cas de plantage inattendu.
🧪 Exemples
Commencez avec des exemples incluant une intégration complète et fonctionnelle pour le serveur et le client.
Exemple simple
Inclut une implémentation complète du cycle de vie du joueur avec mesure du ping, gestion des tickets et récupération de l’attribution de l’hôte. Montre comment lire les variables de match injectées côté serveur.
Modifiez les attributs de matchmaking pour étendre facilement cet exemple afin qu’il s’adapte à toute configuration.
Sélecteur de région
Certains joueurs (ou groupes) ont des conditions locales particulières (telles que FAI blocage, blocage à l’échelle du pays, ou autre) et peuvent préférer choisir une région manuellement plutôt que sur la base du ping seul.
Examinez notre exemple de sélecteur de région et inspirez-vous-en pour votre implémentation d’interface de matchmaking.
⚙️ Personnalisation
Ce SDK est conçu pour être étendu et modifié, bien que certaines modifications puissent être risquées :
✅ Gestionnaire - connecter en toute sécurité les observateurs de l’interface et effectuer de légers ajouts ou modifications,
⚠️ Agent - modifiez la gestion du cycle de vie du joueur à vos risques et périls,
⚠️ API - écrivez votre propre intégration à partir de zéro, en utilisant des utilitaires sélectionnés.
Les gestionnaires peuvent observer tous les événements émis par les agents Serveur et Client comme décrit ci-dessous.
Assurez-vous de vous familiariser avec le matchmaking approfondi concepts avant d’effectuer des personnalisations.
Observer les événements
Le client Group émet des événements (actions) que le gestionnaire parent peut observer et consommer.
Aperçu des événements émis par l’objet observable Moniteur :
🟢 Mise à jour
sain
Tous les systèmes sont opérationnels.
🟢 Mise à jour
en mauvais état
Problème inattendu.
🔴 Erreur
échec de récupération du moniteur
Mauvaise configuration ou problème inattendu.
🔴 Erreur
échec de récupération des balises
Problème inattendu.
Aperçu des événements émis par l’objet observable Groupe:
🟢 Mise à jour
créé
Groupe créé avec succès.
🔴 Erreur
échec de création du groupe
Échec de la création du groupe.
🟢 Mise à jour
rejoint
Groupe rejoint avec succès.
🔴 Erreur
échec de la jonction au groupe
Échec de la jonction au groupe.
🟢 Mise à jour
repris
Groupe repris avec succès.
🔴 Erreur
groupe introuvable
Pas membre du groupe, ou groupe expiré.
🔴 Erreur
conflit, abandonner et redémarrer
Veuillez abandonner le groupe actuel avant d’essayer de créer/rejoindre un nouveau groupe.
🟢 Mise à jour
membre mis à jour [{ready}]
Le membre a été mis à jour avec la nouvelle valeur Ready.
🔴 Erreur
échec de la mise à jour du membre
Échec de la mise à jour du membre du groupe.
🔵 Notification
interrogation [{consecutive}/{maximum}]
Le client a lancé l’interrogation du statut du groupe.
🔵 Notification
interrogation arrêtée
Le client a arrêté l’interrogation du statut du ticket.
🔴 Erreur
échec de l’interrogation, nombre maximal de tentatives atteint
Le client a épuisé le nombre maximal de tentatives consécutives d’interrogation. Vérifiez l’état du service.
🔴 Erreur
échec de l’interrogation
Le client a reçu une erreur non réessayable lors de l’interrogation. Vérifiez l’état du service.
🟢 Mise à jour
groupe mis à jour [{status}]
Changement de statut du groupe détecté pendant l’interrogation.
🟢 Mise à jour
abandonné
Ticket supprimé avec succès.
🟢 Mise à jour
échec de l’abandon (introuvable)
Le client n’a pas pu trouver le ticket à supprimer, il a peut-être expiré.
🟡 Avertissement
échec de l’abandon (déjà apparié)
Le client n’a pas pu supprimer un groupe apparié. Désactivez l’abandon ou Vue approfondie pour remplacer le joueur.
🔴 Erreur
échec de l’abandon
Échec de la suppression du groupe ou de l’adhésion.
🟢 Mise à jour
supprimé
Le groupe a expiré, la référence locale a été supprimée.
Mis à jour
Ce contenu vous a-t-il été utile ?

