Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Unreal Engine

Unreal Engine

Déployer sur Edgegap

Publié

Publié

Publié

dernière vérification de l'exactitude

dernière vérification de l'exactitude

dernière vérification de l'exactitude

Unreal Engine : comment ajouter des serveurs de jeu dédiés en quelques minutes et le Matchmaking à votre jeu multijoueur

Unreal Engine : comment ajouter des serveurs de jeu dédiés en quelques minutes et le Matchmaking à votre jeu multijoueur

Ce guide vous montre comment ajouter des serveurs de jeu dédiés à un jeu multijoueur Unreal Engine et les héberger sur Edgegap, puis ajouter du matchmaking afin que les joueurs soient automatiquement regroupés et connectés à un serveur proche d'eux.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie à l'échelle mondiale sur plus de 615 emplacements Edge Cloud (à la demande) à partir d'un simple appel d'API et avec une facturation basée exclusivement sur l'utilisation : aucun serveur entier à louer, approvisionner ou maintenir en fonctionnement entre les parties. Pour les serveurs persistants avec capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie là-dessus et est facultatif.

La réplication d'Unreal fait déjà autorité côté serveur, un serveur dédié est donc un choix naturel : aucun joueur n'héberge, ne bénéficie d'un avantage de latence ou ne met fin à la partie en quittant.

Ce guide couvre :

  1. La préparation d'Unreal, de votre compte Edgegap et de Docker

  2. La connexion de votre agent de codage à Edgegap (facultatif)

  3. La préparation de votre projet Unreal pour les serveurs dédiés

  4. La compilation et la conteneurisation de votre serveur de jeu

  5. Le déploiement d'un serveur de test et la connexion à celui-ci

  6. L'ajout du matchmaking (facultatif)

  7. Le test de la boucle complète avec deux joueurs

Nous vous suggérons de compiler avec l'extension Docker d'Edgegap pour gagner du temps et économiser des ressources. Unreal ne peut compiler des serveurs dédiés qu'à partir d'un moteur compilé à partir des sources. La méthode traditionnelle implique de télécharger et compiler le moteur (1 à 3 heures la première fois), d'installer une chaîne d'outils de compilation croisée Linux et d'empaqueter le serveur (environ une heure la première fois). L'extension Docker compile plutôt votre serveur Linux dans Docker, à partir d'une installation Launcher d'Unreal, sur Windows, macOS ou Linux. Les deux méthodes sont présentées à l'étape 4.

Vous pouvez procéder de deux manières et les combiner :

  • Avec un agent de codage. Connectez Claude Code, Cursor ou un autre agent au serveur MCP Edgegap et à ses compétences d'agent. L'agent modifie votre projet et votre configuration, ajoute le code de matchmaking et d'arrêt du serveur, déploie votre serveur et configure le matchmaking. Vous cliquez sur Build dans l'extension Docker, gérez le tableau de bord Edgegap et testez le jeu. Éviter la compilation du moteur depuis les sources fait également gagner à votre agent des heures de surveillance de compilation, ainsi que les jetons associés.

  • Manuellement. Chaque étape ci-dessous fonctionne également sans agent.

Ici, nous utilisons Lyra, le jeu exemple multijoueur d'Epic. Tout projet multijoueur Unreal fonctionne de la même manière.

Aucune carte de crédit requise. L'offre gratuite inclut les ressources nécessaires pour déployer un véritable serveur de jeu.

Aucune carte de crédit requise. L'offre gratuite inclut les ressources nécessaires pour déployer un véritable serveur de jeu.

Guide étape par étape

Étapes d'intégration détaillées

1. Avant de commencer

  • Un compte Edgegap gratuit. Vérifiez votre adresse e-mail. Aucune carte de crédit n'est requise pour tester.

  • Unreal Engine 5, installé depuis le lanceur Epic Games. Vous n'avez besoin d'un moteur compilé à partir des sources que pour la méthode traditionnelle (étape 4, Option B).

  • Un projet C++. Les projets utilisant uniquement des Blueprints nécessitent d'abord un module C++ : dans l'éditeur, sélectionnez Outils → Nouvelle classe C++ → Aucun (classe vide). Vos Blueprints continueront de fonctionner sans modification.

  • Docker Desktop et l'extension Docker d'Edgegap. Installez et lancez Docker Desktop, puis installez l'extension Docker Edgegap depuis le marketplace des extensions Docker.

  • Accès à Unreal Engine sur GitHub. L'extension télécharge ce dont elle a besoin depuis l'organisation GitHub d'Epic :

  • Pour le chemin de l'agent : un jeton d'API Edgegap, accessible depuis le Tableau de bord → Paramètres utilisateur → Jetons. Il s'applique à l'échelle de l'organisation, traitez-le donc comme un mot de passe : ne l'intégrez jamais dans votre projet, votre client de jeu ou une messagerie instantanée.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous faites tout manuellement.

Le serveur MCP Edgegap permet à votre agent de créer des applications et des versions, de déployer des serveurs, de lire les journaux et de générer des configurations de matchmaking sur votre compte. La compétence d'agent edgegap-unreal lui apporte le flux de travail Unreal éprouvé, des fichiers C++ prêts à l'emploi pour le matchmaking et l'arrêt du serveur, ainsi que les pièges connus à éviter.

Claude Code (à exécuter dans votre propre terminal afin que le jeton ne transite jamais par le chat) :

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user

Installez ensuite les compétences : /plugin marketplace add edgegap/edgegap-agent-skills, puis /plugin install edgegap@edgegap. Redémarrez la session.

Cursor, VS Code et autres clients qui envoient des en-têtes : ajoutez https://mcp.edgegap.dev/mcp avec l'en-tête Authorization: token YOUR_EDGEGAP_API_TOKEN, puis installez les compétences avec npx skills add edgegap/edgegap-agent-skills --skill "*".

Claude Desktop : les connecteurs personnalisés ne peuvent pas envoyer l'en-tête, utilisez donc plutôt le serveur local (Node 18+) : { "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }. Il vous demandera le jeton lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Une liste vide convient parfaitement. Une erreur concernant le jeton signifie généralement que l'en-tête indique token token ....

3. Préparez votre projet Unreal pour les serveurs dédiés

Sur Edgegap, aucun joueur n'héberge la partie. Un serveur dédié headless gère le jeu : il doit donc démarrer de manière autonome, ouvrir la carte de votre jeu, écouter sur un port fixe et s'arrêter lorsque la partie est terminée.

Avec votre agent :

« Charge la compétence edgegap-unreal et prépare ce projet pour un serveur dédié. Je vais compiler le serveur Linux avec l'extension Docker d'Edgegap, alors ignore la compilation du code source du moteur, la chaîne d'outils Linux et l'empaquetage RunUAT. Ajoute la cible Server, définis ServerDefaultMap ainsi que les cartes à préparer (cook), ajoute les paramètres DefaultEngine.ini depuis docs.edgegap.com/unreal-engine, et copie les fichiers EdgegapMatchmakerSubsystem et EdgegapServerSubsystem en désactivant le matchmaking pour le moment. Vérifie que la cible éditeur compile toujours. »

Par défaut, la compétence utilise la compilation traditionnelle depuis les sources. Indiquer à votre agent que vous compilez avec l'extension Docker lui évite d'en lancer une.

Manuellement :

  • Carte du serveur. Dans Project Settings → Maps & Modes, définissez Server Default Map sur la carte que le serveur doit charger, et assurez-vous qu'elle figure dans la liste des cartes à préparer (cook).

  • Paramètres du moteur. Copiez l'extrait de code de DefaultEngine.ini disponible dans la documentation Unreal d'Edgegap à la fin de Config/DefaultEngine.ini, et inscrivez le nom de votre cible serveur à la dernière ligne (DefaultServerTarget). Cela désactive la vérification de version d'Unreal entre les builds client et serveur et configure IpNetDriver pour la réplication. Redémarrez l'éditeur.

  • Cible serveur. Si Source/<PROJECT>Server.Target.cs n'existe pas, copiez <PROJECT>Editor.Target.cs, renommez la copie en <PROJECT>Server.Target.cs, et remplacez chaque occurrence de « Editor » par « Server ». Ajoutez ensuite les paramètres de compilation par défaut du serveur mentionnés dans la documentation, qui permettent de conserver les logs dans les builds Shipping.

  • Habitudes liées aux serveurs d'écoute (listen servers). Le serveur dédié remplace le joueur hôte. Protégez le code qui suppose la présence d'un joueur local sur le serveur (HUD, audio, GetFirstPlayerController()) avec IsRunningDedicatedServer(), et retirez « Héberger une partie » de votre menu.

  • Arrêt à la fin du match. Avec les builds de l'extension Docker, appelez FGenericPlatformMisc::RequestExit sur le serveur lorsque le match est terminé, et le déploiement s'arrêtera.

Lyra

Lyra inclut déjà LyraServer.Target.cs : ajoutez-y les paramètres de compilation par défaut. Dans Maps & Modes, définissez Server Default Map sur ShooterGym, et configurez DefaultServerTarget=LyraServer dans l'extrait de code.

4. Construisez et conteneurisez votre serveur

Edgegap exécute votre build de serveur Linux dans un conteneur. Nous vous suggérons l'option A : elle vous fait gagner des heures sur votre premier build, tout en économisant les jetons de votre agent.

Option A (recommandée) : l'extension Docker d'Edgegap. Pas de compilation des sources du moteur, pas de chaîne d'outils Linux, depuis n'importe quel système d'exploitation. La vidéo ci-dessous présente cette approche avec Lyra.

  1. Dans Docker Desktop, ouvrez l'extension Edgegap. Saisissez le nom de votre projet ainsi que votre jeton Edgegap (sélectionnez Get Quick Start Token si vous n'en avez pas), puis sélectionnez Validate Token.

  2. Sélectionnez Unreal Engine, puis Browse pour accéder au dossier de votre projet et sélectionnez Create Project. L'extension renseigne automatiquement la version de votre moteur.

  3. Saisissez votre nom d'utilisateur GitHub ainsi que votre Personal Access Token de l'étape 1.

  4. Sélectionnez Validate Configuration. Les trois vérifications doivent toutes passer au vert.

  5. Conservez le Dockerfile, le nom de l'image et le tag par défaut, puis sélectionnez Build Project.

  6. Testez localement : choisissez le nouveau tag, sélectionnez Start Local Server, puis dans Unreal, lancez un client (New Editor Window (PIE)) et tapez open 127.0.0.1:7777 dans sa console. Arrêtez le serveur local dès que cela fonctionne.

  7. Sélectionnez Upload Image. Dans le navigateur, créez l'application, conservez les ressources par défaut et configurez le port sur 7777, UDP, nommé gameport. Validez.

Vous devez recompiler ultérieurement ? Sélectionnez à nouveau Build Project avec un nouveau tag, puis Upload Image.

Option B : la méthode traditionnelle, à partir du code source du moteur. Utilisez-la si votre studio gère déjà une version compilée à partir des sources.

  • Vous avez besoin : du code source du moteur provenant du GitHub d'Epic (associé comme à l'étape 1), de Visual Studio 2022 avec les charges de travail de développement de jeux en C++, de la chaîne d'outils de compilation croisée Linux correspondant à la version de votre moteur, et de Docker Desktop.

  • Prévoyez : 20 à 60 minutes pour télécharger le moteur, 1 à 3 heures pour le compiler, et environ une heure pour packager le premier serveur Linux. Les compilations suivantes ne prendront que quelques minutes.

Avec votre agent :

« Charge la compétence edgegap-unreal et suis-la à partir de la compilation des sources du moteur : compile le moteur, package le serveur Linux, conteneurise-le avec le Dockerfile de la compétence pour linux/amd64, pousse-le vers mon registre de conteneurs Edgegap avec un nouveau tag, puis crée l'application et la version de l'application avec le port 7777 UDP nommé gameport. »

L'agent vous demande d'exécuter vous-même docker login registry.edgegap.com, avec le nom d'utilisateur et le jeton issus de la page Container Registry, afin que ces identifiants ne figurent pas dans le chat. Assurez-vous que les identifiants du registre sont bien configurés pour la version de l'application : sans eux, les déploiements échouent avec l'erreur « Unable to pull image from registry ».

Utilisez un nouveau tag d'image pour chaque build, jamais latest.

Voici notre tutoriel vidéo de l'extension Docker d'Edgegap pour Unreal Engine, utilisant Lyra :

5. Déployez un serveur de test et connectez-vous

Démarrez un serveur manuellement pour vérifier que l'image, le port et votre netcode fonctionnent avant d'ajouter le matchmaking. N'importe laquelle de ces options fonctionne :

  • Depuis l'extension Docker : sous Edgegap Application Version, choisissez la version que vous venez de créer, puis sélectionnez Deploy to Cloud.

  • Depuis le tableau de bord : ouvrez la version de votre application dans le tableau de bord Edgegap, sélectionnez Deploy, choisissez un emplacement proche de chez vous et déployez.

  • Depuis votre agent : « Déploie ma dernière version Edgegap près de chez moi, attends qu'elle soit prête, montre-moi les journaux et donne-moi l'adresse ainsi que le port externe. »

Lorsque le déploiement est Ready, copiez son Host et son External Port. Dans Unreal, lancez un client et tapez open <host>:<external port> dans sa console. Le port externe change à chaque déploiement, pensez donc à le vérifier à chaque fois. Le serveur peut prendre jusqu'à une minute après être prêt pour accepter des joueurs.

Arrêtez le déploiement lorsque vous avez terminé (depuis l'extension, le tableau de bord ou votre agent). L'offre gratuite permet d'exécuter un seul déploiement à la fois, et un serveur de test oublié bloque le matchmaking.

Ici, vous avez choisi l'emplacement et distribué l'adresse. Pour regrouper les joueurs et démarrer automatiquement un serveur près d'eux, ajoutez un matchmaker.

6. Ajouter le matchmaking

Le matchmaker d'Edgegap est un service hébergé : les joueurs envoient un ticket, il les regroupe selon vos règles (taille du match, équipes, latence, niveau, mode), déploie votre serveur à proximité d'eux et renvoie l'adresse à chaque client.

Avec votre agent :

« Générez une configuration de matchmaker Edgegap à partir du modèle de latence edgegap-unreal pour la version de mon application : une équipe de 2 à 4 joueurs, une règle de latence, et permettez à un joueur seul d'obtenir un serveur après 10 secondes afin que je puisse tester seul. Enregistrez-la sous le nom de matchmaker-config.json. »

Ensuite, dans le tableau de bord (cette étape n'a pas d'API) :

  1. Ouvrez Matchmaker et sélectionnez Create Matchmaker.

  2. Nommez-le, téléversez matchmaker-config.json et sélectionnez Create and Start.

  3. Lorsqu'il est ONLINE, copiez l'API URL et l'Auth Token. Le jeton d'authentification (Auth Token) peut être inclus sans risque dans votre client de jeu : il ne donne aucun accès à votre compte Edgegap.

De retour avec votre agent :

« Activez le EdgegapMatchmakerSubsystem avec l'URL de l'API de mon matchmaker et le jeton d'authentification, profil occasionnel (casual), latences de balise activées. Vérifiez d'abord la réponse de l'URL et du jeton. »

Le code de matchmaking s'exécute uniquement sur les clients, donc l'image du serveur de l'étape 4 ne change pas. Les joueurs disposent d'une interface superposée Find Match, et les Blueprints peuvent appeler Find Match, Cancel Match et On Status Changed depuis le sous-système pour votre propre menu. Dans un dépôt public, conservez l'URL et le jeton réels dans Config/UserGame.ini, que Git ignore et qu'Unreal intègre toujours au package.

Manuellement : suivez la documentation sur le matchmaking, ou consultez Matchmaking pour Unreal Engine.

Lorsque vous publiez une nouvelle version du serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les matchs continueront à déployer l'ancienne version.

7. Testez la boucle complète avec deux joueurs

  1. Assurez-vous qu'aucun déploiement de test n'est encore en cours d'exécution.

  2. Lancez deux clients côte à côte, par exemple UnrealEditor.exe <votre .uproject> -game -windowed -ResX=960 -ResY=540 -WinX=0 -log et un second avec -WinX=970. Lancez-en d'abord un seul : le premier lancement compile les shaders pendant plusieurs minutes.

  3. Sélectionnez Find Match sur les deux dans un intervalle de 10 secondes. Le statut passe de recherche à match trouvé, puis les deux clients rejoignent le même serveur.

  4. Fermez les deux clients. Environ une minute plus tard, le serveur arrête son propre déploiement et disparaît du tableau de bord. Cet arrêt automatique est ce qui maintient votre facture à zéro lorsque personne ne joue.

Avec l'offre gratuite, le matchmaker s'arrête 3 heures après chaque démarrage (redémarrez-le depuis le tableau de bord), les déploiements s'arrêtent après 60 minutes et un seul déploiement s'exécute à la fois.

Étapes suivantes

Étapes suivantes

Vous passez en production ? Demandez à votre agent d'exécuter la liste de contrôle de la compétence edgegap-launch : déploiements de versions, politique de redémarrage, durée maximale, contrôle des coûts. Vous utilisez Epic Online Services pour les salons ? Consultez Epic Online Services.

Bloqué ? Demandez à votre agent de charger edgegap-troubleshoot, ou posez vos questions à notre équipe et à d'autres studios sur le Discord Edgegap.

Questions Fréquemment Posées

Questions fréquentes sur l'hébergement d'un jeu Unreal Engine sur les serveurs dédiés d'Edgegap, avec ou sans matchmaking.

Dois-je compiler Unreal Engine à partir des sources pour les serveurs dédiés ?

Pas avec l'extension Docker d'Edgegap. Elle compile votre serveur Linux dans Docker à partir d'une installation d'Unreal depuis le Launcher, ce qui vous fait économiser des heures de compilation du moteur. Sans cela, Unreal nécessite un moteur compilé à partir des sources pour compiler les cibles Serveur.

Puis-je créer un serveur dédié Linux sous Windows ou macOS ?

Oui. L'extension Docker d'Edgegap compile le serveur Linux dans Docker sous Windows, macOS ou Linux, sans aucune chaîne d'outils de compilation croisée Linux à installer.

Quel port un serveur dédié Unreal utilise-t-il sur Edgegap ?

L'IpNetDriver d'Unreal écoute par défaut sur le port 7777 en UDP. Définissez le même port et protocole sur la version de votre application Edgegap, nommé gameport. Les joueurs se connectent au port externe qu'Edgegap attribue à chaque déploiement.

Puis-je ajouter le matchmaking à un projet Unreal uniquement en Blueprint ?

Oui. Ajoutez une classe C++ vide pour créer un module C++, puis ajoutez le sous-système de matchmaking d'Edgegap. Vos Blueprints appellent Find Match et écoutent son statut à partir du sous-système.

Combien coûte l'hébergement d'un serveur de jeu Unreal Engine ?

L'essai est gratuit, sans carte de crédit. Ensuite, Edge Cloud facture par vCPU et par minute uniquement lorsque les serveurs fonctionnent, de sorte qu'un serveur qui s'arrête à la fin de chaque match ne coûte rien entre les matchs.

Clients

Découvrez les témoignages de clients qui ont intégré Edgegap

31 études de cas sont disponibles auprès de studios ayant migré d'une autre plateforme vers Edgegap.

Principales raisons pour lesquelles ils ont choisi Edgegap

Découvrez l’impact de l’orchestration automatisée des serveurs de jeu d’Edgegap pour une expérience multijoueur impeccable.

Coût

Prix

Optimisez les coûts et les performances grâce à l'orchestration hybride

Optimisez les coûts et les performances grâce à l'orchestration hybride

Optimisez les coûts et les performances grâce à l'orchestration hybride

Cloud de périphérie

À la demande

0,00115 $

/ vCPU

/ MINUTE

Facturé à la minute, uniquement à l'utilisation

Payez quand les joueurs jouent. 0 serveur actif = 0 $

Déployez des serveurs de jeu dans le monde entier, par instance, dans plus de 615 emplacements edge cloud. Sans engagement.

Ajoutez simplement une carte de crédit.

Cloud de périphérie

À la demande

0,00115 $

/ vCPU

/ MINUTE

Facturé à la minute, uniquement à l'utilisation

Payez quand les joueurs jouent. 0 serveur actif = 0 $

Déployez des serveurs de jeu dans le monde entier, par instance, dans plus de 615 emplacements edge cloud. Sans engagement.

Ajoutez simplement une carte de crédit.

Private Fleet (Bare Metal)

Capacité réservée

0,0282 $

/ vCPU

/ HEURE

Facturé mensuellement, toujours actif

280 $ par hôte/mois (tarif sur 12 mois), ou 350 $ par mois

Optimisez la rentabilité de votre serveur de jeu grâce à l'hébergement sans frais de transfert de données sortantes (egress-free) des flottes privées (Private Fleets).

Permanent, disponible 24h/24 et 7j/7, exclusif à votre studio.

Private Fleet (Bare Metal)

Capacité réservée

0,0282 $

/ vCPU

/ HEURE

Facturé mensuellement, toujours actif

280 $ par hôte/mois (tarif sur 12 mois), ou 350 $ par mois

Optimisez la rentabilité de votre serveur de jeu grâce à l'hébergement sans frais de transfert de données sortantes (egress-free) des flottes privées (Private Fleets).

Permanent, disponible 24h/24 et 7j/7, exclusif à votre studio.

Votre facture varie selon le tarif et l'utilisation, qui peuvent varier en fonction
du type de jeu, du nombre de joueurs et plus encore.

Votre facture varie selon le tarif et l'utilisation, qui peuvent varier en fonction
du type de jeu, du nombre de joueurs et plus encore.

Modélisez votre utilisation avec notre calculateur d'estimation ->

Modélisez votre utilisation avec notre calculateur d'estimation ->

Fonctionnalités et prix d'Eggegap : comparaison détaillée entre Edge Cloud et Private Fleets

Fonctionnalités et prix d'Eggegap : comparaison détaillée entre Edge Cloud et Private Fleets

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.