Une seule plateforme, trois profils de réseau très différents

Rédigé en collaboration avec

Warped Games

Points clés

Une seule intégration, trois profils de serveur

Une seule intégration, trois profils de serveur

Warped Universe n'est pas une charge de travail serveur unique. Il y en a trois. Un hub social tolérant à la latence, un mode coopératif en temps réel sensible aux trames, et un mode coopératif au tour par tour piloté par RPC ont chacun des besoins d'échelle et de latence différents. Un seul ingénieur a connecté les trois à la même API de déploiement Edgegap et au même pipeline de conteneurs, en faisant varier uniquement le modèle de version par mode.

Des serveurs au plus près des joueurs pour une faible latence, avec gestion automatique de la flotte

Des serveurs au plus près des joueurs pour une faible latence, avec gestion automatique de la flotte

Le combat dans Warped Universe est en temps réel et fait autorité au niveau du serveur. Cela signifie que les éléments essentiels du gameplay, tels que les dégâts, la détection des coups et l'IA, nécessitent une confirmation faisant autorité, et qu'un serveur distant effectuant des trajets aller-retour de 150 à 250 ms pèserait sur l'expérience de jeu instantanée. Edgegap place automatiquement un serveur à proximité de chaque joueur qui se connecte, et gère le parc multi-régional pour le compte de Warped Games.

Déploiements Edge Cloud basés sur l'utilisation qui s'adaptent à la demande

Déploiements Edge Cloud basés sur l'utilisation qui s'adaptent à la demande

Les sessions s'activent par mission, qu'elles soient issues du matchmaking ou d'une invitation de groupe, puis se terminent une fois la mission achevée. Le backend de matchmaking de Warped Games appelle l'API de déploiement d'Edgegap pour chaque mission, ce qui déploie instantanément un serveur de jeu au plus près des joueurs afin que le salon puisse se lancer directement dans la partie. La capacité s'adapte à la demande réelle, mission par mission.

Un studio de 12 personnes l'a publié, et un seul ingénieur en est responsable

Un studio de 12 personnes l'a publié, et un seul ingénieur en est responsable

Le même ingénieur qui possède les microservices back-end possède également l'orchestration. Le déploiement d'une nouvelle version est une étape d'intégration continue unique qui publie un modèle JSON contrôlé par version. Une boucle Docker locale exécute exactement la même structure de conteneur que celle de production, de sorte que l'équipe teste une version de serveur localement, puis déploie son serveur de jeu dans le monde entier pour que les joueurs puissent s'y connecter d'emblée.

Le Studio

Warped Games est un studio indépendant de 12 personnes, né de la synergie créative de vétérans ayant travaillé sur des projets emblématiques tels que LEGO Universe, Dragons & Titans et Jumpgate, ainsi que sur des collaborations avec des leaders du secteur comme Star Citizen, Pixar et Disney. Pas d'éditeur. Pas d'investisseurs pour leur dicter ce qu'ils doivent faire. Juste des développeurs qui créent le jeu auquel ils voulaient jouer.

Ce jeu, c'est Warped Universe, développé sous Unreal Engine 5 : selon les propres mots du studio, un looter shooter de science-fiction PvE free-to-play situé dans un univers instable et en pleine expansion, où chaque mission fait progresser à la fois le joueur et la communauté. Chaque mission alimente un méta-objectif à l'échelle de la saison. Sécurisez une installation, débloquez un bonus permanent pour toute la communauté. Découvrez une nouvelle planète, ouvrez une plus grande partie de la carte pour tout le monde. Et chaque mission peut être jouée en action en temps réel ou en tactique au tour par tour, au sol ou dans l'espace, au choix du joueur à chaque fois.

À la base de tout cela se trouve un modèle multijoueur sur serveur dédié faisant autorité. C'est là qu'Edgegap intervient.

Le Défi

Warped Games s'est adressé à Edgegap avec trois problèmes, et ils avaient déjà défini chacun d'eux avec précision.

Une base de joueurs mondiale, où l'hébergement sur une seule région ne suffit pas. Le combat en coopération est en temps réel et géré par le serveur, la latence affecte donc directement le joueur. Une flotte uniquement basée aux États-Unis ou en Europe laisserait tous les autres joueurs avec des temps d'aller-retour de 150 à 250 ms, ce qui se ressentirait dans les combats en temps réel et les sessions au tour par tour qui restent actives. Les serveurs devaient venir aux joueurs, et non l'inverse.

Une demande fluctuante et imprévisible. Il ne s'agit pas d'un serveur de monde persistant. Les sessions sont limitées à la mission, à quatre joueurs, créées par matchmaking ou sur invitation, lancées à la demande et fermées à la fin de la mission. Warped Games souhaitait une capacité qui suive ce rythme, prête au moment où une vague de groupes clique sur « Commencer », sans avoir à supporter des serveurs toujours actifs le reste du temps.

Une équipe sans rôle opérationnel dédié. L'orchestration devait pouvoir être gérée par l'ingénieur qui s'occupe des microservices du backend. Elle devait s'intégrer dans le pipeline CI existant et rester légère à exécuter.

« Nous avions besoin que les serveurs se trouvent à proximité de chaque joueur, et non l'inverse, sans avoir à mettre sur pied et à gérer notre propre flotte multi-régions. » Scott Brown, cofondateur / président / développeur de jeu principal, Warped Games

La Solution

Déploiement en périphérie (edge) sans région définie. Au lieu que Warped Games choisisse les régions à l'avance, Edgegap place automatiquement chaque serveur à proximité du joueur qui se connecte. La question de la latence est résolue au moment du déploiement, et la flotte multi-régions est gérée pour eux.

Déploiement à la demande. Le backend Beamable de Warped Games, qui gère le matchmaking et les salons (lobbies), appelle l'API de déploiement d'Edgegap par mission. Un serveur est déployé à proximité des joueurs et est prêt pendant le chargement du salon, puis libéré à la fin de la mission. La capacité suit la demande réelle, mission par mission.

« Notre backend de matchmaking appelle l'API de déploiement d'Edgegap par mission et obtient un serveur placé et démarré le temps qu'un salon termine son chargement. Pas de flotte inactive à payer ou à gérer. » Scott Brown

Un seul pipeline, géré par un seul ingénieur. C'est là que l'intégration a porté ses fruits. Le déploiement d'une nouvelle version est une simple étape de CI : le pipeline publie un petit modèle JSON contrôlé par version avec le tag d'image, les limites de ressources et les ports, et Edgegap le compile et le publie en tant que version active, sans aucune intervention manuelle sur la console par version. Pour itérer rapidement, l'équipe a créé une boucle Docker locale qui exécute exactement le même Dockerfile et le même script de démarrage qu'Edgegap utilise en production : même forme de conteneur, mêmes variables d'environnement, mêmes limites de mémoire. Et lorsqu'ils souhaitent vérifier un serveur actif, les API de déploiement et de journaux de conteneurs d'Edgegap, ainsi qu'un export de journaux durable vers S3, fournissent des preuves claires de ce qui s'est passé pendant une session, sans avoir à mettre en place une pile d'observabilité distincte.

« Nous avons créé une boucle Docker locale qui exécute exactement le même Dockerfile et le même script de démarrage qu'Edgegap utilise en production. Cette parité locale est ce qui a permis à une petite équipe d'itérer rapidement sans gaspiller de déploiements cloud à chaque modification. » Scott Brown

Chaque fusion produit automatiquement une nouvelle image de conteneur et une nouvelle version Edgegap, et comme il s'agit toujours de la « dernière » version, le tri reste simple. L'équipe sait toujours quelle version est active.

« Chaque fusion produit automatiquement une nouvelle image de conteneur et une nouvelle version Edgegap. Comme il s'agit toujours de la dernière version, nous n'avons jamais à nous demander sur quelle version se trouve ce bug. » Scott Brown, cofondateur / président / développeur de jeu principal, Warped Games

Une seule plateforme, trois profils réseau très différents. Warped Universe n'a pas qu'une seule charge de travail serveur. Il en a trois, chacune ayant des besoins d'échelle et de latence différents, et toutes trois fonctionnent sur la même API de déploiement Edgegap et le même pipeline de conteneurs :

  • La station hub, le salon social. De nombreux joueurs se trouvent en même temps dans un espace à l'aspect persistant, qui gère le chat, la présence et la formation de groupes. Tolérant à la latence, mais il nécessite un serveur capable d'accueillir une foule.

  • Coopération de combat en temps réel, au sol et dans l'espace. Petits groupes de quatre joueurs, mouvements, dégâts et IA gérés par le serveur, sensible à la latence à l'image près. Il nécessite un serveur placé à proximité de chaque joueur, démarré à neuf pour chaque mission et arrêté après.

  • Coopération de combat au tour par tour. Le même modèle à quatre joueurs géré par le serveur, mais l'action se résout par des échanges de tours via RPC plutôt que par un état continu en temps réel. Beaucoup moins de bande passante et de pression sur le tick rate, et le même cycle de vie de session : déploiement au début du salon, arrêt à la fin de la mission.

Un seul point d'intégration s'est adapté aux trois. Warped Games fait varier le modèle de version par charge de travail, les limites de ressources, la carte de démarrage et le mode, et rien d'autre ne change.

« Warped Universe n'a pas qu'une seule charge de travail serveur, il en a trois, chacune ayant des besoins d'échelle et de latence différents, et Edgegap les couvre toutes sans que nous ayons besoin d'un autre fournisseur ou d'une configuration sur mesure par mode. » Scott Brown

Conclusion

L'équipe a connecté le déploiement et l'orchestration à un backend de microservices et à un pipeline CI existants, la sélection de la région et la gestion de la flotte étant prises en charge par Edgegap. Trois profils réseau distincts, un seul point d'intégration. Une capacité qui suit un modèle de jeu fluctuant et axé sur les missions.

« Le modèle de paiement par déploiement correspond à notre courbe d'utilisation réelle, fluctuante et limitée aux missions, plutôt que de nous imposer une capacité constante que nous paierions à 3 heures du matin alors que personne n'est en ligne. » Scott Brown

C'est ce dont un studio a besoin pour continuer à faire progresser un univers ambitieux et axé sur la communauté. L'infrastructure s'efface pour laisser l'équipe se concentrer à nouveau sur le jeu.

Intégrer Edgegap facilement en quelques minutes

Commencez l'intégration maintenant!

Commencez l'intégration maintenant!