[ad_1]
All’interno del Tech è una serie di blog che va di pari passo con la nostra Podcast di colloqui tecnici. Qui, approfondiamo ulteriormente una sfida tecnica chiave che stiamo affrontando e condividiamo gli approcci unici che stiamo adottando per farlo. In questa edizione di All’interno del Techabbiamo parlato con il direttore tecnico del gruppo Crescita Ivan Marcin per saperne di più sul matchmaking su Roblox.
Per quali sfide tecniche stai risolvendo?
Il matchmaking crea i servizi che abbinano gli utenti Roblox a un server di esperienza nel processo di iscrizione. Quando qualcuno vuole visitare un’esperienza Roblox, esaminiamo migliaia di punti dati da più istanze del motore Roblox e li classifichiamo per creare quella corrispondenza. Roblox è unico perché le persone e i luoghi cambiano costantemente e il sistema che stiamo costruendo deve tenere conto di queste fluttuazioni.
Per fare ciò, dobbiamo sviluppare le tecnologie per risolvere due sfide fondamentali per massimizzare la soddisfazione degli utenti. Il primo è determinare come tracciare e classificare i luoghi a cui abbiniamo le persone in tempo reale. Il secondo è l’ottimizzazione del matchmaking per l’efficienza su larga scala. Questo sistema ibrido deve abbinare i nostri milioni di utenti simultanei a esperienze con una latenza minima, orchestrando al tempo stesso le istanze del motore Roblox nella nostra flotta di data center edge. Questo è ciò che guida il massimo coinvolgimento.
Il processo presenta numerose complessità, ma un buon esempio di una sfida particolare è quello che viene chiamato il “problema della mandria tonante”. Questo è il momento in cui i nostri sistemi registrano enormi picchi di carico in un breve periodo di tempo. Ad esempio, quando milioni di persone tentano di partecipare a un’esperienza popolare alla stessa ora di sabato mattina.
In questi casi, potremmo vedere un rapido aumento di 10 volte nelle richieste. Questo improvviso aumento della pressione mette a dura prova i nostri sistemi e in passato questo tipo di eventi aveva fatto crollare la piattaforma. Ma ora, molte esperienze Roblox hanno questo tipo di eventi speciali, versioni limitate o aggiornamenti. Se da un lato aumenta il coinvolgimento, dall’altro ci costringe anche a essere pronti a gestire branchi regolari e tonanti.
Il problema del gregge tonante è qualcosa che hanno anche altri social network e piattaforme?
Qualsiasi piattaforma può affrontare un improvviso e massiccio aumento di utenti. Ma è particolarmente impegnativo per noi a causa delle nostre dimensioni. Il lancio di un articolo limitato può essere solo un evento unico per un’esperienza, ma su Roblox ci sono milioni di esperienze e molti hanno eventi popolari come questi. Quindi per Roblox gli incidenti violenti non sono rari, isolati o prevedibili. Possono accadere in qualsiasi momento in qualsiasi nostra esperienza e dobbiamo essere pronti. Abbiamo rafforzato il matchmaking e altri sistemi per fare più affidamento su questi schemi.
Quali sono alcune delle soluzioni innovative che stiamo costruendo per affrontare queste sfide?
Avevamo bisogno di creare un sistema di ricerca e raccomandazione personalizzato che indicizzasse costantemente le esperienze Roblox e abbinasse le persone ad esse in tempo reale.
Per inviare gli utenti nel posto migliore e gestire le mandrie fragorose in qualsiasi momento, ovunque su Roblox, il sistema considera input come lo stato degli utenti, la posizione, la latenza e altre proprietà dei giocatori. Deve anche monitorare e aggiornare lo stato di tutte le esperienze Roblox ogni pochi secondi.
Da lì, dobbiamo generare questi consigli sulle partite in tempo reale. Con molti sistemi di matchmaking tradizionali, gli utenti si connettono e aspettano in una lobby virtuale il lancio del gioco. Questa operazione può richiedere diversi minuti, ma su Roblox dobbiamo inviare alle persone le esperienze giuste nel momento in cui fanno clic sul pulsante di partecipazione.
Per fare ciò è necessario costruire un sistema di esperienza che reindichi i nostri dati ogni pochi secondi. Farlo su larga scala è una sfida fondamentale perché non possiamo utilizzare tecniche di sistemi distribuiti standard, come affidarsi esclusivamente alla memorizzazione nella cache, per gestire i picchi di carico. Ci siamo invece affidati alla creazione di un sistema di indicizzazione personalizzato. Ogni istanza del motore Roblox inserisce costantemente dati in questo sistema. Qualsiasi richiesta di partecipazione all’esperienza analizza le proprietà di ogni luogo attivo, le classifica in più indici e consiglia dove inviare l’utente in base a ciò che sta accadendo in quel momento esatto.
Quali sono gli insegnamenti chiave derivanti da questo lavoro tecnico?
Uno degli insegnamenti più importanti derivanti da questo lavoro tecnico è che dobbiamo guardare le cose da una prospettiva equilibrata. Abbiamo lavorato duramente per migliorare l’affidabilità della nostra piattaforma, ma stiamo anche sviluppando nuove funzionalità che miglioreranno l’esperienza dell’utente a lungo termine. È come un pendolo che oscilla avanti e indietro perché il cambiamento è costante. Dobbiamo essere in grado di imparare, adattarci e capire cosa possiamo fare a breve termine, costruendo al contempo a lungo termine.
Prendiamo, ad esempio, come abbiamo gestito il fragoroso problema della mandria. La nostra comunità di sviluppatori si è resa conto che poteva sfruttare l’hype nei fine settimana per attirare gli utenti verso le loro esperienze. Ciò ha portato masse di persone a unirsi alle esperienze il sabato mattina. Abbiamo quindi dovuto modificare i nostri piani tecnici, poiché la sfida della scalabilità non era qualcosa di facilmente risolvibile. Quando il contenuto è statico, puoi affrontare questo problema aggiungendo livelli di memorizzazione nella cache e fornendo capacità per l’utilizzo di punta. Ma la natura in tempo reale dei nostri sistemi ha significato riprogettare i nostri sistemi di indicizzazione e scansione per dividere le ricerche e ridimensionare la nostra concorrenza.
Quale valore Roblox ritieni si adatti meglio al modo in cui tu e il tuo team affrontate le sfide tecniche?
Il rispetto della comunità si allinea al meglio con il modo in cui il nostro team affronta le sfide tecniche. La nostra community è composta sia da utenti che da creatori che creano esperienze e spingono i nostri requisiti tecnici. Entrambi sono ugualmente importanti. Quindi, quando cambiamo qualcosa, dobbiamo prestare molta attenzione all’impatto che avrà su tutti.
Ad esempio, se stiamo pensando di modificare qualcosa come le API che influiscono sul teletrasporto, dobbiamo capire come ciò influenzerà sia gli utenti che gli sviluppatori. Passiamo molto tempo a pensare a come convincere le persone a giocare al gioco giusto, ma anche a come offrire agli sviluppatori più opzioni e controlli. Contattiamo regolarmente gli sviluppatori per scambiare idee con loro sulle nuove funzionalità.
Cosa ti entusiasma di più della direzione in cui sono diretti Roblox e il tuo team?
Tre cose. Innanzitutto, sono impressionato dalla nostra straordinaria crescita. Il secondo è il potenziale di creazione e innovazione su Roblox: le persone propongono costantemente nuove idee ed esperienze e ci spingono a essere creativi anche su come adattarci a quella creatività. In terzo luogo, l’intelligenza artificiale/ML è in forte espansione e Roblox è proprio in prima linea in questa ondata. Ad esempio, stiamo integrando ulteriormente il ML nel matchmaking e l’intelligenza artificiale generativa in altri modi unici e all’avanguardia in Roblox. È davvero emozionante.
[ad_2]
Source link