Actualités / Jeux

À l’intérieur de la technologie – Résoudre le matchmaking sur Roblox

À l’intérieur de la technologie – Résoudre le matchmaking sur Roblox

À l’intérieur de la technologie est une série de blogs qui va de pair avec notre Podcast des discussions techniques. Ici, nous approfondissons un défi technique clé que nous relevons et partageons les approches uniques que nous adoptons pour y parvenir. Dans cette édition de À l’intérieur de la technologienous avons discuté avec le directeur technique du groupe Growth, Ivan Marcin, pour en savoir plus sur le matchmaking sur Roblox.


À quels défis techniques résolvez-vous ?

Matchmaking crée les services qui associent les utilisateurs de Roblox à un serveur d’expérience dans le processus de jointure. Lorsqu’une personne souhaite visiter une expérience Roblox, nous examinons des milliers de points de données provenant de plusieurs instances du moteur Roblox et les classons pour obtenir cette correspondance. Roblox est unique car les personnes et les lieux changent constamment, et le système que nous construisons doit tenir compte de ces fluctuations.

Pour ce faire, nous devons développer les technologies permettant de résoudre deux défis essentiels pour maximiser la satisfaction des utilisateurs. La première consiste à déterminer comment suivre et classer les endroits vers lesquels nous mettons les gens en contact en temps réel. La seconde consiste à optimiser le jumelage pour une efficacité à grande échelle. Ce système hybride doit faire correspondre nos millions d’utilisateurs simultanés à des expériences avec une latence minimale tout en orchestrant les instances du moteur Roblox sur notre flotte de centres de données périphériques. C’est ce qui génère un engagement maximum.

Le processus comporte de nombreuses complexités, mais un bon exemple d’un défi particulier est ce que l’on appelle le « problème du troupeau tonitruant ». C’est alors que nos systèmes connaissent des pics de charge massifs sur une courte période de temps. Par exemple, lorsque des millions de personnes tentent de participer à une expérience populaire en même temps un samedi matin.

Dans ces cas-là, nous pouvons assister à une multiplication rapide par 10 des demandes. Cette augmentation soudaine de la pression met nos systèmes à rude épreuve et, dans le passé, ce type d’événements avait fait tomber la plateforme. Mais désormais, de nombreuses expériences Roblox proposent ce type d’événement spécial, de version limitée ou de mise à jour. Bien que cela augmente l’engagement, cela nous oblige également à être prêts à affronter des troupeaux tonitruants réguliers.

Le problème du troupeau tonitruant est-il quelque chose que d’autres réseaux sociaux et plateformes ont ?

N’importe quelle plateforme peut faire face à une soudaine augmentation massive du nombre d’utilisateurs. Mais c’est particulièrement difficile pour nous en raison de notre taille. Un lancement d’objet limité peut n’être qu’un événement ponctuel pour une expérience, mais sur Roblox, il existe des millions d’expériences et beaucoup ont des événements populaires comme ceux-ci. Ainsi, pour Roblox, les incidents de troupeau tonitruants ne sont pas rares, isolés ou prévisibles. Ils peuvent survenir à tout moment dans n’importe laquelle de nos expériences, et nous devons être prêts. Nous avons renforcé le matchmaking et d’autres systèmes pour qu’ils soient plus dépendants de ces modèles.

Quelles sont certaines des solutions innovantes que nous construisons pour relever ces défis ?

Nous devions créer un système de recherche et de recommandation personnalisé qui indexe constamment les expériences Roblox et y met en relation les personnes en temps réel.

Pour envoyer les utilisateurs au meilleur endroit et gérer les troupeaux tonitruants à tout moment, n’importe où dans Roblox, le système prend en compte des entrées telles que l’état des utilisateurs, leur emplacement, la latence et d’autres propriétés du joueur. Il doit également suivre et actualiser l’état de toutes les expériences Roblox toutes les quelques secondes.

À partir de là, nous devons générer ces recommandations de matchs en temps réel. Avec de nombreux systèmes de mise en relation traditionnels, les utilisateurs se connectent et attendent dans un lobby virtuel que le jeu soit lancé. Cela peut prendre plusieurs minutes, mais sur Roblox, nous devons envoyer les gens vers les bonnes expériences dès la seconde où ils cliquent sur le bouton Rejoindre.

Pour ce faire, il faut créer un système d’expérience qui réindexe nos données toutes les quelques secondes. Réaliser cela à grande échelle constitue un défi majeur, car nous ne pouvons pas utiliser les techniques standards des systèmes distribués, comme s’appuyer uniquement sur la mise en cache, pour gérer les pics de charge. Au lieu de cela, nous nous sommes appuyés sur la création d’un système d’indexation personnalisé. Chaque instance du moteur Roblox envoie constamment des données dans ce système. Toute demande de participation à une expérience analyse les propriétés de chaque lieu actif, les classe dans plusieurs index et recommande l’endroit où envoyer l’utilisateur en fonction de ce qui se passe à ce moment précis.

Quels sont les principaux enseignements tirés de ce travail technique ?

L’un des principaux enseignements tirés de ce travail technique est que nous devons considérer les choses dans une perspective équilibrée. Nous avons travaillé dur pour améliorer la fiabilité de notre plateforme mais nous développons également de nouvelles fonctionnalités qui amélioreront l’expérience utilisateur sur le long terme. C’est comme un pendule qui oscille d’avant en arrière, car le changement est constant. Nous devons être capables d’apprendre, de nous adapter et de déterminer ce que nous pouvons faire à court terme tout en construisant pour le long terme.

Prenons, par exemple, la manière dont nous avons géré le problème du troupeau. Notre communauté de développeurs a réalisé qu’elle pouvait tirer parti du battage médiatique du week-end pour attirer les utilisateurs vers leurs expériences. Cela a amené de nombreuses personnes à participer aux expériences le samedi matin. Nous avons donc dû modifier nos plans d’ingénierie, car ce défi de mise à l’échelle n’était pas quelque chose qui pouvait être facilement résolu. Lorsque le contenu est statique, vous résolvez ce problème en ajoutant des couches de mise en cache et en provisionnant la capacité pour une utilisation maximale. Mais la nature en temps réel de nos systèmes impliquait de réorganiser nos systèmes d’indexation et d’analyse pour diviser les recherches et étendre notre simultanéité.

Selon vous, quelle valeur de Roblox correspond le mieux à la façon dont vous et votre équipe abordez les défis techniques ?

Respecter la communauté correspond le mieux à la façon dont notre équipe relève les défis techniques. Notre communauté est composée à la fois d’utilisateurs et de créateurs qui font des expériences et poussent nos exigences techniques. Les deux sont tout aussi importants. Ainsi, lorsque nous modifions quelque chose, nous devons réfléchir très attentivement à l’impact que cela aura sur tout le monde.

Par exemple, si nous envisageons de modifier quelque chose comme les API qui ont un impact sur la téléportation, nous devons comprendre comment cela affectera à la fois les utilisateurs et les développeurs. Nous passons beaucoup de temps à réfléchir à la manière d’amener les gens à jouer au bon jeu, mais également à la manière de donner aux développeurs plus d’options et de contrôles. Nous contactons régulièrement les développeurs pour réfléchir avec eux à de nouvelles fonctionnalités.

Qu’est-ce qui vous passionne le plus dans la direction que prennent Roblox et votre équipe ?

Trois choses. Premièrement, je suis impressionné par notre formidable croissance. Le deuxième est le potentiel de création et d’innovation de Roblox : les gens proposent constamment de nouvelles idées et expériences, ce qui nous pousse également à être créatifs sur la manière d’adapter cette créativité. Troisièmement, l’IA/ML est en plein essor et Roblox est à l’avant-garde de cette vague. Par exemple, nous intégrons davantage de ML dans le matchmaking et l’IA générative d’autres manières uniques et avant-gardistes chez Roblox. C’est vraiment excitant.