For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

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 :

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 :

  • onMonitorUpdate callback - observer les changements d’état du service,

  • onAssignmentUpdate callback - 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 :

  • Balises pour récupérer une liste des Balises Ping,

  • MeasureBeaconsRoundTripTime pour fournir des mesures de ping pour un ensemble donné de balises,

  • CreateGroup pour que le leader du salon crée un groupe rejoignable, auquel des amis peuvent être invités,

  • JoinGroup pour rejoindre un groupe existant en utilisant l’ID du groupe envoyé via un salon/backend tiers,

  • SetReady pour marquer le propriétaire du groupe et les membres comme prêts et commencer la recherche de matchs,

  • ResumeMatchmaking charger un groupe mis en cache et poursuivre la recherche en cas de plantage du client,

  • StopMatchmaking pour supprimer le ticket (s’il n’a pas trouvé de match) et quitter la file d’attente,

  • Statut pour 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.

🧪 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.

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 :

Type d’action
Message de l’événement
Description

🟢 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:

Type d’action
Message de l’événement
Description

🟢 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 ?