Relais WebRTC pour jeux multijoueurs

Les jeux multijoueurs nécessitent une faible latence pour offrir des expériences de jeu sans interruption. Traditionnellement, les backends de jeu se sont appuyés sur des serveurs centralisés ou des réseaux pair-à-pair pour la connectivité des joueurs. Cependant, cela a de lourdes limitations et de graves problèmes de sécurité et de confidentialité qui limitent son utilisation pour les jeux multijoueurs commerciaux.

Les relais WebRTC (Web Real-Time Communication) sont une alternative, notamment pour les petits jeux multijoueurs.

Dans cet article, nous allons explorer comment fonctionnent les relais WebRTC, pourquoi ils sont utilisés, pourquoi ils peuvent ne pas convenir aux jeux commerciaux à grande échelle, et une solution alternative.

Comment fonctionnent les relais WebRTC pour les jeux multijoueurs

WebRTC est un protocole qui facilite les connexions pair-à-pair (P2P), permettant le transfert en temps réel de l'audio, de la vidéo et des données entre les appareils.

Comme tous les relais, les relais WebRTC sont utilisés lorsque qu'une connexion P2P directe entre les joueurs n'est pas réalisable en raison de restrictions réseau comme les pare-feux ou les NAT (Traducteurs d'adresses réseau). Dans ces cas, les données sont relayées via un serveur, agissant comme un intermédiaire pour diriger le trafic entre les joueurs.

Dans les jeux multijoueurs, ce système permet le transfert de données de jeu entre les joueurs sans avoir besoin d'un serveur de jeu centralisé. Au lieu de diriger tout le trafic via un seul serveur de jeu, les relais WebRTC déchargent une partie de cette responsabilité en permettant une communication directe, tout en utilisant des serveurs pour les connexions difficiles.

L'architecture du jeu doit être adaptée pour fonctionner avec WebRTC, y compris la gestion des serveurs relais et le traitement des cas particuliers où les connexions P2P sont impossibles​.

Pourquoi utiliser WebRTC pour les backends de jeux multijoueurs ?

  1. Efficacité des coûts : Pour les petits jeux avec peu de joueurs, WebRTC peut être une solution économique, réduisant le besoin de serveurs de jeu dédiés en déchargeant le trafic vers des réseaux P2P.

  2. Support multiplateforme : WebRTC prend en charge diverses plateformes, permettant une connectivité fluide entre différents appareils, qu'ils soient sur un bureau, un mobile ou une console.

  3. Confidentialité & NAT : Comme une seule adresse IP publique est souvent partagée entre plusieurs utilisateurs (voir "Qu'est-ce que le réseau pair-à-pair dans les jeux multijoueurs"), les relais protègent ces informations pour protéger l'IP du joueur et le serveur dirige les données de jeu entre les joueurs, contournant les pare-feux et les barrières NAT pour garantir une communication fluide.

Pourquoi les relais WebRTC ne devraient pas être utilisés pour les jeux multijoueurs commerciaux

Bien que WebRTC offre plusieurs avantages, il existe des inconvénients significatifs lors de son déploiement à des jeux multijoueurs commerciaux plus grands :

  1. Les coûts cachés de développement & d'infrastructure : Construire et maintenir des serveurs relais personnalisés pour WebRTC est coûteux. Des développeurs tels que People Can Fly (dans leur jeu Outriders, lors de leur conférence Unreal) ont dû modifier considérablement le code du jeu pour faire fonctionner les relais WebRTC dans le moteur Unreal. Cette infrastructure nécessite des coûts permanents en hébergement, tests et optimisation​.

  2. Limitations de performance : Malgré la réduction des coûts serveur, les relais WebRTC ne fournissent pas toujours de meilleures performances que les serveurs centralisés traditionnels. Par exemple, les relais EOS (Epic Online Services) ont été comparés aux relais WebRTC, et il n'est pas clair si ces derniers sont plus efficaces pour gérer le trafic de jeu à grande échelle.

  3. Sécurité et contrôle : Relayer des données de jeu sensibles à travers des serveurs externes peut poser des risques de sécurité. Les serveurs centralisés offrent un meilleur contrôle sur les données de jeu et les interactions des utilisateurs. Même s'ils sont plus sécurisés que le réseau P2P, un trafic de relais WebRTC mal implémenté peut être intercepté avec des outils tels que Fiddler.

  4. Complexité accrue : Personnaliser votre jeu pour fonctionner avec WebRTC nécessite une compréhension approfondie des protocoles réseau, des implémentations de code personnalisées et des tests extensifs, ce qui peut être un obstacle pour les grands studios de jeux essayant de sortir à temps.

La solution alternative : Relais commerciaux

Pour les développeurs cherchant une solution gratuite, Epic Online Services (EOS) et Steamworks proposent des relais gratuits pour les développeurs. Cependant, ces serveurs relais gratuits introduisent une latence supplémentaire en ajoutant une étape supplémentaire pour les paquets de jeu, et avec des options de relais limitées, les joueurs peuvent être dirigés vers des serveurs éloignés, causant une latence inacceptable pour les jeux commerciaux.

De plus, ces relais gratuits peuvent être vulnérables dans les jeux pair-à-pair, car des outils comme Fiddler permettent un accès facile aux données de lobby, exposant les informations privées des joueurs en texte clair. Cette vulnérabilité de sécurité peut être exploitée avec un effort minimal, ce qui permet à quiconque de collecter et d'abuser des données des joueurs.

Pour les développeurs cherchant une solution évolutive, Edgegap propose une alternative aux relais WebRTC avec son infrastructure de relais distribuée. Les relais distribués d'Edgegap utilisent un réseau de nœuds distribués situés à proximité des joueurs, garantissant que les données de jeu sont relayées par le chemin le plus efficace possible. Cela réduit considérablement la latence tout en offrant une scalabilité supérieure pour les jeux multijoueurs commerciaux.

La solution d'Edgegap est particulièrement attrayante pour les jeux qui souhaitent décharger le fardeau de la construction d'une infrastructure personnalisée.

Au lieu de gérer vos propres relais WebRTC, les nœuds distribués d'Edgegap sélectionnent automatiquement le serveur relais optimal pour chaque session, réduisant ainsi le besoin d'un investissement infrastructurel significatif. Cela garantit de meilleures performances, notamment dans les régions où les connexions P2P peuvent être peu fiables.

Conclusion

Les relais WebRTC peuvent être une solution efficace pour les petits jeux multijoueurs, offrant une latence réduite et une infrastructure simplifiée.

Cependant, ils présentent des inconvénients significatifs en termes de coûts de développement et d'exploitation, de complexité et de scalabilité, les rendant moins adaptés aux jeux commerciaux à grande échelle.

Pour les développeurs cherchant à évoluer efficacement tout en maintenant une faible latence, la solution de relais distribués d'Edgegap offre une alternative robuste, combinant les avantages de la communication à faible latence de WebRTC avec la scalabilité d'une infrastructure distribuée.

---

Pour plus d'informations sur la comparaison entre le réseau pair-à-pair, les relais et les serveurs autoritaires (souvent appelés serveurs dédiés), consultez notre analyse dédiée sur notre blog.  

---

Les informations ci-dessus proviennent d'une présentation faite par Michal Buras, développeur senior chez Highwire Games, lors de la conférence Live Service Game Summit.

Une version complète de cette conférence peut être trouvée ici : Pair-à-Pair, Relais & Instances de Conteneurs : Une analyse approfondie des ressources de développement, des performances et des problèmes de sécurité pour les jeux multijoueurs

Écrit par

l'équipe Edgegap

Sources et/ou collaboration de contenu avec

Michal Buras, Ingénieur Réseaux Principal chez Highwire Games