Du Peer-to-Peer aux combats équitables : Bloody Bastards sur des serveurs dédiés

Rédigé en collaboration avec

Tibith Games

Points clés

La triche, c'est fini

La triche, c'est fini

Bloody Bastards est un jeu de combat mobile, et le passage de son mode multijoueur d'un modèle peer-to-peer à un serveur dédié faisant autorité et sans interface graphique l'a rendu équitable et exempt d'usurpation. Selon les propres mots du studio, aucun hacker n'a réussi à tricher depuis la version 5.0.0. Auparavant, lorsqu'on faisait confiance à un client pour les résultats des matchs, ces résultats pouvaient être falsifiés. Désormais, c'est le serveur qui détient la vérité.

Cliquez simplement sur Combat

Cliquez simplement sur Combat

Les joueurs ne choisissent plus une région de serveur avant de pouvoir jouer. Le matchmaker d'Edgegap regroupe les joueurs par ping et déploie un serveur dédié le plus proche d'eux, de sorte que n'importe qui dans le monde peut appuyer sur un bouton et obtenir une partie équitable. Le sélecteur de région a complètement disparu du processus.

Désynchronisation et ping asymétrique, résolus

Désynchronisation et ping asymétrique, résolus

Synchroniser la physique dans un match en peer-to-peer est notoirement difficile, et le modèle précédent obligeait les joueurs à lutter contre les désynchronisations et une latence extrêmement irrégulière. Désormais, le serveur faisant autorité exécute la simulation et les clients ne font que restituer le résultat, ce qui élimine le problème de désynchronisation à la racine et harmonise le ping.

Opérations en direct (Live-ops) depuis le matchmaker

Opérations en direct (Live-ops) depuis le matchmaker

Tibith ajuste les extensions de matchmaking par ping et les paliers de classement directement en production, sans redéploiement et avec un redémarrage quasi instantané. Pour un studio exploitant un succès à 10 millions de téléchargements, cela signifie pouvoir itérer sur le matchmaking comme sur un service en direct, sans nécessiter d'équipe backend dédiée.

Le Studio

Tibith Ltd est un studio de jeux basé au Royaume-Uni, dirigé par le directeur Tibi Tircomnicu, et son titre phare est Bloody Bastards.

Ce jeu est un jeu de combat médiéval basé sur la physique où vous affrontez vos bâtards de frères dans l'arène des champions. Il associe le pixel art, la physique 2D et la mécanique des ragdolls dans une expérience de combat unique en son genre : touchez et maintenez l'un ou l'autre côté de l'écran pour contrôler chaque main, touchez deux fois pour vous déplacer et combinez des centaines d'armes, de boucliers et d'équipements pour obtenir des milliers de combinaisons mortelles. Dagues, haches, épées, masses, marteaux. Il ne peut en rester qu'un.

Les joueurs sont d'accord. Bloody Bastards a dépassé les 10 millions de téléchargements sur le seul Google Play, avec une note de 4,6 étoiles sur plus de 403 000 avis, ainsi qu'une note de 4,8 étoiles sur 45 000 évaluations sur l'App Store. C'est un véritable succès sur mobile.

Le Défi

Avant la version 5.0.0, Bloody Bastards fonctionnait sur un modèle de pair à pair. Cela a permis de lancer le mode multijoueur, mais au fur et à mesure que le jeu grandissait, les failles du P2P sont devenues de réels problèmes pour les joueurs et pour le studio.

  • La triche était omniprésente. En l'absence de serveur faisant autorité, il fallait faire confiance à un client, l'hôte, pour les résultats des matchs. Comme le décrit Tibi, les résultats « pouvaient être usurpés sur ce client et la triche était omniprésente en multijoueur ». Dans un jeu de combat compétitif, c'est le moyen le plus rapide de perdre les joueurs les plus engagés.

  • Désynchronisation des matchs. Selon les termes du studio, les « problèmes de désynchronisation » remontaient directement à la « topologie de pair à pair » antérieure à la version 5.0.0. Maintenir une simulation physique synchronisée entre pairs est l'un des problèmes les plus complexes du réseau multijoueur, et le P2P obligeait Tibith à s'y confronter à chaque match.

  • Le ping était extrêmement inégal. Tibi souligne une « différence massive dans le ping des joueurs ». Sans serveur neutre entre les joueurs, les matchs associaient régulièrement des personnes ayant des latences très différentes, de sorte que le combat fluide d'un joueur était un calvaire de décalage pour un autre.

  • Les joueurs devaient choisir une région. Le mode multijoueur exigeait des joueurs qu'ils choisissent eux-mêmes leur région de serveur avant de pouvoir jouer ensemble. Tibi cite ce problème parmi d'autres : « les joueurs doivent choisir leur propre région de serveur pour pouvoir jouer les uns contre les autres dans la même région ».

La Solution

Edgegap a abordé la migration sur trois fronts, dans l'ordre de l'expérience d'un joueur.

Matchmaking

Le flux précédent demandait aux joueurs de choisir une région de serveur avant de pouvoir être regroupés avec d'autres joueurs à proximité. Le système de Matchmaking d'Edgegap supprime cette étape, en regroupant les joueurs par ping et en attribuant le match à un serveur dédié déployé le plus près d'eux. Comme le dit Tibi, ne pas avoir besoin d'une région choisie par le joueur dans le flux est « incroyable », car les joueurs peuvent désormais « [...] simplement appuyer sur le bouton Combat et jouer contre n'importe qui dans le monde ».

Le Matchmaking est également l'endroit où Tibith gère ce qui se rapproche le plus de l'exploitation en direct (live-ops). Comme il est entièrement géré et configurable, les règles de Matchmaking peuvent être ajustées en production sans redéployer le jeu, et le Matchmaking redémarre assez rapidement pour permettre des itérations en temps réel. Associer par ping, ajuster les délais d'expansion, remodeler les paliers de classement : tout se fait directement en production.

« Le Matchmaker fourni par Edgegap est incroyable, d'autant plus que je peux faire correspondre par ping et aussi l'ajuster sans avoir besoin de redéployer quoi que ce soit, et il redémarre très rapidement. C'est comme du mini live-ops. J'adore ajuster les expansions et les paliers de classement directement en production. » - Tibi Tircomnicu, Directeur, Tibith Ltd

Intégration et Pipeline de Production

Tout cela devait être intégré et exploité par le studio lui-même. Tibith exécute l'intégralité de la suite Edgegap dans Unity, et l'intégration n'a pas entravé le développement du jeu. L'envoi d'une version serveur depuis l'éditeur vers la production est si fluide que le pipeline ne devient jamais le projet.

« L'ensemble du processus d'intégration et d'exécution de la suite Edgegap dans Unity est extrêmement fluide et sans friction. En tant que développeur solo, c'est tout simplement incroyable. » - Tibi Tircomnicu

Serveurs Dédiés Faisant Autorité

C'est le changement qui a sauvé le jeu. Le pair à pair plaçait le match sur les appareils des joueurs et faisait confiance à l'un d'entre eux, l'hôte, pour l'issue de la partie. Edgegap héberge à la place un serveur dédié sans tête (headless) faisant autorité, de sorte que le serveur exécute la simulation physique et que les clients affichent uniquement ce qu'il transmet.

Ce seul changement résout les deux problèmes qui importaient le plus à Tibith. Le serveur faisant autorité, les résultats des matchs ne peuvent plus être falsifiés sur un client, et la triche qui s'était propagée dans la version en pair à pair s'arrête là. Comme un seul serveur exécute la physique pour tous les participants au match, la désynchronisation qui affectait le P2P disparaît. Le résultat est un jeu de combat compétitif qui est enfin équitable par conception, et non par correctif.

« Héberger un serveur sans tête faisant autorité rend le jeu équitable et sans usurpation possible, ENFIN, haha. Littéralement aucun hacker n'a pu tricher depuis la version 5.0.0. Synchroniser la physique dans les jeux multijoueurs est notoirement difficile, mais faire exécuter la simulation par un serveur faisant autorité alors que les clients ne font que restituer le résultat a toujours été la meilleure approche. » - Tibi Tircomnicu

Les serveurs dédiés permettent également d'éviter un problème spécifique au mobile. Les connexions directes de pair à pair sont fragiles sur les réseaux cellulaires, où le NAT de classe opérateur (carrier-grade NAT) bloque généralement les connexions entrantes dont dépend le P2P (le carrier-grade NAT empêche la redirection de ports et les connexions directes dont ces applications ont besoin). Le routage de chaque match via un serveur dédié hébergé élimine toute cette catégorie d'échecs de connectivité pour les joueurs utilisant des données mobiles.

Il y a ici une dimension de coût qui favorise les titres mobiles en général. Un match mobile rapide et basé sur des sessions a rarement besoin d'un cœur de processeur complet, et le dimensionnement fractionnaire des vCPU d'Edgegap permet aux studios d'exécuter des serveurs dédiés plus petits et mieux dimensionnés plutôt que de payer pour de la capacité inutilisée. Pour les jeux mobiles à gros volume, adapter le serveur au match est ce qui permet de maintenir un hébergement dédié faisant autorité économiquement viable à grande échelle.

Conclusion

Bloody Bastards est un succès mobile avec 10 millions de téléchargements, et depuis la version 5.0.0, il est également prouvé qu'il est équitable. La migration du pair à pair vers les serveurs dédiés d'Edgegap a permis d'assurer que chaque match soit géré par un serveur faisant autorité, mettant fin à la triche et à la désynchronisation inhérentes au P2P. Le Matchmaking d'Edgegap a permis aux joueurs d'accéder à un combat équitable contre n'importe qui dans le monde en un seul clic, sans avoir à choisir de région.

C'est exactement ce que l'infrastructure multijoueur moderne est censée faire : exécuter des serveurs dédiés faisant autorité et un Matchmaking de production pour un jeu joué par des millions de personnes, se faire discrète et laisser le jeu triompher.

Intégrer Edgegap facilement en quelques minutes

Commencez l'intégration maintenant!

Commencez l'intégration maintenant!