Appariement
Ce SDK est un kit de démarrage optionnel pour les utilisateurs de Unity, pouvant être étendu et personnalisé ultérieurement.
💡 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 automatisée
✔️ Préparation
Le SDK Unity contient des utilitaires d’intégration optionnels pour les déploiements, le matchmaking et le navigateur de serveurs. Ce plugin prend officiellement en charge les versions de Unity 2021.3.0f1 et ultérieures.
Ce plugin est fourni 100 % gratuitement, conformément aux Conditions générales de l’offre gratuite.
Exigences
Installez un client Git (par exemple git-scm)
Un client Git est nécessaire pour permettre à Unity de télécharger et d’installer automatiquement notre package Unity. Vous n’aurez pas besoin d’utiliser git directement une fois qu’il sera installé.
Installation
Ouvrez votre projet Unity,
Sélectionnez
Fenêtre > Gestion des packages > Gestionnaire de packages,Cliquez sur l’ ➕ icône et sélectionnez
Ajouter un package à partir d’une URL Git...,Saisissez l’URL de notre SDK lorsque vous y êtes invité :
Cliquez sur
Ajouteret attendez que l’installation soit terminée.
Importer les exemples
Ce package inclut plusieurs exemples, destinés à être utilisés individuellement (ne combinez pas les exemples).
Sources vérifiées
Il s’agit du seul canal de distribution officiel pour ce SDK, ne faites pas confiance aux sources non vérifiées !
Mettre à jour le package
Accédez au SDK Edgegap dans Unity Package Manager et cliquez sur Mettre à jour .
Les exemples importés ne sont pas mis à jour automatiquement ! Sauvegardez toutes les valeurs de propriétés personnalisées, supprimez les scripts d’exemple actuellement utilisés dans votre scène, puis réimportez les exemples.
Certaines versions peuvent contenir des changements incompatibles. Cela sera indiqué par une nouvelle version MAJEURE.
Mise à jour vers v3
Cette mise à jour inclut de nombreux nouveaux Navigateur de serveurs utilitaires et exemples, améliore la gestion des erreurs de matchmaking, et plus encore. Voir Notes de version pour la liste complète.
La mise à jour v3 du SDK Unity inclut quelques changements incompatibles. Veuillez retester soigneusement votre intégration.
🍀 Démarrage
Ce guide suppose une connaissance de base de Appariement concepts et d'un Matchmaker en cours d'exécution.
Nous recommandons vivement d'importer notre Exemple simple pour suivre le code au fil de votre lecture de ce document. Vous pouvez le faire dans Unity Package Manager > Edgegap SDK > Samples .
Aperçu
Notre SDK utilise largement l’injection de dépendances et Observateur des modèles de programmation.
Ce package intègre à la fois Navigateur de serveurs et Appariement, qui peuvent être utilisés ensemble ou séparément. Vous pouvez librement réutiliser n’importe quels scripts pour vos propres forks et intégrations personnalisés.
Ce package comprend :
Fichiers d'exécution - seront compilés et intégrés à vos builds client et serveur :
Utilitaires spécifiques au service :
Appariement - une intégration client complète à réutiliser/étendre.
Fonctions API - définitions des points de terminaison, gestion des erreurs et automatisations de journalisation.
Spécifiques 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 transmettre des données.
Fichiers d'exemple - intégrés et compilés UNIQUEMENT s'ils sont importés dans votre projet :
Appariement - des gestionnaires d'exemple pour un configuration minimale.
Appariement - explorer l'intégration UI avec une sélection manuelle de région.
Client de groupe
L'automatisation du ping, la gestion des tickets et la récupération de l'hôte sont effectuées par le client de groupe.
Une fois instancié, le Monobehaviour parent (gestionnaire) de l'agent doit initialiser le client et fournir :
onMonitorUpdatecallback - observer les changements d'état de santé du service,onAssignmentUpdatecallback - observer et réagir aux changements d'affectation de l'hôte.
Une fois initialisé, ce client fournira automatiquement des validations et configurera les observateurs de journalisation, en se terminant par un seul appel au point de terminaison de l'API de surveillance pour indiquer l'état de santé du service.
Le gestionnaire du client est censé prendre le relais et appeler les fonctions du client à partir de ce point :
Balisespour récupérer une liste des Balises de ping,MeasureBeaconsRoundTripTimepour fournir des mesures de ping par rapport à un ensemble donné de balises,CreateGrouppour permettre au leader du salon de créer un groupe rejoignable, auquel des amis peuvent être invités,JoinGrouppour rejoindre un groupe existant à l'aide de l'ID du groupe envoyé via un salon/backend tiers,SetReadypour marquer le propriétaire du groupe et ses 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 été apparié) et quitter la file d'attente,Statutpour vérifier l'état de santé du service Server Browser.
Lorsqu'une nouvelle connexion joueur est établie, le joueur est censé envoyer son ID de ticket au serveur de jeu en utilisant votre netcode, afin de corréler les connexions avec Coup d'œil approfondi.
Enregistrez les détails de connexion dans le client ou le backend du jeu afin de vous reconnecter en cas de plantage inattendu.
🧪 Exemples
Commencez avec des exemples, y compris 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'affectation 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 convienne à toute configuration.
Sélecteur de région
Certains joueurs (ou groupes) ont des conditions localisées 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 qu'en se basant uniquement sur le ping.
Examinez notre exemple de sélecteur de région et inspirez-vous-en pour l'implémentation de votre interface de matchmaking.
Former un groupe
Rejoignez la file de matchmaking avec un groupe d'amis, en demandant à tous les joueurs de confirmer avant de lancer la recherche. Commencez avec une implémentation UI minimale, puis personnalisez-la selon la conception de votre jeu.
Explorez l'intégration UI avec le flux de formation de groupe et offrez la meilleure expérience sociale possible.
⚙️ 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'UI et effectuer de petites 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 à la carte.
Les gestionnaires peuvent observer tous les événements émis par les agents Server et Client, comme décrit ci-dessous.
Assurez-vous de vous familiariser avec Matchmaking en profondeur concepts avant d'apporter des personnalisations.
Si vous avez besoin d’aide, veuillez nous contacter sur Discord. Pour l’assistance aux jeux en direct, consultez notre système de tickets.
Observer les événements
Le client de groupe émet des événements (actions) que le gestionnaire parent peut observer et exploiter.
Lire les charges utiles des événements en accédant à .Current état de n’importe quel observable. 🔴 Erreur les événements contiennent le message d’erreur complet délimité par un caractère de nouvelle ligne après le message principal de l’événement.
Aperçu des événements émis par l'observable Surveillance :
🟢 Mise à jour
sain
Tous les systèmes sont OK.
🟢 Mise à jour
non sain
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'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, abandonnez et redémarrez
Veuillez abandonner le groupe actuel avant d'essayer d'en créer ou d'en rejoindre un nouveau.
🟢 Mise à jour
membre mis à jour [{ready}]
Membre mis à jour avec la nouvelle valeur Prêt.
🔴 Erreur
échec de la mise à jour du membre
Échec de la mise à jour du membre du groupe. Impossible de passer en non-prêt une fois que le groupe a commencé à rechercher un match.
🔵 Notification
interrogation [{consecutive}/{maximum}]
Le client a lancé l'interrogation de l'état du groupe.
🔵 Notification
interrogation arrêtée
Le client a arrêté l'interrogation de l'état du ticket.
🔴 Erreur
échec de l'interrogation, nombre maximal de tentatives atteint
Le client a épuisé le nombre maximal de tentatives d'interrogation consécutives. 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 d'état 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 Coup d'œil approfondi 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 ?

