Inde i Tech er en blogserie, der går hånd i hånd med vores Tech Talks Podcast. Her dykker vi længere ned i en vigtig teknisk udfordring, vi tackler, og deler de unikke tilgange, vi tager for at gøre det. I denne udgave af Inde i Tech, talte vi med vækstgruppens tekniske direktør Ivan Marcin for at lære mere om matchmaking på Roblox.
Hvilke tekniske udfordringer løser du?
Matchmaking bygger de tjenester, der matcher Roblox-brugere til en oplevelsesserver i forbindelsesprocessen. Når nogen ønsker at besøge en Roblox-oplevelse, ser vi på tusindvis af datapunkter fra flere Roblox-motorforekomster og rangerer dem for at få det match. Roblox er unik, fordi mennesker og steder ændrer sig konstant, og det system, vi bygger, skal tage højde for disse udsving.
For at gøre dette er vi nødt til at udvikle teknologierne til at løse to udfordringer, der er nøglen til at maksimere brugertilfredsheden. Den første er at bestemme, hvordan man sporer og rangerer de steder, vi matcher folk til i realtid. Den anden er at optimere matchmaking for effektivitet i stor skala. Dette hybridsystem skal matche vores millioner af samtidige brugere til oplevelser med minimal latenstid, mens det også orkestrerer Roblox-motorforekomster på tværs af vores flåde af edge-datacentre. Det er det, der driver maksimalt engagement.
Processen har adskillige kompleksiteter, men et godt eksempel på en særlig udfordring er det, der kaldes "det tordnende flokproblem." Det er, når vores systemer ser massive belastningsspidser på kort tid. For eksempel når millioner af mennesker forsøger at deltage i en populær oplevelse på samme tid en lørdag formiddag.
I disse tilfælde kan vi se et hurtigt 10x spring i anmodninger. Dette pludselige øgede pres stresser vores systemer, og tidligere havde disse typer begivenheder bragt platformen ned. Men nu har mange Roblox-oplevelser denne type særlige begivenhed, begrænset udgivelse eller opdatering. Selvom det øger engagementet, tvinger det os også til at være klar til at håndtere almindelige tordnende flokke.
Er problemet med den tordnende flok noget, som andre sociale netværk og platforme har?
Enhver platform kan stå over for en pludselig massiv stigning af brugere. Men det er særligt udfordrende for os på grund af vores omfang. En begrænset lancering af varer kan kun være en engangsbegivenhed for en oplevelse, men på Roblox er der millioner af oplevelser, og mange har populære begivenheder som disse. Så for Roblox er tordnende flokhændelser ikke sjældne, isolerede eller forudsigelige. De kan ske når som helst på tværs af enhver af vores oplevelser, og vi skal være klar. Vi har hærdet matchmaking og andre systemer for at være mere afhængige af disse mønstre.
Hvad er nogle af de innovative løsninger, vi bygger for at løse disse udfordringer?
Vi var nødt til at bygge et tilpasset opslags- og anbefalingssystem, der konstant indekserer Roblox-oplevelser og matcher folk til dem i realtid.
For at sende brugere til det bedste sted og håndtere de tordnende flokke til enhver tid, hvor som helst på tværs af Roblox, overvejer systemet input som brugernes tilstand, placering, latenstid og andre spilleregenskaber. Den skal også spore og opdatere tilstanden af alle Roblox-oplevelser med få sekunders mellemrum.
Derfra skal vi generere disse kampanbefalinger i realtid. Med mange traditionelle matchmaking-systemer forbinder brugere sig og venter i en virtuel lobby på, at spillet starter. Det kan tage flere minutter, men på Roblox skal vi sende folk til de rigtige oplevelser i det sekund, de klikker på deltagelsesknappen.
For at gøre dette kræver det at bygge et oplevelsessystem, der genindekserer vores data med få sekunders mellemrum. At gøre dette i stor skala er en vigtig udfordring, fordi vi ikke kan bruge standard distribuerede systemteknikker, som udelukkende at stole på caching, til at håndtere belastningsspidser. I stedet stolede vi på at bygge et tilpasset indekseringssystem. Hver Roblox-motorforekomst skubber konstant data ind i dette system. Enhver anmodning om oplevelsesdeltagelse scanner egenskaberne for hvert aktivt sted, rangerer dem på tværs af flere indekser og giver en anbefaling om, hvor brugeren skal sendes, baseret på hvad der sker på det nøjagtige tidspunkt.
Hvad er de vigtigste læringer ved at udføre dette tekniske arbejde?
En af de vigtigste læringer ved at udføre dette tekniske arbejde er, at vi skal se på tingene fra et afbalanceret perspektiv. Vi har arbejdet hårdt på at forbedre vores platforms pålidelighed, men vi udvikler også nye funktioner, der vil forbedre brugeroplevelsen på lang sigt. Det er som et pendul, der svinger frem og tilbage, fordi forandring er konstant. Vi skal være i stand til at lære, tilpasse og finde ud af, hvad vi kan gøre på kort sigt, mens vi bygger på lang sigt.
Tag for eksempel, hvordan vi håndterede problemet med tordnende flok. Vores udviklerfællesskab indså, at de kunne udnytte hype i weekenden for at tiltrække brugere til deres oplevelser. Dette resulterede i, at masser af mennesker sluttede sig til oplevelser lørdag formiddag. Så vi var nødt til at flytte vores ingeniørplaner, da den skaleringsudfordring ikke var noget, der let kunne løses. Når indhold er statisk, tackler du dette ved at tilføje caching-lag ovenpå og ved at klargøre kapacitet til spidsbelastning. Men realtidskarakteren af vores systemer betød, at vi skulle ombygge vores indekserings- og scanningssystemer for at opdele opslagene og skalere vores samtidighed.
Hvilken Roblox-værdi tror du passer bedst til, hvordan du og dit team tackler tekniske udfordringer?
Respekt for fællesskabet stemmer bedst overens med, hvordan vores team tackler tekniske udfordringer. Vores fællesskab består af både brugerne og skaberne, der gør erfaringer og presser vores tekniske krav. Begge dele er lige vigtige. Så når vi ændrer noget, skal vi være meget betænksomme over, hvordan det påvirker alle.
For eksempel, hvis vi overvejer at ændre noget som de API'er, der påvirker teleportering, er vi nødt til at forstå, hvordan det vil påvirke både brugere og udviklere. Vi bruger meget tid på at tænke på, hvordan vi får folk til at spille det rigtige spil, men også hvordan vi giver udviklere flere muligheder og kontroller. Vi tager regelmæssigt ud til udviklere for at brainstorme nye funktioner med dem.
Hvad ophidser dig mest ved, hvor Roblox og dit team er på vej hen?
Tre ting. For det første er jeg imponeret over vores enorme vækst. Det andet er potentialet for skabelse og innovation på Roblox: Folk kommer konstant med nye ideer og erfaringer og presser os til at være kreative, så vel som hvordan man skalerer til den kreativitet. For det tredje boomer AI/ML, og Roblox er helt på forkant med denne bølge. For eksempel integrerer vi yderligere ML i matchmaking og generativ AI på andre unikke og banebrydende måder hos Roblox. Det er virkelig spændende.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://blog.roblox.com/2023/10/inside-tech-solving-matchmaking-roblox/
- :har
- :er
- :hvor
- $OP
- a
- I stand
- Om
- Konto
- tværs
- aktiv
- tilpasse
- tilføje
- adresse
- påvirke
- AI
- AI / ML
- Justerer
- Alle
- også
- an
- ,
- enhver
- overalt
- API'er
- tilgange
- ER
- AS
- At
- forsøg
- tiltrække
- tilbage
- baseret
- BE
- fordi
- været
- BEDSTE
- Blog
- både
- brainstorm
- bragte
- bygge
- Bygning
- bygger
- men
- .
- by
- kaldet
- CAN
- Kapacitet
- tilfælde
- Centers
- udfordre
- udfordringer
- udfordrende
- lave om
- skiftende
- klik
- kommer
- samfund
- kompleksiteter
- konkurrent
- Tilslut
- Overvejer
- anser
- konstant
- konstant
- indhold
- kontrol
- kunne
- skabelse
- Kreativ
- kreativitet
- skabere
- skik
- skære
- data
- datacentre
- datapunkter
- bestemmelse
- udvikle
- Udvikler
- udviklere
- udvikling
- Direktør
- distribueret
- distribuerede systemer
- dyk
- opdele
- do
- gør
- ned
- drev
- nemt
- Edge
- udgave
- effektivitet
- engagement
- Engine (Motor)
- Engineering
- lige
- begivenhed
- begivenheder
- Hver
- alle
- eksempel
- ophidser
- spændende
- erfaring
- Oplevelser
- Ansigtet
- Funktionalitet
- få
- Figur
- Fornavn
- FLÅDE
- udsving
- Til
- Forces
- forkant
- frem
- fra
- yderligere
- spil
- generere
- generative
- Generativ AI
- få
- Giv
- Goes
- godt
- gruppe
- Vækst
- havde
- håndtere
- ske
- Happening
- Hård Ost
- Have
- headed
- link.
- Hvordan
- How To
- HTTPS
- Hybrid
- Hype
- ideer
- if
- KIMOs Succeshistorier
- Påvirkninger
- vigtigt
- imponeret
- Forbedre
- forbedring
- in
- I andre
- øget
- Stigninger
- indekser
- Innovation
- innovativ
- indgange
- indvendig
- instans
- i stedet
- Integration
- ind
- isolerede
- IT
- ivan
- deltage
- sammenføjning
- hoppe
- lige
- Nøgle
- Latency
- lancere
- lag
- LÆR
- Leverage
- ligesom
- Limited
- belastning
- Lobby
- placering
- Lang
- langsigtet
- Se
- kig op
- Lot
- lavet
- lave
- maerker
- mange
- masserne
- massive
- Match
- matchende
- maksimere
- maksimal
- Kan..
- betød
- millioner
- mindste
- minutter
- ML
- mere
- morgen
- mest
- flere
- Natur
- Behov
- behov
- behov
- net
- Ny
- Nye funktioner
- nu
- talrige
- of
- on
- optimering
- Indstillinger
- or
- Andet
- vores
- ud
- i løbet af
- særlig
- især
- forbi
- mønstre
- Peak
- Mennesker
- periode
- perspektiv
- Place
- Steder
- planer
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- spiller
- punkter
- Populær
- potentiale
- Forudsigelig
- tryk
- Problem
- behandle
- egenskaber
- Skub ud
- skubber
- Pushing
- Hurtig
- rangerer
- rækker
- SJÆLDEN
- nå
- klar
- ægte
- realtid
- gik op for
- Anbefaling
- anbefalinger
- fast
- regelmæssigt
- frigive
- pålidelighed
- stole
- anmode
- anmodninger
- Krav
- Kræver
- resulteret
- højre
- Roblox
- samme
- tilfredshed
- lørdag
- Scale
- skalering
- scanning
- scanninger
- Anden
- sekunder
- se
- send
- Series
- server
- Tjenester
- flere
- Del
- skifte
- Kort
- kort sigt
- So
- Social
- sociale netværk
- Alene
- Løsninger
- SOLVE
- løst
- Løsning
- nogle
- Nogen
- noget
- særligt
- tilbringe
- spikes
- standard
- Tilstand
- pludselige
- bølge
- systemet
- Systemer
- tackle
- Taklinger
- tackle
- Tag
- tager
- Talks
- hold
- tech
- Teknisk
- teknikker
- Teknologier
- semester
- at
- Staten
- deres
- Them
- Der.
- Disse
- de
- ting
- tror
- Tænker
- Tredje
- denne
- dem
- tusinder
- tid
- til
- top
- mod
- spor
- traditionelle
- enorm
- virkelig
- to
- typen
- typer
- forstå
- enestående
- Opdatering
- us
- brug
- Bruger
- Brugererfaring
- brugere
- værdi
- meget
- Virtual
- Besøg
- vente
- ønsker
- Wave
- måder
- we
- GODT
- Hvad
- hvornår
- mens
- WHO
- vilje
- med
- Arbejde
- arbejder
- dig
- Din
- zephyrnet