EOS Lobbies contre Sessions, et comment ajouter des serveurs dédiés

Quelles sont les salles EOS par rapport aux sessions EOS, et comment ajouter des serveurs de jeux dédiés aux salles EOS ?
Quelles sont les salles EOS par rapport aux sessions EOS, et comment ajouter des serveurs de jeux dédiés aux salles EOS ?
Quelles sont les salles EOS par rapport aux sessions EOS, et comment ajouter des serveurs de jeux dédiés aux salles EOS ?

Principales informations

Principales informations

Principales informations

  • EOS Lobbies créent des groupes de joueurs persistants et en temps réel conçus pour les jeux peer-to-peer, tandis que les Sessions agissent en tant que conteneurs logiques légers sans fonctionnalités intégrées.

  • Les lobbies incluent le chat vocal, la migration de l'hôte et les contrôles du propriétaire, mais ne peuvent pas directement prendre en charge les serveurs dédiés et manquent donc de leur sécurité – sauf s'ils sont combinés avec l'orchestration d'Edgegap.

  • Les sessions peuvent lancer des serveurs dédiés sans nécessiter d'hôte joueur, mais manquent des fonctionnalités plus riches trouvées dans les lobbies.

  • En utilisant le Matchmaking d'Edgegap, les développeurs peuvent associer les EOS Lobbies avec des serveurs dédiés, permettant un matchmaking basé sur la latence, les compétences, la région ou des attributs personnalisés (tout cela fait défaut au EOS Matchmaking). L'ajout de serveurs dédiés assure la sécurité des joueurs et la protection contre les tricheurs et les hackers.

  • Un flux d'intégration complet existe (c'est-à-dire, authentification, création de lobby, formation de groupe, matchmaking, déploiement, complément, et démantèlement de match) permettant aux développeurs de faire fonctionner des sessions multijoueurs évolutives et sécurisées avec EOS + Edgegap.

Les services en ligne d'Epic (« EOS ») sont la solution d'Epic Games pour créer une connexion persistante entre les joueurs afin de partager l'« état du joueur » avec des mises à jour en temps réel.

Plus spécifiquement dans le contexte de l'architecture des jeux multijoueurs, les lobbies sont utilisés pour regrouper les joueurs avant de déployer un serveur de jeu traditionnellement hébergé par les joueurs (c'est-à-dire de pair à pair, souvent surnommé "P2P"). Les serveurs hébergés par les joueurs ont prouvé qu'ils introduisaient des problèmes avec les tricheurs et les pirates.

En termes de flux des utilisateurs, cela fonctionne ainsi :

  1. D'abord, les joueurs doivent créer un lobby, devenant ainsi à la fois le premier membre et le propriétaire du lobby.

  2. Ensuite, le joueur (ou le jeu) rend le lobby « disponible » pour que d'autres joueurs puissent le rejoindre. Il peut être rendu « rejoignable » soit par :

    • Un système d'invitation directe ou;

    • Le plus souvent, « découvrable » via une fonctionnalité de navigateur de serveurs.

EOS est principalement utilisé comme solution principale de backend pour Unreal Engine, tel qu'Unreal 5, dont l'intégration est disponible dans sa documentation.

-> Traditionnellement, les lobbies EOS ne peuvent pas être utilisés pour des serveurs dédiés.

Heureusement, la plateforme d'Edgegap permet d'utiliser les lobbies EOS avec un matchmaking basé sur la logique et des serveurs dédiés (voir ci-dessous comment faire).

Lobbies EOS vs Sessions

Souvent confondus l'un avec l'autre, EOS offre à la fois des « lobbies » et des « sessions ». Ils sont similaires par nature et, pour ajouter à la confusion, partagent de nombreuses fonctionnalités.

Une analyse complète des lobbies et des sessions est disponible dans la documentation EOS.

Comparaison en face à face

La principale différence entre les lobbies EOS et les sessions est que :

  • Les sessions n'ont pas de fonctionnalités intégrées ; elles ne sont que la « logique » pour maintenir le compte des joueurs précis pour la session et empêchent d'autres joueurs de tenter de rejoindre la session lorsqu'elle est à pleine capacité. Les sessions sont gérées par le développeur et peuvent être utilisées pour déployer un serveur dédié sans aucun joueur présent.

  • Les lobbies ont des droits de voix, de migration de l'hôte et d'administration du propriétaire. Cependant, ils sont gérés via le backend d'EOS et ne peuvent être créés que par un joueur (ce qui les rend plus adaptés pour les jeux hébergés par les joueurs).

Ainsi, bien que les lobbies soient plus adaptés pour les jeux multijoueurs en réseau de pair à pair, comme le note Epic Games, parfois le réseau d'un joueur est restrictif et ne permet pas à tout le trafic de passer par son pare-feu. Cela peut parfois causer des problèmes de connexion réseau pour les joueurs dans les lobbies. Ce qui va à l'encontre de l'utilisation prévue des lobbies.

Fonctionnalités partagées entre les lobbies EOS et les sessions

Les lobbies et les sessions partagent ces fonctionnalités :

  • Attributs fixes et attributs d'utilisateur que vous pouvez peupler pour répondre au mieux aux besoins de votre jeu.

  • Les joueurs peuvent rechercher un lobby ou une session par les attributs fixes et d'utilisateur que vous avez marqués comme publics.

  • Les joueurs déjà présents dans le lobby ou la session peuvent inviter d'autres joueurs à les rejoindre.

  • Les joueurs peuvent rejoindre le lobby de présence ou la session de présence dans laquelle se trouve un ami.

  • Les joueurs peuvent rejoindre plusieurs lobbies et sessions en même temps.

Fonctionnalités des lobbies EOS

  • Intégration du chat vocal. Voir EOS Lobby Voice Communications.

  • Migration de l'hôte: le propriétaire peut transférer la propriété lorsqu'il quitte ou si sa connexion est perdue.

  • Administration du propriétaire: Le propriétaire peut retirer (expulser) des joueurs du lobby.

Fonctionnalités des sessions EOS

Aucune fonctionnalité supplémentaire n'est disponible dans les sessions au-delà des fonctionnalités partagées mentionnées ci-dessus.

Quand utiliser les lobbies EOS

Utilisez un service de lobby si la conception de votre jeu nécessite de définir des préférences de matchmaking contrôlées par les joueurs (par exemple, choix du personnage, difficulté, carte, etc.). Au fur et à mesure que les joueurs rejoignent et quittent le Lobby, ils mettent également à jour le groupe de matchmaking pour se préparer à trouver une correspondance plus tard.

Voici les principaux facteurs de décision que vous devriez considérer :

Conception du jeu – Fonctions / Exigences

Lobby pré-match (Lobbies EOS)

Matchmaking (avec logistique)

Inviter des amis à jouer avec moi

Modifier mes préférences joueur/match

Voir les préférences des autres membres du lobby

Stocker et gérer des données clés-valeurs personnalisées

Notifier les membres du groupe que le joueur est prêt à jouer

Afficher la progression du matchmaking et trouver une correspondance

Obtenir une assignation d'équipe pour joueur/groupe

Récupérer les détails de connexion du serveur de jeu

Les Lobbies EOS et le Matchmaker d'Edgegap

Edgegap et EOS s'intègrent parfaitement pour offrir un ensemble de fonctionnalités riches pour jouer ensemble avec des amis en ligne.

Diagram of EOS integration with Edgegap's matchmaking (with logic) to enable any multiplayer game using EOS lobby to deploy dedicated game servers

1. Prérequis d'intégration : Authentification (Sécurité) & Liste d'amis

Nous recommandons une authentification à trois niveaux pour une sécurité maximale :

  • les clients s'authentifient avec le DRM d'Epic Online Services pour prévenir le piratage,

  • les clients s'authentifient avec le matchmaker d'Edgegap pour atténuer les attaques par force brute,

  • les serveurs vérifient l'identité du client par rapport aux services en ligne d'Epic pour empêcher l'usurpation.

Ensuite, utilisez l'Interface d'amis Epic Online Services (EOS) pour récupérer, gérer et vous abonner aux événements pour la liste d'amis d'un joueur connecté à votre jeu (ou utilisateur d'une application logicielle).

2. Lobbies EOS

En utilisant l'Interface de Lobby, vos joueurs peuvent créer, rejoindre, quitter et gérer des lobbies.

Le lobby et chaque membre peuvent avoir des attributs spécifiques à l'application, clé-valeur, pris en charge par le EOS_Lobby_Attribute type de données. Ces attributs doivent être représentés sous forme de données numériques, de chaîne ou booléennes. La structure de données EOS_Lobby_Attribute contient cette information. Les lobbies prennent également en charge des fonctionnalités adjacentes telles que la migration de propriété ou Lobby VoIP.

Une fois le lobby assemblé et prêt pour le matchmaking, le propriétaire du lobby crée un Groupe dans le matchmaker Edgegap. Le propriétaire enregistre ensuite l'ID de Groupe retourné comme EOS_Lobby_Attribute que les autres membres du lobby peuvent utiliser pour créer une adhésion et rejoindre le groupe.

Consultez l'exemple officiel de Lobby Epic Online Services pour inspiration.

Alternative : Invitations d'amis personnalisées

Les lobbies sont-ils trop compliqués pour votre jeu ? Vous pouvez également utiliser des invitations personnalisées pour ajouter vos amis Epic directement dans le Groupe de matchmaking, en incluant l'ID de Groupe dans votre invitation envoyée par le propriétaire du groupe. Chaque invité doit créer son adhésion de Groupe et télécharger ses attributs.

Vous pouvez passer au Trouver un Match.

3. Matchmaking Edgegap

Le service de Matchmaking d'Edgegap complète votre catalogue EOS en permettant aux joueurs de :

  • trouver d'autres joueurs selon des critères tels que la région, la latence, la compétence ou les paramètres de jeu ;

  • rechercher des serveurs à rejoindre en fonction de la capacité disponible (ou du ping, région, compétence, carte, mode) ;

  • démarrer un nouveau serveur si les serveurs existants sont pleins ou ne satisfont pas aux critères des joueurs.

Trouver un Match

Chaque membre (et propriétaire) définit ses attributs de matchmaking lors de la création de son adhésion (ou groupe). Les attributs incluent généralement, mais sans s'y limiter, des données de joueur telles que :

  • mesure de latence du ping beacon - en utilisant les balises de ping Edgegap,

  • évaluation des compétences (ELO/MMR/bracket/league) - avec EOS Stats,

  • drapeaux de modération (piscines de tricheurs séparées) - avec EOS Sanctions et EOS Reports,

  • indicateurs de progression - avec EOS Stats,

  • préférences de carte - avec Attributs de membre de lobby (voir ci-dessus),

  • niveau de difficulté de jeu choisi (jeux coopératifs) - avec Attributs de Lobby (voir ci-dessus).

Une fois que tous les joueurs ont configuré leurs adhésions et se sont marqués prêts dans le Groupe, le matchmaking commence automatiquement. Les joueurs reçoivent des mises à jour au fur et à mesure qu'ils avancent en consultant leur adhésion toutes les quelques secondes. Une fois le serveur assigné, les joueurs se connectent et commencent à jouer.

Remplacer les partants

Fonctionnalité optionnelle

Utilisez Edgegap Backfill pour demander à ce que des joueurs supplémentaires soient ajoutés à un match en cours. Cela peut aider à réduire le coût de votre serveur (en raison d'un taux de remplissage de match plus élevé) et améliore l'expérience sociale (généralement préférée par rapport au jeu contre des bots).

Conclusion du match

Lorsque le match se termine, utilisez Epic Online Services pour télécharger les données de replay du match, ou téléchargez un suivi d'erreurs avec les données des joueurs EOS depuis votre serveur de jeu, ou mettez à jour vos Stats EOS.

Téléchargez les données de traces et de journaux.

Si vous souhaitez trouver un nouveau match avec votre lobby actuel, créez simplement un nouveau Groupe et redémarrez depuis le début.

Intégration des lobbies EOS – En détail

Voici le processus d'intégration étape par étape aux lobbies EOS en utilisant Edgegap de notre documentation. Assurez-vous d'utiliser cette version, car elle est mise à jour plus fréquemment.

Ce guide vous montrera comment intégrer Edgegap pour fonctionner avec des lobbies EOS dans votre projet de jeu Unreal. Certaines étapes nécessiteront que vous envoyiez des requêtes à notre API en utilisant un jeton, et les commandes curl fournies ci-dessous vous permettront de prévisualiser chacune de leurs réponses afin que vous puissiez déterminer comment les gérer dans votre code. Lors de l'utilisation du jeton dans vos requêtes, assurez-vous de conserver le mot-clé token.

Vous devrez également avoir déjà configuré une version d'application sur notre plateforme pour notre projet. Dans ce cas, nous recommandons d'utiliser le plugin Unreal d'Edgegap pour accélérer le processus de test. Pour plus d'informations sur le plugin, vous pouvez lire notre documentation ici.

Avertissement : Par mesure de sécurité, il n'est pas recommandé que le propriétaire du lobby EOS envoie directement des requêtes à l'API d'Edgegap dans un environnement de production, en raison de l'accès du client au jeton de l'API. Vous devriez plutôt utiliser un service séparé pour gérer ces requêtes.

1. Obtenir et stocker l'IP publique des joueurs

Pour commencer, chaque joueur qui rejoint un lobby - y compris le Propriétaire du Lobby - a besoin d'obtenir leur IP publique et de la stocker comme une propriété de membre de lobby.

curl --location --request GET 'https://api.edgegap.com/v1/ip' \

--header 'Authorization: [EDGEGAP_API_TOKEN]'

2. Créer un déploiement

Une fois que le Propriétaire du Lobby décide que le match est prêt à commencer, une requête doit être envoyée pour créer un nouveau déploiement sur Edgegap, en utilisant les IP publiques stockées.

curl --location --request POST 'https://api.edgegap.com/v1/deploy' \

--header 'Content-Type: application/json' \

--header 'Authorization: [EDGEGAP_API_TOKEN]' \

--data-raw '{

    "app_name": "[EDGEGAP_APP_NAME]",

    "version_name": "[EDGEGAP_APP_VERSION]",

    "ip_list": [

        "[LOBBY_MEMBER_IP]"

}'

Après cela, le Propriétaire du Lobby devra continuer à consulter le déploiement, en utilisant l'identifiant de requête fourni dans la réponse à la création du déploiement. Une fois que la réponse a le current_status du déploiement défini sur READY, le Propriétaire du Lobby devra définir les valeurs d'IP et de port du déploiement comme propriétés du Lobby EOS.

curl --location --request GET 'https://api.edgegap.com/v1/status/[REQUEST_ID]' \

--header 'Authorization: [EDGEGAP_API_TOKEN]'

3. Connectez-vous au déploiement

Lorsque les joueurs reçoivent la notification que les valeurs d'IP et de port ont été attribuées, ils peuvent les comparer avec le cache client et les utiliser pour se connecter au serveur pour jouer le match.

4. Terminer le match et le déploiement

Une fois le match terminé, le Propriétaire du Lobby annulera les valeurs d'IP et de port des propriétés EOS du Lobby, ce qui notifiera à tout le monde de se déconnecter du serveur. Si l'application est configurée pour injecter des variables d'environnement, elles peuvent être utilisées pour terminer le déploiement de l'intérieur à ce moment.

Pour terminer le déploiement depuis l'extérieur du serveur, une requête comme la commande curl montrée ci-dessous peut être utilisée à la place.

curl --location --request DELETE 'https://api.edgegap.com/v1/stop/[REQUEST_ID]' \

--header 'Authorization: [EDGEGAP_API_TOKEN]'

Si les joueurs restent dans le lobby, le Propriétaire du Lobby peut alors répéter les étapes à partir de la demande d'un nouveau déploiement pour initier un nouveau match avec les mêmes personnes.

Écrit par

l'équipe Edgegap

Intégrer Edgegap facilement en quelques minutes

Intégrer Edgegap facilement en quelques minutes

Intégrer Edgegap facilement en quelques minutes