Binnen de Tech is een blogreeks die hand in hand gaat met onze Tech Talks-podcast. Hier duiken we verder in een belangrijke technische uitdaging die we aanpakken en delen we de unieke aanpak die we hiervoor volgen. In deze editie van Binnen de Tech, we spraken met technisch directeur Ivan Marcin van de groeigroep voor meer informatie over matchmaking op Roblox.
Welke technische uitdagingen los jij op?
Matchmaking bouwt de services die Roblox-gebruikers matchen met een ervaringsserver tijdens het deelnameproces. Wanneer iemand een Roblox-ervaring wil bezoeken, kijken we naar duizenden datapunten van meerdere Roblox-engine-instanties en rangschikken ze om die match te maken. Roblox is uniek omdat mensen en plaatsen voortdurend veranderen, en het systeem dat we bouwen moet rekening houden met deze schommelingen.
Om dit te doen moeten we de technologieën ontwikkelen om twee uitdagingen op te lossen die essentieel zijn voor het maximaliseren van de gebruikerstevredenheid. De eerste is het bepalen hoe we de plaatsen waar we mensen aan matchen in realtime kunnen volgen en rangschikken. De tweede is het optimaliseren van matchmaking voor efficiëntie op schaal. Dit hybride systeem moet onze miljoenen gelijktijdige gebruikers matchen met ervaringen met minimale latentie en tegelijkertijd Roblox-engine-instances in onze vloot van edge-datacenters orkestreren. Dat is wat zorgt voor maximale betrokkenheid.
Het proces kent talloze complexiteiten, maar een goed voorbeeld van een specifieke uitdaging is wat het ‘donderende kuddeprobleem’ wordt genoemd. Dat is wanneer onze systemen in korte tijd enorme belastingpieken zien. Bijvoorbeeld wanneer miljoenen mensen op zaterdagochtend tegelijkertijd proberen deel te nemen aan een populaire ervaring.
In die gevallen kunnen we een snelle 10x sprong in verzoeken zien. Deze plotseling toegenomen druk zet onze systemen onder druk en in het verleden hadden dit soort gebeurtenissen het platform ten val gebracht. Maar nu hebben veel Roblox-ervaringen dit soort speciale evenementen, beperkte release of update. Hoewel het de betrokkenheid vergroot, dwingt het ons ook om voorbereid te zijn op regelmatig donderende kuddes.
Is het donderende kuddeprobleem iets dat andere sociale netwerken en platforms hebben?
Elk platform kan te maken krijgen met een plotselinge enorme golf van gebruikers. Maar het is voor ons vooral een uitdaging vanwege onze omvang. Een beperkte itemlancering kan slechts een eenmalig evenement voor een ervaring zijn, maar op Roblox zijn er miljoenen ervaringen en velen hebben populaire evenementen zoals deze. Dus voor Roblox zijn donderende kudde-incidenten niet zeldzaam, geïsoleerd of voorspelbaar. Ze kunnen op elk moment tijdens al onze ervaringen gebeuren, en we moeten er klaar voor zijn. We hebben de matchmaking en andere systemen verhard om meer afhankelijk te zijn van deze patronen.
Wat zijn enkele van de innovatieve oplossingen die we ontwikkelen om deze uitdagingen aan te pakken?
We moesten een aangepast opzoek- en aanbevelingssysteem bouwen dat voortdurend Roblox-ervaringen indexeert en mensen in realtime daaraan koppelt.
Om gebruikers naar de beste plek te sturen en de donderende kuddes op elk moment en overal in Roblox aan te kunnen, houdt het systeem rekening met input zoals de status, locatie, latentie en andere spelerseigenschappen van gebruikers. Het moet ook elke paar seconden de status van alle Roblox-ervaringen volgen en vernieuwen.
Van daaruit moeten we deze wedstrijdaanbevelingen in realtime genereren. Bij veel traditionele matchmaking-systemen maken gebruikers verbinding en wachten ze in een virtuele lobby tot het spel wordt gestart. Dat kan enkele minuten duren, maar op Roblox moeten we mensen naar de juiste ervaringen sturen zodra ze op de knop Deelnemen klikken.
Om dit te doen, is het bouwen van een ervaringssysteem nodig dat onze gegevens elke paar seconden opnieuw indexeert. Dit op grote schaal doen is een belangrijke uitdaging, omdat we geen standaardtechnieken voor gedistribueerde systemen kunnen gebruiken, zoals het uitsluitend vertrouwen op caching, om belastingspieken op te vangen. In plaats daarvan vertrouwden we op het bouwen van een aangepast indexeringssysteem. Elke Roblox-engine-instantie pusht voortdurend gegevens naar dit systeem. Elk verzoek om lid te worden van een ervaring scant de eigenschappen van elke actieve plaats, rangschikt deze in meerdere indexen en doet een aanbeveling waar de gebruiker naartoe moet worden gestuurd op basis van wat er op dat exacte tijdstip gebeurt.
Wat zijn de belangrijkste lessen die we kunnen trekken uit dit technische werk?
Een van de belangrijkste lessen die we uit dit technische werk kunnen trekken, is dat we de zaken vanuit een evenwichtig perspectief moeten bekijken. We hebben hard gewerkt aan het verbeteren van de betrouwbaarheid van ons platform, maar we ontwikkelen ook nieuwe functies die de gebruikerservaring op de lange termijn zullen verbeteren. Het is als een slinger die heen en weer zwaait, omdat verandering constant is. We moeten kunnen leren, ons aanpassen en uitzoeken wat we op de korte termijn kunnen doen, terwijl we bouwen voor de lange termijn.
Neem bijvoorbeeld de manier waarop we het probleem van de donderende kudde hebben aangepakt. Onze ontwikkelaarsgemeenschap realiseerde zich dat ze in het weekend de hype konden benutten om gebruikers naar hun ervaringen te lokken. Dit had tot gevolg dat massa's mensen op zaterdagochtend meededen aan ervaringen. We moesten dus onze technische plannen aanpassen, omdat die schaaluitdaging niet gemakkelijk kon worden opgelost. Als inhoud statisch is, kun je dit aanpakken door er caching-lagen aan toe te voegen en door capaciteit te voorzien voor piekgebruik. Maar het realtime karakter van onze systemen betekende dat we onze indexerings- en scansystemen opnieuw moesten ontwerpen om de zoekopdrachten te verdelen en onze gelijktijdigheid te schalen.
Welke Roblox-waarde sluit volgens u het beste aan bij de manier waarop u en uw team technische uitdagingen aanpakken?
Respect voor de gemeenschap past het beste bij de manier waarop ons team technische uitdagingen aanpakt. Onze community bestaat uit zowel de gebruikers als de makers die ervaringen maken en onze technische eisen nastreven. Beide zijn even belangrijk. Dus als we iets veranderen, moeten we goed nadenken over de impact die dit op iedereen heeft.
Als we bijvoorbeeld overwegen om bijvoorbeeld de API's die van invloed zijn op teleporteren te wijzigen, moeten we begrijpen welke gevolgen dit heeft voor zowel gebruikers als ontwikkelaars. We besteden veel tijd aan het nadenken over hoe we mensen de juiste game laten spelen, maar ook hoe we ontwikkelaars meer opties en controles kunnen geven. We nemen regelmatig contact op met ontwikkelaars om samen met hen over nieuwe functies te brainstormen.
Wat boeit je het meest aan waar Roblox en je team naartoe gaan?
Drie dingen. Ten eerste ben ik onder de indruk van onze enorme groei. De tweede is het potentieel van creatie en innovatie op Roblox: mensen komen voortdurend met nieuwe ideeën en ervaringen, en dwingen ons om ook creatief te zijn over hoe we die creativiteit kunnen opschalen. Ten derde is AI/ML in opkomst, en Roblox loopt voorop in deze golf. We integreren bijvoorbeeld verdere ML in matchmaking en generatieve AI op andere unieke en geavanceerde manieren bij Roblox. Het is echt spannend.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- Bron: https://blog.roblox.com/2023/10/inside-tech-solving-matchmaking-roblox/
- : heeft
- :is
- :waar
- $UP
- a
- in staat
- Over
- Account
- over
- actieve
- aanpassen
- toe te voegen
- adres
- invloed hebben op
- AI
- AI / ML
- Lijnt uit
- Alles
- ook
- an
- en
- elke
- overal
- APIs
- benaderingen
- ZIJN
- AS
- At
- poging
- trekken
- terug
- gebaseerde
- BE
- omdat
- geweest
- BEST
- Blog
- zowel
- brainstorm
- bracht
- bouw
- Gebouw
- bouwt
- maar
- by
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- CAN
- Inhoud
- gevallen
- Centra
- uitdagen
- uitdagingen
- uitdagend
- verandering
- veranderende
- Klik
- komst
- gemeenschap
- complexiteit
- gelijktijdig
- Verbinden
- aangezien
- beschouwt
- constante
- permanent
- content
- controles
- kon
- het aanmaken
- Creatieve
- creativiteit
- scheppers
- gewoonte
- snijdend
- gegevens
- datacenters
- data punten
- bepalen
- ontwikkelen
- Ontwikkelaar
- ontwikkelaars
- het ontwikkelen van
- Director
- verdeeld
- gedistribueerde systemen
- duiken
- verdelen
- do
- doen
- beneden
- drives
- gemakkelijk
- rand
- editie
- doeltreffendheid
- engagement
- Motor
- Engineering
- even
- Event
- EVENTS
- Alle
- iedereen
- voorbeeld
- opgewonden
- opwindend
- ervaring
- Ervaringen
- Gezicht
- Voordelen
- weinig
- Figuur
- Voornaam*
- VLOOT
- schommelingen
- Voor
- Krachten
- Voorhoede
- voort
- oppompen van
- verder
- spel
- voortbrengen
- generatief
- generatieve AI
- krijgen
- Geven
- Goes
- goed
- Groep
- HAD
- handvat
- gebeuren
- Happening
- Hard
- Hebben
- opschrift
- hier
- Hoe
- How To
- HTTPS
- Hybride
- Hype
- ideeën
- if
- Impact
- Effecten
- belangrijk
- onder de indruk
- verbeteren
- het verbeteren van
- in
- Anders
- meer
- Verhoogt
- indexen
- Innovatie
- innovatieve
- ingangen
- binnen
- instantie
- verkrijgen in plaats daarvan
- Integreren
- in
- geïsoleerd
- IT
- ivan
- mee
- aansluiting
- springen
- voor slechts
- sleutel
- Wachttijd
- lancering
- Legkippen
- LEARN
- Hefboomwerking
- als
- Beperkt
- laden
- lobby
- plaats
- lang
- langdurig
- Kijk
- lookup
- lot
- gemaakt
- maken
- MERKEN
- veel
- massa
- massief
- Match
- matching
- maximaliseren
- maximaal
- Mei..
- betekende
- miljoenen
- minimaal
- minuten
- ML
- meer
- ochtend
- meest
- meervoudig
- NATUUR
- Noodzaak
- nodig
- behoeften
- netwerken
- New
- Nieuwe mogelijkheden
- nu
- vele
- of
- on
- optimaliseren
- Opties
- or
- Overige
- onze
- uit
- over
- bijzonder
- vooral
- verleden
- patronen
- Hoogtepunt
- Mensen
- periode
- perspectief
- plaats
- plaatsen
- plannen
- platform
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- Spelen
- speler
- punten
- Populair
- potentieel
- Voorspelbaar
- druk
- probleem
- vastgoed
- Duwen
- duwt
- voortvarend
- Quick
- rangschikken
- gelederen
- BIJZONDER
- bereiken
- klaar
- vast
- real-time
- realiseerde
- Aanbeveling
- aanbevelingen
- regelmatig
- regelmatig
- los
- betrouwbaarheid
- te vertrouwen
- te vragen
- verzoeken
- Voorwaarden
- vereist
- resulteerde
- rechts
- roblox
- dezelfde
- tevredenheid
- zaterdag
- Scale
- scaling
- het scannen
- scant
- Tweede
- seconden
- zien
- sturen
- -Series
- server
- Diensten
- verscheidene
- Delen
- verschuiving
- Bermuda's
- korte termijn
- So
- Social
- sociale netwerken
- uitsluitend
- Oplossingen
- OPLOSSEN
- opgelost
- Het oplossen van
- sommige
- Iemand
- iets
- special
- besteden
- spikes
- standaard
- Land
- plotseling
- ontstaat
- system
- Systems
- aanpakken
- Pakt aan
- aanpakken
- Nemen
- het nemen
- Talks
- team
- tech
- Technisch
- technieken
- Technologies
- termijn
- dat
- De
- De Staat
- hun
- Ze
- Er.
- Deze
- ze
- spullen
- denken
- het denken
- Derde
- dit
- die
- duizenden kosten
- niet de tijd of
- naar
- top
- in de richting van
- spoor
- traditioneel
- ontzettend
- echt
- twee
- type dan:
- types
- begrijpen
- unieke
- bijwerken
- us
- .
- Gebruiker
- Gebruikerservaring
- gebruikers
- waarde
- zeer
- Virtueel
- Bezoek
- wachten
- wil
- Wave
- manieren
- we
- GOED
- Wat
- wanneer
- en
- WIE
- wil
- Met
- Mijn werk
- werkzaam
- u
- Your
- zephyrnet