Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Salons Steam

Salons Steam

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

Salons Steam : Comment lancer des serveurs dédiés Edgegap depuis vos salons Steam

Salons Steam : Comment lancer des serveurs dédiés Edgegap depuis vos salons Steam

Ce guide vous montre comment conserver les salons Steam dans votre jeu, pour les amis et les groupes, et démarrer un serveur de jeu dédié Edgegap pour chaque match : lorsque le propriétaire du salon lance la partie, votre backend vérifie les joueurs auprès de Steam, déploie un serveur près d'eux, et le salon transmet son adresse à chaque membre.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie dans le monde entier sur plus de 615 emplacements Edge Cloud (à la demande) à partir d'un simple appel API et facturé exclusivement à l'utilisation : aucun serveur entier à louer, approvisionner ou maintenir en fonctionnement entre les matchs. Pour les serveurs persistants à capacité réservée, Edgegap propose les Private Fleets.

Steam regroupe les joueurs ; Edgegap héberge le match. Entre les deux se trouve un petit service sur votre backend, car démarrer un serveur nécessite votre jeton d'API Edgegap, qui ne doit jamais se trouver dans un client de jeu. Le trafic de votre jeu va directement au serveur dédié, sans passer par le relais de Steam.

Ce guide couvre :

  1. La préparation d'une version d'application Edgegap fonctionnelle et de votre application Steamworks

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

  3. La configuration de votre salon Steam

  4. L'ajout d'un service de déploiement à votre backend, avec authentification Steam

  5. La demande d'un serveur lorsque le salon est prêt

  6. Le partage du serveur avec le salon et la fin du match

  7. Le test avec deux joueurs

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

  • Avec un agent de programmation. Connectez Claude Code, Cursor ou un autre agent au serveur MCP Edgegap et à ses compétences d'agent. L'agent écrit le service de déploiement et le code du salon, puis vérifie la version de votre application et les déploiements. Vous gérez Steamworks, votre tableau de bord Edgegap, les secrets et les phases de test.

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

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.

  • Une version d'application Edgegap fonctionnelle de votre serveur de jeu : un serveur que vous avez déployé et rejoint au moins une fois. Votre backend déploie cette version pour chaque match, il a donc besoin d'un serveur de jeu conteneurisé et fonctionnel pour marcher de bout en bout. Si vous n'en avez pas encore, consultez nos guides : Unity Engine, Unreal Engine, Godot Engine ou Moteur personnalisé. Notez le nom de son application, le nom de sa version et le nom de son port (généralement gameport).

  • Une application Steamworks avec le SDK Steamworks dans votre jeu (ou l'intégration Steam de votre moteur), son App ID et une clé d'éditeur d'API Web provenant du site partenaire Steamworks, pour votre backend.

  • Un backend que vous contrôlez, pour le service de déploiement : le backend de votre jeu existant ou une petite fonction serverless.

  • Un jeton d'API Edgegap, accessible depuis Tableau de bord → Paramètres utilisateur → Jetons, stocké dans le gestionnaire de secrets de votre backend. Il est valable pour toute l'organisation, ne l'intégrez donc jamais dans votre client de jeu, votre serveur de jeu, vos fichiers de projet ou un chat.

Unreal Engine : conservez Steam pour les salons, les amis et les succès, mais connectez-vous directement au serveur : utilisez IpNetDriver et définissez bUseSteamNetworking=false. Notre guide Unreal Engine couvre la compilation du serveur.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous effectuez tout manuellement.

Le serveur MCP d'Edgegap permet à votre agent de vérifier vos applications et versions, de déployer des serveurs de test et de consulter leurs journaux sur votre compte. La compétence d'agent edgegap-deployments-api lui fournit les règles testées pour les backends qui démarrent des serveurs Edgegap : emplacement du jeton, positionnement des serveurs à proximité des joueurs, webhooks, nouvelles tentatives et nettoyage.

Claude Code (exécutez-le 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 envoyant 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 pouvant pas envoyer l'en-tête, utilisez plutôt le serveur local (Node 18+) : { "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }. Le jeton sera demandé lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap et leurs versions, avec les ports de chaque version. »

3. Configurez votre salon Steam

Le salon porte le match. Deux clés de données de salon suffisent : l'adresse du serveur et son port. Tout le reste demeure tel que votre jeu le gère déjà.

  • Les joueurs créent et rejoignent des salons comme aujourd'hui, avec ISteamMatchmaking de Steamworks (CreateLobby, invitations, JoinLobby).

  • Ajoutez deux clés de données de salon, vides pour l'instant, par exemple server_host et server_port. Seul le propriétaire du salon peut définir les données du salon (SetLobbyData) ; chaque membre reçoit un rappel LobbyDataUpdate_t lorsqu'elles changent.

  • En option, définissez également le serveur de jeu du salon avec SetLobbyGameServer (IP et port) : Steam envoie alors aux membres un rappel LobbyGameCreated_t, que l'interface utilisateur de Steam comprend.

4. Ajoutez un service de déploiement à votre backend, avec la connexion Steam

Vérifiez le joueur. Votre backend doit savoir qui appelle. Dans le jeu, obtenez un ticket avec ISteamUser::GetAuthTicketForWebApi, attendez le callback GetTicketForWebApiResponse_t, et envoyez le ticket (encodé en hexadécimal) à votre backend. Votre backend appelle l'API Web de Steam ISteamUserAuth/AuthenticateUserTicket avec votre clé d'éditeur et obtient le SteamID du joueur. Il enregistre également l'IP publique détectée lors de cette requête : Edgegap utilise ces adresses IP pour démarrer le serveur à proximité de tous les joueurs.

Démarrez le serveur. Un seul appel : POST https://api.edgegap.com/v2/deployments, avec l'en-tête Authorization: token <votre jeton d'API>, et un corps contenant :

  • application et version : votre application Edgegap et la version à exécuter, lues depuis votre configuration.

  • users : l'IP publique de chaque joueur, sous la forme {"user_type": "ip_address", "user_data": {"ip_address": "..."}}. Edgegap choisit l'emplacement offrant le meilleur ping pour l'ensemble du groupe.

  • tags : par exemple lobby-<id>, afin de pouvoir retrouver le serveur plus tard.

  • webhook_on_ready (et webhook_on_error) : l'URL de votre backend, contenant un jeton imprévisible par salon (lobby). Edgegap l'appelle avec le fqdn, la public_ip et le ports.gameport.external du serveur dès qu'il est démarré.

Edgegap répond 202 avec un request_id : enregistrez-le immédiatement avec le lobby. Si l'appel a expiré (timeout), recherchez un déploiement avec le tag lobby-<id> avant de tenter un nouveau déploiement. Un code 422 signifie qu'aucun serveur n'a pu être alloué pour le moment : réessayez avec un délai d'attente exponentiel (backoff). Les webhooks ne sont pas réessayés, donc si aucun n'arrive à temps, vérifiez GET https://api.edgegap.com/v1/status/<request_id>.

Avec votre agent :

« Charge la compétence edgegap-deployments-api et ajoute un service de déploiement Edgegap à mon backend pour les salons Steam : un point de terminaison de connexion qui vérifie un ticket Steam Web API avec ISteamUserAuth/AuthenticateUserTicket et enregistre l'IP du joueur, et un point de terminaison de lancement de partie que le propriétaire du salon appelle avec l'ID du salon et les SteamID des membres, qui vérifie que l'appelant possède bien le salon, déploie la version de mon application avec POST /v2/deployments (tags, webhooks ready et error), stocke le request_id et renvoie l'adresse du serveur une fois prêt. Lis le jeton d'API et la clé d'éditeur Steam depuis mon gestionnaire de secrets. »

Raccourci de prototypage, pas pour la production : appeler l'API d'Edgegap directement depuis le jeu du propriétaire du lobby intègre le jeton d'API de l'ensemble de votre organisation dans le build de votre jeu, où n'importe qui peut l'extraire. À n'utiliser que sur votre propre machine.

5. Demandez un serveur lorsque le salon est prêt

Lorsque le propriétaire du salon lance le match :

  1. Le jeu du propriétaire du salon appelle votre service de déploiement avec l'identifiant du salon et les SteamID des membres, connecté en tant que ce joueur.

  2. Votre service vérifie que l'appelant est bien le propriétaire du salon et que chaque membre est connecté, déploie le serveur et renvoie immédiatement une réponse. Le serveur met quelques secondes à démarrer.

  3. Le jeu du propriétaire du salon attend l'adresse : il interroge votre service toutes les quelques secondes, ou votre service le notifie, jusqu'à ce que le webhook prêt soit arrivé.

Pendant ce temps, affichez aux joueurs un état « démarrage du serveur », ainsi qu'une option de nouvelle tentative si votre service signale une erreur.

6. Partagez le serveur avec le salon et terminez la partie

  1. Le propriétaire du salon définit server_host et server_port avec SetLobbyData. Steam avertit chaque membre.

  2. Chaque membre se connecte à cette adresse et à ce port. « Prêt » signifie que le conteneur a démarré ; le jeu peut avoir besoin d'une minute de plus pour se charger, réessayez donc la connexion chaque seconde pendant un court moment. Les clients de navigateur et WebSocket se connectent avec wss:// au nom d'hôte.

  3. Lorsque le match se termine, le propriétaire du salon efface les deux clés et les membres quittent le serveur. Le serveur arrête son propre déploiement : à la fin du match, il appelle l'ARBITRIUM_DELETE_URL qu'Edgegap attribue à chaque déploiement, avec ARBITRIUM_DELETE_TOKEN. Aucun jeton d'API n'est nécessaire.

Revanche avec les mêmes joueurs ? Le propriétaire du salon demande un nouveau serveur, et le processus recommence.

Votre service de déploiement arrête tout ce qui reste, comme un salon qui s'est dissous avant le début du match. Arrêtez-les par leur request_id exact (DELETE https://api.edgegap.com/v1/stop/<request_id> ; un code 410 signifie qu'il est déjà arrêté), jamais avec des filtres généraux.

7. Tester avec deux joueurs

  1. Assurez-vous qu'aucun déploiement de test n'est toujours en cours d'exécution : le niveau gratuit n'exécute qu'un seul déploiement à la fois.

  2. Lancez deux clients sur deux ordinateurs, chacun connecté à un compte Steam différent, et rejoignez le même salon.

  3. Démarrez la partie en tant que propriétaire du salon. Votre service déploie le serveur ; dans le tableau de bord Edgegap, le déploiement apparaît étiqueté avec le salon, dans un emplacement proche de chez vous.

  4. Les deux clients reçoivent la mise à jour du salon et se connectent au même serveur.

  5. Terminez la partie : les clés sont effacées, le serveur s'arrête de lui-même et disparaît du tableau de bord.

Si le salon obtient une adresse mais que personne ne peut s'y connecter, le problème vient du serveur, pas du salon : déployez votre version manuellement et rejoignez-la directement.

É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 associez des inconnus, et pas seulement des amis ? Ajoutez le matchmaker hébergé d'Edgegap à côté de vos salons.

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

Questions Fréquemment Posées

Questions fréquentes sur le lancement de serveurs dédiés Edgegap depuis des salons Steam.

Les salons Steam peuvent-ils utiliser des serveurs dédiés ?

Oui. Conservez vos lobbies Steam pour vos amis et vos groupes. Lorsque le propriétaire du lobby lance le match, votre backend déploie un serveur Edgegap à proximité des joueurs, et le propriétaire partage son adresse via les données du lobby afin que chaque membre s'y connecte.

Ai-je besoin d'un backend pour démarrer des serveurs Edgegap depuis des salons Steam ?

Oui. Le démarrage d'un serveur nécessite votre jeton d'API Edgegap, qui donne accès à l'ensemble de votre organisation Edgegap. Dans un client de jeu, n'importe qui pourrait l'extraire. Un backend permet de le garder secret et de vérifier d'abord les joueurs auprès de Steam.

Comment vérifier les joueurs Steam sur mon backend ?

Le jeu obtient un ticket avec GetAuthTicketForWebApi et l'envoie à votre backend, qui appelle l'API Web ISteamUserAuth/AuthenticateUserTicket de Steam avec votre clé d'éditeur. Steam renvoie le SteamID du joueur.

Est-ce que Steam relaie le trafic vers un serveur Edgegap ?

Non. Les joueurs se connectent directement à l'adresse et au port du serveur dédié. Dans Unreal Engine, utilisez IpNetDriver et désactivez la mise en réseau Steam ; Steam gère toujours les salons, les amis et les succès.

Comment arrêter le serveur Edgegap lorsque le match se termine ?

Le serveur arrête son propre déploiement à l'aide de l'URL de suppression et du jeton qu'Edgegap injecte dans chaque déploiement, sans qu'aucun jeton d'API ne soit nécessaire. Votre backend arrête également les restes grâce à leur identifiant de requête exact.

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.