În interiorul tehnologiei este o serie de bloguri care merge mână în mână cu a noastră Podcast Tech Talks. Aici, ne aruncăm mai departe într-o provocare tehnică cheie pe care o abordăm și împărtășim abordările unice pe care le adoptăm pentru a face acest lucru. În această ediție a În interiorul tehnologiei, am vorbit cu directorul tehnic al grupului de creștere Ivan Marcin pentru a afla mai multe despre matchmaking pe Roblox.
Pentru ce provocări tehnice rezolvați?
Matchmaking construiește serviciile care potrivesc utilizatorii Roblox cu un server de experiență în procesul de alăturare. Când cineva dorește să viziteze o experiență Roblox, ne uităm la mii de puncte de date din mai multe instanțe de motor Roblox și le clasificăm pentru a se potrivi. Roblox este unic deoarece oamenii și locurile se schimbă în mod constant, iar sistemul pe care îl construim trebuie să țină cont de aceste fluctuații.
Pentru a face acest lucru, trebuie să dezvoltăm tehnologii pentru a rezolva două provocări care sunt cheie pentru maximizarea satisfacției utilizatorilor. Primul este de a determina cum să urmărim și să clasăm locurile cu care potrivim oamenii în timp real. Al doilea este optimizarea matchmaking-ului pentru eficiență la scară. Acest sistem hibrid trebuie să se potrivească milioanelor noștri de utilizatori concurenți cu experiențe cu o latență minimă, în timp ce orchestrează instanțele motorului Roblox în flota noastră de centre de date edge. Acesta este ceea ce determină implicarea maximă.
Procesul are numeroase complexități, dar un bun exemplu de provocare particulară este ceea ce se numește „problema turmei tunătoare”. Acesta este momentul în care sistemele noastre văd vârfuri masive de încărcare într-o perioadă scurtă de timp. De exemplu, atunci când milioane de oameni încearcă să se alăture unei experiențe populare în același timp într-o dimineață de sâmbătă.
În aceste cazuri, este posibil să vedem o creștere rapidă de 10 ori a cererilor. Această presiune crescută bruscă stresează sistemele noastre și, în trecut, aceste tipuri de evenimente au doborât platforma. Dar acum, multe experiențe Roblox au acest tip de eveniment special, lansare limitată sau actualizare. În timp ce crește angajamentul, ne obligă și să fim pregătiți să ne descurcăm cu turmele obișnuite.
Este problema turmei tunătoare ceva pe care îl au alte rețele și platforme sociale?
Orice platformă se poate confrunta cu o creștere bruscă masivă a utilizatorilor. Dar este deosebit de dificil pentru noi din cauza dimensiunii noastre. O lansare limitată de articol poate fi doar un eveniment unic pentru o experiență, dar pe Roblox există milioane de experiențe și multe au evenimente populare ca acestea. Deci, pentru Roblox, incidentele de turmă nu sunt rare, izolate sau previzibile. Ele se pot întâmpla în orice moment în oricare dintre experiențele noastre și trebuie să fim pregătiți. Am întărit sistemul de potrivire și alte sisteme pentru a fi mai dependenți de aceste modele.
Care sunt unele dintre soluțiile inovatoare pe care le construim pentru a aborda aceste provocări?
Aveam nevoie să construim un sistem personalizat de căutare și recomandare care să indexeze în mod constant experiențele Roblox și să le potrivească oamenii în timp real.
Pentru a trimite utilizatorii în cel mai bun loc și a gestiona turmele tunătoare în orice moment, oriunde în Roblox, sistemul ia în considerare intrări precum starea utilizatorilor, locația, latența și alte proprietăți ale jucătorului. De asemenea, trebuie să urmărească și să reîmprospăteze starea tuturor experiențelor Roblox la fiecare câteva secunde.
De acolo, trebuie să generăm aceste recomandări de potrivire în timp real. Cu multe sisteme tradiționale de matchmaking, utilizatorii se conectează și așteaptă într-un lobby virtual lansarea jocului. Acest lucru poate dura câteva minute, dar pe Roblox, trebuie să trimitem oamenii la experiențele potrivite în momentul în care fac clic pe butonul de alăturare.
Pentru a face acest lucru necesită construirea unui sistem de experiență care să ne reindexeze datele la fiecare câteva secunde. A face acest lucru la scară este o provocare cheie, deoarece nu putem folosi tehnici standard de sisteme distribuite, cum ar fi baza exclusiv pe stocarea în cache, pentru a gestiona vârfurile de încărcare. În schimb, ne-am bazat pe construirea unui sistem de indexare personalizat. Fiecare instanță a motorului Roblox împinge în mod constant date în acest sistem. Orice solicitare de aderare la experiență scanează proprietățile fiecărui loc activ, le clasifică pe mai mulți indici și face o recomandare unde să trimită utilizatorul în funcție de ceea ce se întâmplă exact în acel moment.
Care sunt principalele învățăminte din realizarea acestei lucrări tehnice?
Una dintre cele mai importante învățături din realizarea acestei lucrări tehnice este că trebuie să privim lucrurile dintr-o perspectivă echilibrată. Am muncit din greu la îmbunătățirea fiabilității platformei noastre, dar dezvoltăm și noi funcții care vor îmbunătăți experiența utilizatorului pe termen lung. Este ca un pendul care se balansează înainte și înapoi pentru că schimbarea este constantă. Trebuie să fim capabili să învățăm, să ne adaptăm și să ne dăm seama ce putem face pe termen scurt, în timp ce construim pe termen lung.
Să luăm, de exemplu, cum ne-am ocupat de problema turmei tunătoare. Comunitatea noastră de dezvoltatori și-a dat seama că ar putea folosi hype-ul în weekend pentru a atrage utilizatorii către experiențele lor. Acest lucru a dus la ca mase de oameni să se alăture experiențelor sâmbăta dimineața. Așa că a trebuit să ne schimbăm planurile de inginerie, deoarece acea provocare de scalare nu era ceva ce putea fi rezolvat cu ușurință. Când conținutul este static, rezolvați acest lucru adăugând straturi de stocare în cache în partea de sus și furnizând capacitate pentru utilizare de vârf. Dar natura în timp real a sistemelor noastre a însemnat rearhitectarea sistemelor noastre de indexare și scanare pentru a împărți căutările și a ne scala concurența.
Care valoare Roblox crezi că se aliniază cel mai bine cu modul în care tu și echipa ta abordezi provocările tehnice?
Respectarea comunității se aliniază cel mai bine cu modul în care echipa noastră abordează provocările tehnice. Comunitatea noastră este formată atât din utilizatori, cât și din creatori care fac experiențe și ne impun cerințele tehnice. Ambele sunt la fel de importante. Deci, atunci când schimbăm ceva, trebuie să fim foarte atenți la felul în care îi afectează pe toată lumea.
De exemplu, dacă ne gândim să modificăm ceva precum API-urile care influențează teleportarea, trebuie să înțelegem cum va afecta atât utilizatorii, cât și dezvoltatorii. Petrecem mult timp gândindu-ne la modul în care îi facem pe oameni să joace jocul potrivit, dar și la cum să oferim dezvoltatorilor mai multe opțiuni și controale. Luăm legătura în mod regulat cu dezvoltatorii pentru a face brainstorming noi funcții cu ei.
Ce te entuziasmează cel mai mult în legătură cu locul în care se îndreaptă Roblox și echipa ta?
Trei lucruri. În primul rând, sunt impresionat de creșterea noastră extraordinară. Al doilea este potențialul de creație și inovare pe Roblox: oamenii vin în mod constant cu idei și experiențe noi și ne împinge să fim creativi și în ceea ce privește modul de scalare la acea creativitate. În al treilea rând, AI/ML este în plină expansiune, iar Roblox este chiar în fruntea acestui val. De exemplu, integrăm în continuare ML în matchmaking și AI generativă în alte moduri unice și de ultimă oră la Roblox. Este cu adevărat incitant.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: https://blog.roblox.com/2023/10/inside-tech-solving-matchmaking-roblox/
- :are
- :este
- :Unde
- $UP
- a
- Capabil
- Despre Noi
- Cont
- peste
- activ
- adapta
- adăugare
- adresa
- afecta
- AI
- AI / ML
- Se aliniază
- TOATE
- de asemenea
- an
- și
- Orice
- oriunde
- API-uri
- abordari
- SUNT
- AS
- At
- încercare
- atrage
- înapoi
- bazat
- BE
- deoarece
- fost
- CEL MAI BUN
- Blog
- atât
- brainstorming
- adus
- construi
- Clădire
- construiește
- dar
- buton
- by
- denumit
- CAN
- Capacitate
- cazuri
- Centre
- contesta
- provocări
- provocare
- Schimbare
- schimbarea
- clic
- venire
- comunitate
- complexități
- concurent
- Conectați
- luand in considerare
- consideră
- constant
- mereu
- conţinut
- controale
- ar putea
- creaţie
- Creator
- creativitate
- Creatorii
- personalizat
- tăiere
- de date
- centre de date
- puncte de date
- determinarea
- dezvolta
- Dezvoltator
- Dezvoltatorii
- în curs de dezvoltare
- Director
- distribuite
- sisteme distribuite
- scufunda
- împărţi
- do
- face
- jos
- unități
- cu ușurință
- Margine
- ediţie
- eficiență
- angajament
- Motor
- Inginerie
- la fel de
- eveniment
- evenimente
- Fiecare
- toată lumea
- exemplu
- excitat
- captivant
- experienţă
- Experiențe
- Față
- DESCRIERE
- puțini
- Figura
- First
- FLOTA
- fluctuațiile
- Pentru
- Forțele
- frunte
- mai departe
- din
- mai mult
- joc
- genera
- generativ
- AI generativă
- obține
- Da
- Merge
- bine
- grup
- Creștere
- HAD
- manipula
- întâmpla
- lucru
- Greu
- Avea
- intitulat
- aici
- Cum
- Cum Pentru a
- HTTPS
- Hibrid
- hype
- idei
- if
- Impactul
- Impacturi
- important
- impresionat
- îmbunătăţi
- îmbunătățirea
- in
- În altele
- a crescut
- Creșteri
- indexurile
- Inovaţie
- inovatoare
- intrări
- în interiorul
- instanță
- in schimb
- integrarea
- în
- izolat
- IT
- ivan
- alătura
- aderarea
- a sari
- doar
- Cheie
- Latență
- lansa
- straturi
- AFLAȚI
- Pârghie
- ca
- Limitat
- încărca
- Lobby
- locaţie
- Lung
- pe termen lung
- Uite
- căutare
- Lot
- făcut
- face
- FACE
- multe
- mase
- masiv
- Meci
- potrivire
- maximizarea
- maxim
- Mai..
- a însemnat
- milioane
- minim
- minute
- ML
- mai mult
- dimineaţă
- cele mai multe
- multiplu
- Natură
- Nevoie
- necesar
- nevoilor
- rețele
- Nou
- Funcții noi
- acum
- numeroși
- of
- on
- optimizarea
- Opţiuni
- or
- Altele
- al nostru
- afară
- peste
- special
- în special
- trecut
- modele
- Vârf
- oameni
- perioadă
- perspectivă
- Loc
- Locuri
- Planurile
- platformă
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- Joaca
- player
- puncte
- Popular
- potenţial
- predictibil
- presiune
- Problemă
- proces
- proprietăţi
- Împinge
- împinge
- împingerea
- Rapid
- rank
- rândurile
- RAR
- ajunge
- gata
- real
- în timp real
- realizat
- Recomandare
- Recomandări
- regulat
- regulat
- eliberaţi
- încredere
- bazându-se
- solicita
- cereri de
- Cerinţe
- Necesită
- a rezultat
- dreapta
- Roblox
- acelaşi
- satisfacție
- sâmbătă
- Scară
- scalare
- scanare
- scanări
- Al doilea
- secunde
- vedea
- trimite
- serie
- serverul
- Servicii
- câteva
- Distribuie
- schimbare
- Pantaloni scurți
- Pe termen scurt
- So
- Social
- reţele sociale
- Numai
- soluţii
- REZOLVAREA
- rezolvate
- Rezolvarea
- unele
- Cineva
- ceva
- special
- petrece
- piroane
- standard
- Stat
- brusc
- apare
- sistem
- sisteme
- aborda
- Parime
- tackling
- Lua
- luare
- Tratative
- echipă
- tech
- Tehnic
- tehnici de
- Tehnologii
- durată
- acea
- Statul
- lor
- Lor
- Acolo.
- Acestea
- ei
- lucruri
- crede
- Gândire
- Al treilea
- acest
- aceste
- mii
- timp
- la
- top
- față de
- urmări
- tradiţional
- extraordinar
- cu adevărat
- Două
- tip
- Tipuri
- înţelege
- unic
- Actualizează
- us
- utilizare
- Utilizator
- Experiența de utilizare
- utilizatorii
- valoare
- foarte
- Virtual
- Vizita
- aștepta
- vrea
- Val
- modalități de
- we
- BINE
- Ce
- cand
- în timp ce
- OMS
- voi
- cu
- Apartamente
- de lucru
- tu
- Ta
- zephyrnet