Quels sont les serveurs relais pour les jeux multijoueurs ? Un guide sur le réseau pair à pair

Bien souvent invisible pour les joueurs, l'infrastructure de jeu multijoueur qui soutient la connectivité sécurisée des joueurs et la stabilité du jeu est aussi cruciale que le gameplay lui-même.

Un composant clé de cette infrastructure qui est souvent négligé est le serveur de relais.

Dans cet article, nous allons examiner le rôle des serveurs de relais dans le réseau pair-à-pair, et aborder les spécificités des services de relais de base, tels que Unity, Steam, Epic Online Services et leur cas d'utilisation, ainsi que où et quand des services de relais améliorés sont préférables, tout en touchant au sujet plus large de l'hébergement de serveurs de jeux et pourquoi les serveurs tombent parfois hors ligne.

Qu'est-ce qu'un serveur de relais dans les jeux multijoueurs ?

En résumé, dans le contexte des jeux en ligne, un serveur de relais élève et résout les problèmes courants de pair-à-pair en agissant comme un serveur « intermédiaire » qui transmet les communications entre les joueurs.

En d'autres termes, les relais agissent comme des ponts (ou des routeurs/proxies), relayant des messages entre des pairs qui ne peuvent pas établir de connexions directes. En relayant des données entre les joueurs, ils jouent un rôle crucial dans l'établissement de connexions entre des joueurs qui peuvent rencontrer des obstacles tels que des pare-feux ou des problèmes de translation d'adresse réseau (NAT). Ces problèmes de NAT sont si courants que des entreprises telles que XBOX ou PlayStation ont des pages de support entières dédiées à ces problèmes. 

Les relais améliorent généralement l'expérience de jeu en réduisant la latence et la perte de paquets, à condition que le serveur de relais lui-même soit robuste, et que le service d'orchestration utilisé par le serveur de relais fonctionne géographiquement par rapport aux joueurs. Sinon, le relais introduira une latence, réduisant potentiellement l'équité entre les joueurs proches du relais et ceux qui ne le sont pas (si l'un des clients de jeu agit en tant que serveur autoritaire).

Comprendre l'architecture pair-à-pair dans le jeu moderne

L'architecture de mise en réseau pair-à-pair est une partie ancrée de la structure backend des jeux multijoueurs. Dans une configuration P2P, l'une des machines des joueurs agit comme le serveur, gérant la logique du jeu et la synchronisation pour tous les participants.

Cette approche réduit souvent les coûts pour les développeurs, car un joueur gère l'hébergement de la partie, et est plus simple à mettre en œuvre. Pour les titres plus petits, ou les studios qui trouvent que les frais d'hébergement sont trop élevés, c'est un excellent choix. Cependant, cela se traduit souvent par une expérience de jeu moins qu'idéale – avec des performances de jeu incohérentes, en particulier si le joueur hôte manque d'une connexion Internet haute vitesse ou d'un matériel adéquat. Pire encore, le P2P peut facilement être abusé par des tricheurs pour manipuler le jeu et par des hackers qui peuvent attaquer vos joueurs, ce qui en fait une solution terrible pour tout studio cherchant à faire du jeu compétitif une stratégie de rétention à long terme pour son jeu, et cela réduira la rétention à long terme car des joueurs très engagés ne percevront probablement pas l'intérêt d'un investissement continu au fil du temps dans le jeu.

Cependant, des titres grands et petits, notamment les jeux indépendants et les AAA, se tournent vers un modèle de serveur de jeu complet ou hybride pour garantir la stabilité et l'équité, qui incorpore des serveurs de jeu autoritaires aux côtés de serveurs de relais.

Techniques de tricherie dans la mise en réseau pair-à-pair

Un défi majeur du P2P est que des acteurs malveillants exploitent les vulnérabilités de l'hébergement P2P, notamment les tricheurs qui ont conçu diverses méthodes pour obtenir un avantage déloyal ou perturber l'expérience de jeu des autres :

  • Interruption de lag: Les tricheurs peuvent intentionnellement introduire des lags pour perturber le flux du jeu. En retardant leur transmission de données, ils peuvent 'geler' le jeu momentanément et effectuer des mouvements sans que les autres joueurs puissent réagir en temps réel.

  • Manipulation des données: Puisque les données de jeu résident sur des clients individuels, un tricheur peut modifier ses données pour se donner une santé infinie, des munitions illimitées, ou même changer sa position instantanément.

  • Visibilité fantôme: Dans les jeux où les joueurs sont censés avoir une visibilité limitée de la carte ou d'autres joueurs, un tricheur pourrait obtenir une visibilité complète, lui donnant un avantage déloyal.

Pourquoi les serveurs de jeux tombent-ils hors ligne ou ferment-ils ?

Le temps d'arrêt des serveurs est toujours une période frustrante pour les joueurs. Cela se produit souvent en raison de maintenance, de mises à jour, de problèmes imprévus ou même de cyberattaques. Dans certains cas, les serveurs de jeux sont définitivement arrêtés, une décision généralement motivée par la diminution de la base de joueurs du jeu, des considérations financières ou la sortie de suites, de nouveaux titres et des ressources limitées du studio.

Service de relais : gratuit ou non ?

Les relais sont des serveurs de jeux utilisés pour aider les joueurs à se connecter sans générer de coût de calcul, ce qui signifie que les joueurs eux-mêmes restent les gardiens pour autoriser les actions du jeu. Ainsi, les serveurs nécessaires sont minimaux. Des entreprises comme Epic, avec Epic Online Services, et Steam avec Steamworks offrent aux développeurs de jeux des relais gratuits lors de l'utilisation de leurs solutions backend.

Bien qu'il s'agisse d'un excellent tremplin, ces services sont extrêmement limités en termes de lieux, et ne sont pas réputés pour être les plus fiables. Voici le détail de pourquoi les services de relais gratuits ne sont pas idéaux pour les jeux produits commercialement :

  • Latence accrue: L'introduction d'un intermédiaire peut potentiellement augmenter la latence du jeu si le serveur de relais est géographiquement éloigné des joueurs. Il est donc crucial de le coupler avec un système d'orchestration automatisé qui déploie des relais les plus proches des utilisateurs. Avec une faible densité de couverture, ces services sont connus pour introduire de la latence.

  • Fiabilité: Si un serveur de relais tombe en panne, il perturbera l'expérience de jeu pour les joueurs connectés. Si tous les relais sont hébergés sur le même fournisseur et qu'une panne survient, tous les joueurs seront déconnectés. Par conséquent, seul un réseau d'orchestration de relais multi-cloud peut garantir une haute fiabilité.

  • Autorité: Cependant, les réseaux de relais ne sont pas des serveurs autoritaires. Ainsi, ils ne peuvent pas remplacer une autorité de serveur central pour des jeux hautement compétitifs et rapides.

L'hébergement de jeux Unity est-il gratuit ?

La réponse simple est non ; l'hébergement de jeux Unity n'est pas gratuit.

Unity propose plusieurs niveaux, y compris certains services gratuits pour débuter, mais les solutions d'hébergement sérieuses pour les jeux multijoueurs entraînent généralement des coûts associés. Ces coûts sont liés à la bande passante, au nombre d'utilisateurs simultanés, au nombre de requêtes et à d'autres variables.

Unity Technologies a introduit plusieurs services pour aider les développeurs à créer des jeux multijoueurs, y compris le service Unity Relay, cependant, il est crucial de noter que le Relay Unity n'est pas gratuit. Bien qu'Unity offre un écosystème solide pour le développement de jeux, y compris des outils pour la création de jeux multijoueurs, des services comme le Relay sont généralement offerts sous un modèle de tarification qui évolue avec l'utilisation.

Le service Relay d'Unity vise à simplifier l'établissement et le maintien des connexions réseau pour les jeux multijoueurs, offrant une solution plus fiable et évolutive que le P2P traditionnel. Les développeurs devraient carefully considérer les coûts d'utilisation de l'Unity Relay, notamment pour les jeux avec de grandes bases de joueurs ou un volume élevé de trafic réseau.

Présentation du réseau de relais : une solution potentielle

Un moyen pratique et facile à intégrer pour contrer certaines des vulnérabilités de l'hébergement P2P est d'utiliser un réseau de relais.

Au lieu de connecter les joueurs directement les uns aux autres, ils se connectent aux serveurs de relais, qui gèrent ensuite la transmission de données entre les joueurs. Ceux-ci sont beaucoup plus faciles à intégrer qu'un serveur autoritaire, moins coûteux à faire fonctionner, et offrent des avantages énormes par rapport à l'hébergement P2P pur.

Les avantages incluent :

  • Protection des adresses IP: Les adresses IP des joueurs sont cachées les uns des autres car ils ne se connectent qu'au serveur de relais. Les relais préviennent les attaques basées sur l'IP et protègent la vie privée des joueurs.

  • Équité dans la qualité de la connexion: Puisque tout le monde se connecte au relais, tous les avantages en matière de réseau (comme être l'hôte dans un scénario P2P) sont neutralisés. Chacun éprouve une qualité de connexion plus cohérente.

  • NAT: Par conception, les relais résolvent les problèmes de connectivité bien documentés de NAT du P2P en agissant comme un intermédiaire entre les utilisateurs pour des connexions fluides et une expérience joueur optimisée. Plus précisément, il surmonte les problèmes de traversée NAT et de restrictions de pare-feu.

  • Potentiel de détection de tricherie: Les serveurs de relais peuvent être équipés d'algorithmes anti-triche qui surveillent les données de jeu en temps réel. Des modèles ou anomalies suspects peuvent être signalés, facilitant ainsi la détection et la dissuasion des tricheurs.

Relais pour les jeux WebGL

Les jeux WebGL sont particulièrement susceptibles aux problèmes liés aux relais traditionnels. Les jeux WebGL tendent à avoir facilement 2 à 5 fois plus de latence car sur WebGL, le websocket ne peut pas traverser directement le NAT, il a besoin d'un serveur de relais (serveur STUN) pour la traduction d'adresse réseau.

Cela renforce encore la nécessité d'un service d'orchestration qui peut aider à surmonter ce défi de latence, comme Edgegap, qui déploie des relais les plus proches des utilisateurs sur un réseau mondial hautement dense pour atténuer ce problème inhérent des jeux multijoueurs WebGL.

Passer de relais à serveurs de jeux autoritaires ?

L'hébergement de serveurs de jeux fait référence à la fourniture d'une infrastructure en ligne pour les jeux multijoueurs. Cela inclut des serveurs dédiés qui fonctionnent 24h/24 et 7j/7, garantissant que les joueurs peuvent se connecter et jouer ensemble, peu importe leur emplacement. L'hébergement peut être géré par les développeurs de jeux eux-mêmes, ou par des entreprises tierces.

Un hébergement de serveurs de jeux efficace est crucial pour les composants en ligne d'un jeu, impactant tout, de la latence à la mise en relation. À mesure que les expériences multijoueurs deviennent plus centrales dans le jeu, la qualité, la fiabilité et l'évolutivité de l'hébergement de serveurs deviennent primordiales tant pour les développeurs que pour les joueurs.

Pour plus de détails sur pourquoi, et quand, des serveurs autoritaires peuvent être mieux adaptés que des relais, consultez notre guide des types de mise en réseau ici.

Conclusion

Comprendre les nuances de l'infrastructure de serveurs de jeu, des serveurs de relais aux solutions d'hébergement, est essentiel pour les développeurs de jeux et la communauté de jeu.

Bien que les services de relais de base puissent offrir des solutions simplifiées, ils comportent leurs coûts et considérations pour votre jeu et l'expérience de vos joueurs.

Un réseau intelligent de relais alimenté par une orchestration automatisée et déployé sur un réseau mondial distribué sans région offre des avantages qui peuvent largement dépasser leurs coûts d'infrastructure et le coût d'opportunité directement corrélés à l'expérience des joueurs.

En savoir plus sur Distributed Relay d'Edgegap, ou directement depuis notre Documentation.

Écrit par

l'équipe Edgegap