Déploiements
En savoir plus sur les déploiements et leur cycle de vie - concepts et bonnes pratiques pour une compréhension approfondie.
🗺️ Orchestration
Démarrez de nouveaux serveurs en quelques secondes pour répondre aux demandes de capacité grâce à notre approche cloud native d'edge computing. Nous traitons les serveurs comme du bétail plutôt que des animaux de compagnie - en remplaçant entièrement les instances défaillantes plutôt qu'en les soignant manuellement.
Votre choix d'orchestration impactera vos coûts DevOps, vos coûts de serveur et votre évolutivité.
Contactez-nous sur Discord pour en savoir plus sur les options d'orchestration hybrides et l'optimisation du coût d'hébergement.
Pour comprendre pleinement tous les avantages et inconvénients, comparons les différentes méthodes d'orchestration.
Lié au match
Standard d'or pour les studios modernes offrant la intégration la plus simple avec la meilleure efficacité de coût.
👍 Avantages
Meilleure efficacité de coût - montée en charge en temps réel pour répondre à la demande des joueurs minute par minute.
Coût DevOps le plus bas grâce à l'hébergement sans région ; Edgegap automatise 99 % des tâches.
Ping le plus bas grâce à plus de 615 sites dans l'infrastructure cloud publique d'Edgegap.
Montée en puissance la plus rapide (capacité de rafale) en cas de pic de trafic inattendu.
Plus haut niveau de sécurité et de prévention de la triche des joueurs (autorité serveur).
Impact minimal d'un crash de serveur inattendu sur les joueurs, n'affectant qu'un seul match.
👎 Inconvénients
Adopter un nouveau modèle mental d'orchestration nécessite un certain effort d'apprentissage initial.
Les serveurs fonctionnant plus de 24 heures seront automatiquement terminés.
🧩 Le mieux adapté pour
Jeux sensibles à la latence - lorsque l'optimisation du netcode ne peut pas compenser un ping élevé :
Tireurs à la première personne, jeux de combat, VR & XR (réalité virtuelle et étendue), …
Jeux avec une limite supérieure de la durée des matches par conception,
Battle Royale, PvPvE, Coop Shooters, MOBA, jeux de sport, ARPGs & Dungeon Crawlers, …
🔎 Découvrabilité
Démarrez de nouvelles parties lorsque suffisamment de joueurs se joignent Matchmaking.
Ajoutez des joueurs pour remplacer les joueurs partis dans des matches existants avec du backfill.
Laissez les joueurs parcourir les serveurs et choisir dans une liste avec Navigateur de serveurs.
Edgegap met automatiquement à l'échelle les plus de 615 emplacements de serveurs en hausse/baissé en fonction de l'activité des joueurs dans chaque région. Préparez-vous au succès - montez sans effort jusqu'à 14 millions d'utilisateurs simultanés en 60 minutes.
Veille régionale
Modèle traditionnel pour mondes persistants avec contenu généré par les utilisateurs et jeux MMO sociaux.
👍 Avantages
Approche familière et facile à comprendre, vieille école pour les vétérans aguerris.
Plus haut niveau de sécurité et de prévention de la triche des joueurs (autorité serveur).
Coût prédictible facilement basé sur un engagement mensuel.
👎 Inconvénients
Coût d'hébergement plus élevé - chaque région nécessite un ou plusieurs serveurs de veille inactifs (capacité de rafale).
Coût DevOps plus élevé - mise à l'échelle, opérations et maintenance dupliquées par région.
Les régions avec une base de joueurs plus petite subissent un ping élevé en raison de la connexion à des serveurs éloignés.
🧩 Le mieux adapté pour
Mondes persistants avec contenu généré par les utilisateurs stocké sur le serveur même lorsque les joueurs sont hors ligne.
MMO, sandboxes avec construction de bases ou placement d'objets, extraction shooters, ...
jeux tolérants à la latence - lorsque la physique en temps réel avec autorité serveur n'est pas requise:
jeux mobiles, jeux coopératifs, TCGs/CCGs, stratégies au tour par tour, …
Multijoueur asynchrone, où les crashs de serveur ont un impact minimal sur l'expérience du joueur :
course contre des fantômes, pillage de base ennemie, jeux de construction/agriculture basés sur un minuteur, …
applications avec un processus d'initialisation lourd - lorsque la préparation des serveurs prend des minutes.
🔎 Découvrabilité
Laissez les joueurs parcourir les serveurs et choisir dans une liste avec Navigateur de serveurs.
Voir Clusters gérés pour auto-héberger vos microservices et services backend sur Edgegap.
Pair à Pair
Déplacez les efforts de développement de serveurs dédiés vers un netcode relais pour les jeux non compétitifs.
Sujets liés : serveurs d'écoute, autorité hôte-joueur, traversée NAT (NAT punch-through).
👍 Avantages
Coût d'hébergement le plus bas, ne nécessitant que des serveurs Relay pour résoudre la traversée NAT.
Coût DevOps le plus bas - maintenance requise uniquement pour les builds clients et les canaux de distribution.
Impact minimal d'un crash de serveur inattendu sur les joueurs, n'affectant qu'un seul match.
Facile à implémenter et rapide pour prototyper, sans développement backend requis.
👎 Inconvénients
Effort de développement de netcode pair-à-pair accru nécessitant des compétences en programmation concurrente.
Pires temps de ping et plus sensible aux conditions réseau défavorables (p.ex. internet mobile).
Sécurité la plus faible, vulnérable aux attaques de type homme du milieu et au détournement de session.
Risque de perte de sessions lorsque l'hôte part à moins d'implémenter une migration d'hôte personnalisée.
🧩 Le mieux adapté pour
Jeux coopératifs et occasionnels - lorsque la triche ne gâche pas le plaisir ou ne casse pas le jeu,
Jeux pour enfants, jeux d'exploration, aventures, …
🔎 Découvrabilité
Consultez notre Relais distribués pour le service permettant le pair-à-pair avec une latence et une sécurité de premier ordre.
📍 Placement des serveurs
Quel que soit le mode d'orchestration choisi, choisir le bon emplacement de serveur pour un groupe de joueurs est crucial pour garantir le meilleur ping possible et une expérience joueur optimale. Découvrez différentes stratégies de placement de serveurs et comment elles impactent vos joueurs.
Votre stratégie de placement de serveurs impactera l'expérience de vos joueurs, la rétention et les critiques de votre jeu.
Edgegap déploie à l'emplacement le plus approprié avec la capacité disponible, pour des matchs rapides et à faible latence.

Voir Déploiements vers analyser le placement des serveurs en temps réel, à grande échelle.
Score du serveur
La stratégie de score du serveur utilise la méthodologie brevetée d'Edgegap, qui optimise le placement des serveurs pour chaque match individuellement. Effectue une télémétrie non intrusive pour approximer la proximité réseau de chaque joueur par rapport à nos emplacements de serveurs et choisir le serveur qui offre le meilleur :
réactivité - fournit le ping le plus bas pour tous les joueurs en moyenne,
équité - fournit un ping équilibré et équitable pour tous les joueurs.
Notre Matchmaker utilise la stratégie Server Score par défaut, pour garantir la meilleure expérience possible. Pour utiliser cette stratégie avec les API de déploiement, fournissez les IP publiques des joueurs ou les coordonnées géographiques dans votre requête de déploiement.
Placement non réactif - le serveur est éloigné, ping élevé pour tous les joueurs :

Placement injuste - ping inégal, un joueur est désavantagé :

Exemple de bon placement - ping réactif et équitable pour tous les joueurs :

Cette stratégie est particulièrement efficace pour héberger un groupe de joueurs éloignés les uns des autres (Amérique du Nord vs. Europe, ou côte Ouest vs. côte Est), cas fréquent avec des lobbies préconfigurés.
Géolocalisation
Alternativement, fournissez les coordonnées de latitude & longitude des joueurs ou les coordonnées d'un emplacement de serveur préféré plutôt que d'exploiter la télémétrie automatisée. Cette approche nécessite une implémentation supplémentaire de recherche géographique côté client, reposant entièrement sur la solution du développeur du jeu.
La stratégie de géolocalisation n'est pas recommandée pour Déploiements l'orchestration, sauf pour les applications ayant des exigences réglementaires strictes pour les transferts de données interrégionaux, ou lorsque l'IP du joueur n'est pas disponible.
Pour utiliser cette stratégie avec les API de déploiement, listez les IP publiques des joueurs ou leurs coordonnées géographiques dans votre requête de déploiement.
Verrouillage de région
Les serveurs peuvent être placés en utilisant un paramètre de région grossièrement généralisé, soit :
choisi automatiquement pour le joueur, basé sur ses métadonnées (base de données de compte joueur), ou
sélectionné par le joueur lors du matchmaking, permettant un placement avec une latence client-serveur élevée.
L'utilisation de cette stratégie seule n'est pas recommandée car elle peut entraîner de mauvaises performances réseau.
L'utilisation de la sélection de région comme pré-filtre en combinaison avec une autre stratégie est une meilleure alternative.
🟢 Qualité de connexion
Certains jeux (et certains joueurs) sont plus sensibles à la latence ou au lag que d'autres. Bien que les rapports des joueurs soient un excellent indicateur d'incidents ou de régressions à grande échelle, les joueurs peuvent manquer d'une compréhension approfondie des concepts réseau et sont prompts à attribuer la faute aux studios, au netcode ou aux serveurs.
La cause première de certains problèmes peut être cachée aux joueurs, donc la coopération entre le studio et le fournisseur d'hébergement peut être cruciale. La priorité d'Edgegap est toujours de fournir le meilleur service possible.
Si vous recevez de nombreux rapports de joueurs, rencontrez des pannes généralisées ou des problèmes répétés, veuillez nous contacter immédiatement via un ticket de support sur notre plateforme.
Faible latence
La latence du joueur est une combinaison de la latence due au transfert de données entre :
appareils physiques - le signal physique se déplaçant à travers la topologie du réseau Internet,
hôte à hôte - résultant des protocoles, du transport et des mesures de sécurité,
processus à processus - résultant du (dé)packaging et du traitement des données côté client/serveur.
Edgegap réduit la latence physique en plaçant les serveurs plus près de vos joueurs pour des réponses plus courtes et un nombre réduit de sauts réseau. Avec des emplacements chez 17 fournisseurs cloud et bare metal, vous obtenez un ping de premier ordre pour les joueurs partout dans le monde.
La couverture serveur et Internet au niveau mondial (pas seulement avec Edgegap) est limitée en raison de facteurs tels que :
disponibilité de l'infrastructure - la qualité de la connexion Internet dans une région donnée peut ne pas être suffisante,
facteurs naturels - des racks de serveurs très complexes nécessitent un environnement principalement stable.
Haute disponibilité
La disponibilité des serveurs dans divers emplacements à travers le monde varie au fil du temps, changeant plusieurs fois au cours de la journée. Edgegap met automatiquement à l'échelle vers le haut/le bas les emplacements à la demande, en tenant compte de :
trafic en rafale - déploiements effectués sur une période de 15 minutes,
exigences vCPU - plus de vCPU par déploiement augmente la demande globale pour un emplacement spécifique,
offre du fournisseur - certains emplacements distants ont moins d'options de fournisseurs disponibles,
disponibilité des machines - certains emplacements peuvent n'offrir que des machines 4 vCPU ou 8 vCPU,
demandes du studio pour les tests, l'assurance qualité, l'accès anticipé, les bêtas fermées ou les tournois.
Toutes les requêtes de déploiement des applications sont combinées pour évaluer la demande par emplacement. Toutes les organisations ont une priorité d'allocation égale par défaut, avec la possibilité d'ajouter des pools de serveurs privés pour les clients entreprise nécessitant du matériel ou des emplacements spécifiques.
Veuillez nous contacter pour planifier une sortie, ou si vous avez des demandes concernant la disponibilité des emplacements.
Résolution des problèmes des joueurs
Les problèmes des joueurs peuvent être causés par des bugs serveur ou des incidents chez le fournisseur, mais peuvent aussi provenir de tiers tels que les FAI locaux, les services de jeu, des bugs dans des bibliothèques bas niveau, des fournisseurs d'infrastructure ou d'autres sources.
Lors du dépannage des rapports de joueurs ou des incidents, considérez les facteurs suivants :
qualité du matchmaking - les joueurs devraient être proches les uns des autres (même région) pour Déploiements donner les meilleurs résultats :
voir Matchmaking et Balises Ping pour nos recommandations,
voir Approfondissement pour apprendre comment trouver les logs de serveur liés aux rapports de joueurs,
problèmes régionaux :
les fournisseurs d'accès Internet locaux peuvent être en train de résoudre un incident momentanément,
certaines régions (p.ex. Chine, Russie) peuvent être restreintes en raison de sanctions localisées,
niveau de mise en cache - Edgegap priorisera les déploiements rapides dans les emplacements mis en cache :
temps maximal de déploiement - les déploiements peuvent échouer en raison d'un processus d'initialisation lent et lourd :
voir Applications et versions pour augmenter la période de timeout,
retardez les étapes d'initialisation jusqu'à ce que ce soit absolument nécessaire,
problèmes d'image serveur ou d'intégration.
Afficher les IDs de déploiement dans l'interface d'historique des matches du client pour tracer les rapports des joueurs lors du dépannage.
Informez les utilisateurs des bugs généralisés, des problèmes temporaires et des pannes pour atténuer le sentiment négatif.
🔄 Cycle de vie du déploiement
Les déploiements Edgegap traversent plusieurs étapes du cycle de vie, indiquées par le statut du déploiement.
1. Démarrer un déploiement
Un déploiement à des fins de test peut être démarré avec :
Unreal Engine - Extension Docker ou plugin pour projets Unreal Engine,
Unity - plugin pour projets Unity,
Interface Web du tableau de bord - interface web facile à utiliser pour tester l'intégration du serveur.
Un déploiement à des fins environnement de production en direct devrait être démarré avec :
Matchmaking - trouvez d'autres joueurs et démarrez des serveurs à la demande (Déploiements).
Navigateur de serveurs - préchauffez des serveurs avec une longue initialisation (Déploiements).
API de déploiement - intégration serveur-à-serveur personnalisée (mise à l'échelle personnalisée).
Enregistrer request_id (ID de déploiement) et taguer les déploiements pour identifier et dépanner les problèmes plus tard.
Lors des tests avec API de déploiement, vous pouvez remplacer le Dockerfile par défaut CMD avec une commande personnalisée.
2. Déploiement en cours
Une fois un déploiement démarré, notre système effectuera un certain nombre d'étapes en rapide succession :
Télémétrie - nous mesurons la réactivité réseau des centres de données disponibles vers chaque joueur,
Déploiement - nous réservons la capacité et préparons le démarrage de votre conteneur serveur,
Démarrage du conteneur - nous démarrons le conteneur, installons les dépendances et initialisons,
Post-traitement - nous ajoutons le stockage des logs, la surveillance et finalisons le déploiement.
Trop de requêtes 429 - pour assurer la stabilité et prévenir les factures surprises, nous limitons le débit de votre organisation à 40 req/s. Contactez-nous pour planifier les sorties, estimer le trafic de lancement et préparer le succès.
3. Déploiement prêt
Votre conteneur est entièrement initialisé et votre serveur démarre maintenant. Pendant quelques secondes à une minute, votre serveur peut encore s'initialiser et peut ne pas répondre aux requêtes des joueurs jusqu'à ce que votre moteur de jeu (ou runtime personnalisé) soit entièrement prêt à accepter les connexions des joueurs.
Une fois le déploiement prêt, réessayez la connexion du joueur jusqu'à réussite, ou jusqu'à l'expiration du timeout client prédéfini.
4. Erreur de déploiement
Votre déploiement peut se retrouver en état d'erreur à tout moment, pour des raisons inattendues. Cela est plus susceptible de se produire lors des tests de votre intégration ou des nouvelles builds serveur.
Vous n'êtes pas facturé pour les déploiements en erreur, qui sont automatiquement arrêtés après 24 heures.
Étapes de dépannage :
Vérifiez le statut du service Edgegap avec notre page de surveillance de disponibilité.
Essayez de tester votre conteneur serveur localement avec Docker Desktop pour éliminer un problème côté Edgegap.
Lors d'une demande d'aide, incluez votre ID de déploiement et tous les détails utiles pour que nous puissions enquêter rapidement !
5. Déploiement arrêté
Nous n'arrêtons jamais vos serveurs sans votre directive, afin d'éviter d'impacter négativement l'expérience de vos joueurs. Votre déploiement peut être arrêté pour les raisons suivantes :
Auto-arrêt via DELETE_URL - déploiement arrêté de lui-même après le départ des joueurs et la fin du match,
voir Unreal Engine et Unity guides pour arrêter correctement les déploiements,
Arrêter depuis votre backend - votre backend a arrêté ce déploiement en utilisant l'API Deployments,
Durée maximale du jeu - le temps alloué dans votre Applications et versions a expiré,
Flottes privées L'hôte exécutant votre déploiement a été supprimé via une action planifiée.
Une fois qu'un déploiement est arrêté, nous déclenchons une terminaison en douceur en envoyant SIGTERM signal à votre processus principal, permettant une courte période de terminaison. Une fois expirée, un SIGKILL signal est envoyé pour arrêter le déploiement.
👀 Observabilité
Permettez aux serveurs de jeu d'interopérer avec des tiers et d'obtenir des informations opérationnelles.
Découvrabilité
Une fois prêt, le déploiement se voit attribuer une URL (fqdn) et un port externe pour chaque port interne.
Utilisez les tags de déploiement pour marquer facilement vos déploiements et Déploiements.
Le trafic sortant (vers les clients ou le backend) depuis vos serveurs de jeu n'est jamais bloqué ou filtré.
Websockets (WS) et Websockets sécurisés (WSS)
Pour utiliser un netcode basé sur websocket avec Edgegap, vous avez deux options :
certificat géré, configuré en 1 minute sans écrire de code :
configurez votre Applications et versions vers utilisez Websocket (WS) et activez la mise à niveau TLS,
utilisez l'URL Edgegap pour connecter les clients (p.ex.
https://5fa53fa00a57.pr.edgegap.net/)
certificat auto-géré, si vous souhaitez utiliser votre propre domaine personnalisé :
configurez votre Applications et versions vers utilisez Secure Websocket (WSS),
configurez votre propre flux de certificat TLS avec un enregistrement DNS personnalisé (p.ex. sur Cloudflare).
Les exceptions serveur non gérées provoqueront le redémarrage du conteneur du déploiement et invalideront la sécurité TLS. Dans ce cas, arrêtez votre serveur et remettez les joueurs dans un nouveau déploiement. L'état du serveur peut être perdu.
Variables injectées
Les serveurs de jeu ont souvent besoin d'informations supplémentaires, telles que l'IP du serveur, les valeurs des ports internes ou autres. L'injection de variables d'environnement en lecture seule est un moyen fiable et agnostique au cloud de transmettre des paramètres.
Obtenez les valeurs des variables en utilisant GetEnvironmentVariable en C# ou GetEnvironmentVariable en C++.
Voir Variables de version d'application et Variables du matchmaker en plus des variables de déploiement ci-dessous.
Variables personnalisées
Définissez jusqu'à 20 variables personnalisées pour chaque déploiement, chacune contenant jusqu'à 4 Ko de données de chaîne.
Évitez d'utiliser des noms réservés (ci-dessous), vos variables personnalisées seront écrasées sinon !
Accédez aux informations importantes en lisant les variables injectées dans vos serveurs par Edgegap :
Identifiants
ARBITRIUM_REQUEST_ID- p.ex.f68e011bfb01.ID de déploiement unique, également appelé ID de requête. Utilisé pour récupérer plus d'informations.
Les URL de déploiement ont toujours le format
{ARBITRIUM_REQUEST_ID}.pr.edgegap.net.
ARBITRIUM_PUBLIC_IP- p.ex.162.254.141.66.Adresse IP publique de cet hôte, peut être utilisée pour se connecter à la place de l'URL.
ARBITRIUM_HOST_ID- p.ex.alpha-north-america-70364ef8.Identifiant unique de la machine hébergeant votre déploiement, partagé avec d'autres déploiements.
ARBITRIUM_DEPLOYMENT_TAGS- p.ex.tag1,tag2.Tags de déploiement définis par l'utilisateur, délimités par des virgules, utiles pour une recherche et un filtrage faciles.
ARBITRIUM_PRIVATE_FLEET_ID- p.ex.PUBLIC_CLOUD, ou ID de flotte si hébergé sur Flottes privées.
Spécifications des ressources
ARBITRIUM_HOST_IN_PRIVATE_FLEET- p.ex.false, indiquant s'il est hébergé sur Flottes privées.ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY- p.ex.2000, fréquence du processeur en MHz.ARBITRIUM_DEPLOYMENT_VCPU_UNITS- p.ex.256, unités vCPU allouées (1024 = 1 vCPU).ARBITRIUM_DEPLOYMENT_MEMORY_MB- p.ex.512, RAM allouée en Mo (1024 = 1 Go).
Gestion du cycle de vie
ARBITRIUM_DELETE_URL- p.ex.https://api.edgegap.com/v1/self/stop/9f511e17/660.Appelable depuis le déploiement, le déploiement sera arrêté en douceur.
Nécessite un
ARBITRIUM_DELETE_TOKENunique à usage uniquedans l'en-têteAuthorization
ARBITRIUM_DELETE_TOKEN- p.ex.7df4cd933df87084b34ae80d8abde293.ARBITRIUM_CONTEXT_URL- p.ex.https://api.edgegap.com/v1/context/9170f5211e17/17.Appelable uniquement depuis le déploiement, renvoie plus de détails sur le déploiement.
Nécessite un
ARBITRIUM_CONTEXT_TOKENunique à usage uniquedans l'en-têteAuthorization
ARBITRIUM_CONTEXT_TOKEN- p.ex.dfaf50b9333b9ee07b22ed247e4a17e6.
Découvrabilité
ARBITRIUM_PORT_GAMEPORT_INTERNAL- p.ex.7777, port interne pour l'écoute du serveur.ARBITRIUM_PORT_GAMEPORT_EXTERNAL- p.ex.31504, port externe pour les connexions client.Les valeurs des ports externes sont randomisées pour chaque déploiement pour des raisons de sécurité.
ARBITRIUM_PORT_GAMEPORT_PROTOCOL- p.ex.UDP, protocole de votre transport netcode.
Les exemples supposent que vous avez nommé votre port gameport (par défaut). Chaque port ajoute un ensemble supplémentaire de Applications et versions variables assainies : @Super Port! ⇒ ARBITRIUM_PORT_SUPER_PORT_INTERNAL .
ARBITRIUM_BEACON_ENABLED- p.ex.true, si déployé sur Flottes privées avec Balises Ping.ARBITRIUM_HOST_BEACON_PUBLIC_IP- p.ex.139.177.198.69, IP publique du beacon le plus proche.ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNAL- p.ex.30199, pour la mesure du ping via UDP.ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNAL- p.ex.30456, pour la mesure du ping via TCP.
Informations structurées (JSON en tant que chaîne)
Les variables d'environnement sont stockées sous forme de JSON stringify, parsez-les en utilisant un SDK ou une méthode personnalisée.
Surveillance du tableau de bord
Notre Tableau de bord fournit des outils pour surveiller l'évolutivité de votre serveur et aider aux opérations.
Analytique
Trouver des tableaux de bord analytiques dans le menu latéral sous la catégorie Hébergement de serveurs & Orchestration.
🌟 Passer au niveau Pay as You Go pour débloquer des métriques et des informations détaillées sur les performances du serveur :
Informations générales : surveillez les versions avec le nombre de serveurs en direct par version + aperçu de l'utilisation des ressources,
Informations CPU : dépannez les serveurs lents dus à des opérations gourmandes en processeur,
Informations Mémoire : atténuez les redémarrages de serveur dus au dépassement de la mémoire allouée,
Informations Réseau : détectez les schémas réseau inefficaces et optimisez le netcode.

Carte de déploiement
Trouvez la carte de déploiement dans la page de détails de votre déploiement sur le Tableau de bord.
Aperçu de l'emplacement de déploiement, des emplacements disponibles et des emplacements estimés des joueurs sur la carte :

Points d'équilibre de déploiement
Trouvez la carte thermique des points d'équilibre de déploiement dans la page de détails de votre application sur le Tableau de bord.
Aperçu de la carte thermique des points d'équilibre de déploiement et filtrez par Applications et versions. Les points d'équilibre sont des emplacements approximatifs ayant une proximité réseau égale pour chaque joueur dans un déploiement donné :

Les points chauds d'équilibre dans des emplacements étranges (par ex. le Groenland) indiquent un matchmaking de joueurs éloignés les uns des autres. Découvrez Déploiements et Balises Ping pour optimiser votre matchmaking.
Journaux de déploiement
Trouvez les journaux de déploiement dans la page de détails de votre déploiement sur le Tableau de bord.
Les journaux de déploiement affichent des informations sur Déploiements:

Journaux de conteneur
Trouvez les journaux de conteneur dans la page de détails de votre déploiement sur le Tableau de bord.
Inspectez les journaux de votre serveur de jeu en cas de problèmes, ou lors du débogage :

Une fois le déploiement arrêté, les journaux de conteneur sont supprimés. Configurez le stockage de journaux S3 tiers pour sauvegarder les journaux.
Métriques de conteneur
Trouvez les métriques de conteneur dans la page de détails de votre déploiement sur le Tableau de bord.
Examinez les métriques de conteneur (processeur, mémoire, réseau) pour :
identifier les problèmes de connexion courants lorsque Déploiements,
détecter les modèles d'implémentation inefficaces provoquant des pics d'utilisation des ressources,
identifier l'utilisation inefficace des ressources dans des scénarios particuliers,
vérifier les changements dans l'utilisation des ressources de votre serveur lors de l'optimisation,
évaluer la consommation de ressources et la durée d'initialisation de votre serveur.
Les métriques historiques affichent des moyennes de valeur avec une période de 1 minute, disponibles dans le niveau Gratuit.
🌟 Passer au niveau Pay as You Go pour débloquer des métriques précises avec des intervalles de 1 seconde.

Contactez-nous avant votre sortie pour demander un support d'hébergement en direct pour des sorties à grande échelle.
Contexte & Statut
Des informations supplémentaires sur le déploiement peuvent être récupérées au format JSON :
depuis l'intérieur du déploiement (serveur de jeu), en utilisant API de Contexte de Déploiement,
depuis l'extérieur du déploiement (backend / tiers), en utilisant API de Statut de Déploiement.
L'API Context (depuis le déploiement) nécessite un jeton Context API, tandis que l'API Status utilise votre jeton Edgegap.
Trop de requêtes 429 - nous limitons le débit de votre organisation à 20 req/s pour les points de terminaison Context et Status API. Utilisez Variables injectées et Webhooks pour une solution évolutive.
Filtrer les déploiements
Pour rechercher rapidement parmi tous les déploiements, vous pouvez utiliser notre tableau de bord:

Lister les déploiements avec l'API et appliquer des filtres avec des intégrations backend :
unique à usage unique ou nin
[ "7e709a0d8efd", "4ba353100b4b" ]
unique à usage unique ou nin
[ "tagA", "tagB" ]
unique à usage unique ou nin
[ "my-app", "my-other-app" ]
unique à usage unique ou nin
[ "1.0.0", "prod" ]
Chaque attribut peut avoir au plus 1 opérateur de filtre dans une seule requête. Voir Référence API pour plus d'informations.
Triez les résultats par plusieurs champs dans l'ordre où ils apparaissent dans la requête :
asc ou desc
asc ou desc
Exemples de requêtes de filtre :
Lister Déploiements en erreur pour dépanner et supprimer.
URL encodée :
Requête JSON formatée :
Lister Déploiements avec version d'application obsolète pour confirmer qu'une sortie est terminée.
URL encodée :
Requête JSON formatée :
N'oubliez pas d'ajouter l'en-tête dans l'en-tête avec votre jeton API Edgegap dans la requête.
Webhooks & Postbacks
Recevez des notifications HTTP simples dans votre backend de jeu pour les changements de Déploiements en spécifiant une URL de webhook dans votre requête API de déploiement. Disponible pour :
On Ready : le conteneur de déploiement a démarré avec succès (le serveur commence ensuite à s'initialiser),
On Error : le déploiement n'a pas pu démarrer et une Déploiements s'est produite,
On Terminate : Déploiements et le serveur de jeu n'est plus accessible.
Les webhooks Ready et Error ne seront jamais déclenchés pour le même déploiement.
Les webhooks ne sont pas réessayés, donc si votre backend ne traite pas la requête en raison d'une limitation de débit ou d'une erreur, le webhook peut être perdu. Utilisez les webhooks uniquement pour des cas d'utilisation non critiques ou à des fins de débogage.
Les webhooks observent le cycle de vie du déploiement, mais ne connaissent pas l'état d'initialisation de votre scène/niveau. Pour observer la progression du chargement de votre scène/niveau, implémentez un webhook personnalisé dans votre serveur de jeu.
🚨 Dépannage
Lors du dépannage des déploiements :
vérifiez qu'il n'y a pas d'erreurs dans votre Déploiements et Déploiements,
exécutez votre serveur localement pour exclure les bugs d'intégration,
consultez les étapes de dépannage sur cette page,
contactez-nous sur Discord Communautaire et incluez votre ID de déploiement.
Voir Déploiements pour nos recommandations sur la manière de gérer les retours de la communauté de joueurs.
Impossible de connecter les clients au serveur - La requête a expiré., 请求超时 , Échec de connexion , ou La vérification du port a échoué.
Tout d'abord, assurez-vous que le déploiement est Ready, et qu'il n'y a pas d'exceptions d'exécution ou d'erreurs dans le journal de votre déploiement. Si votre déploiement s'est arrêté, inspectez les journaux dans notre Tableau de bord.
Si vous utilisez le netcode Mirror, vous devez avoir "Auto Start Server" sélectionné dans votre
NetworkManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez le netcode FishNet, vous devez activer « Start on Headless » dans votre
ServerManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez Photon Fusion 2 netcode, assurez-vous que votre serveur transmet l'IP publique du déploiement, le port externe et le
roomCodesur le serveur, et le même code de salle dans le client dans le paramètre « NeworkRunner.StartGame » paramètreStartGameArgs. L'ID de déploiement (par ex.b63e6003b19f) est un excellent choix car il est globalement unique et facilement accessible au client par Matchmaker assignation et au Approfondissement.Ensuite, veuillez vérifier que le paramètre de port dans les paramètres netcode de votre build serveur correspond au port interne dans votre Version de l'application. Vous pouvez modifier le mappage des ports en éditant le Version de l'application sans reconstruire. Trouvez votre protocole dans votre intégration netcode.
Veuillez vous assurer que votre client de jeu se connecte au port externe affiché sur la page de détails de votre déploiement, cette valeur sera toujours randomisée pour des raisons de sécurité.
Si vous utilisez le protocole Secure Websocket (WSS) dans votre intégration netcode, assurez-vous que votre Version de l'application configuration de port pour le port WSS a l'option TLS Upgrade activée.
Êtes-vous situé en Chine et utilisez-vous Smart Fleets ? Votre connexion peut être bloquée par le Grand Firewall. Envisagez d'ajouter un serveur situé en Chine à votre flotte, ou d'utiliser un VPN pour vous connecter.
Mon déploiement s'est arrêté/redémarré et je n'ai plus accès à ses journaux.
Dans le cas où le processus serveur plante en raison d'une exception, notre système tentera de redémarrer automatiquement le serveur. Envisagez de tester votre serveur localement pour découvrir la cause racine.
Nous ne conservons les journaux que pendant la durée du déploiement ; si vous souhaitez inspecter les journaux après l'arrêt du déploiement, veuillez intégrer un stockage de journaux tiers.
Voir Déploiements pour découvrir toutes les causes de l'arrêt de votre déploiement.
Mon déploiement s'est arrêté automatiquement après X minutes.
Les déploiements du niveau Gratuit ont une limite de 60 minutes, envisagez de passer à un compte supérieur.
Tous les déploiements seront terminés après 24 heures d'exécution conformément à notre politique de nettoyage des serveurs, pour la maintenance de l'infrastructure et pour éviter des coûts imprévus lorsque le déploiement n'a pas été arrêté correctement. Pour les serveurs longue durée, envisagez d'utiliser Flottes privées avec Persistance.
Voir Déploiements pour découvrir toutes les causes de l'arrêt de votre déploiement.
Mon déploiement est prêt mais je ne peux pas me connecter pendant plusieurs minutes après.
Une fois un déploiement Ready, l'initialisation de votre moteur de jeu commence. Ce processus peut prendre de quelques secondes à plusieurs minutes, et le serveur n'accepte pas les connexions des joueurs pendant cette période.
Envisagez d'optimiser l'initialisation de votre serveur pour réduire cette durée.
Les clients de jeu doivent retenter la connexion à des intervalles d'1 seconde pendant une durée limitée (en fonction de la durée d'initialisation), après quoi ils retournent au matchmaking.
Envisagez d'ajouter une scène de chargement afin que le serveur puisse effectuer l'initialisation (et le travel dans le cas d'Unreal Engine) en même temps que les clients, tout en synchronisant l'état des deux.
Mon appareil Meta Quest renvoie HTTP 0 : Impossible de résoudre l'hôte de destination .
Lors de la compilation d'applications Unity pour la cible Android, la permission d'accès à Internet peut être supprimée automatiquement de l'APK client généré.
Ré-ajoutez les permissions dans (nécessite de reconstruire le client ensuite) :
Project Settings / OpenXR / ⚙️ Meta Quest Support / Force Remove Internet Permissions (décocher).
Player Settings / Internet Access (paramétrer sur require).
Que se passe-t-il si un joueur quitte mon déploiement ?
Par défaut, les serveurs n'excluent pas les connexions des joueurs. L'authentification des joueurs revient à vos développeurs, car de nombreuses méthodes et fournisseurs d'authentification peuvent être utilisés.
Les clients de jeu peuvent stocker localement les informations de connexion pour tenter de se reconnecter en cas de plantage inattendu du client.
Pour permettre aux joueurs de rejoindre des parties en cours, envisagez d'utiliser Approfondissement ou Sessions.
Mon serveur affiche 100% d'utilisation CPU après être devenu prêt.
Cela peut ne pas être un problème, car les moteurs de jeu effectuent souvent des opérations gourmandes en CPU lors des initialisations du serveur. Si l'utilisation du CPU ne baisse pas après 2-3 minutes depuis le début du déploiement, vous devrez peut-être optimiser votre serveur ou augmenter les ressources de la version de l'application.
Réduire le taux de tick peut impacter l'utilisation du CPU car le serveur effectue moins d'opérations de messagerie.
Si vous utilisez le netcode Mirror, vous devez avoir "Auto Start Server" sélectionné dans votre
NetworkManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez le netcode FishNet, vous devez activer « Start on Headless » dans votre
ServerManager, reconstruisez, poussez et redéployez votre serveur.Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau Gratuit.
Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.
Mon déploiement redémarre de manière répétée et affiche l'erreur `OOM kill` .
Ce comportement est causé par le dépassement de la mémoire allouée. Envisagez d'optimiser l'utilisation de la mémoire avec du pooling d'objets, de la compression ou la suppression d'objets inutiles dans votre scène.
Assurez-vous que votre projet charge la scène par défaut contenant votre
NetworkManageret que la scène est incluse dans les Build Settings de Unity.Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau Gratuit.
Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.
Parfois, l'utilisation de la mémoire (RAM) de mon serveur monte soudainement à une valeur élevée, est-ce un problème ?
Tant que vous restez dans la quantité de mémoire allouée à la version de l'application, ce n'est pas un problème.
Le dépassement de la quantité de mémoire allouée à la version de l'application provoquera un `OOM kill` (voir ci‑dessus).
Les performances de mon serveur seront-elles affectées par d'autres serveurs exécutés sur la même machine ?
Non, notre plateforme garantit que les ressources allouées ne seront pas utilisées par d'autres studios ou d'autres serveurs sur l'infrastructure partagée. Avec Edgegap, il n'y a pas de voisins bruyants.
Mis à jour
Ce contenu vous a-t-il été utile ?

