Всередині техн це серія блогів, яка йде рука об руку з нашими Подкаст Tech Talks. Тут ми глибше занурюємося в ключову технічну проблему, яку ми вирішуємо, і ділимося унікальними підходами, які використовуємо для цього. У цьому випуску Всередині техн, ми поговорили з технічним директором Growth Group Іваном Марчіном, щоб дізнатися більше про пошук партнерів на Roblox.
Які технічні завдання ви вирішуєте?
Matchmaking створює служби, які підбирають користувачів Roblox до сервера досвіду в процесі приєднання. Коли хтось хоче відвідати досвід Roblox, ми переглядаємо тисячі точок даних із кількох екземплярів движка Roblox і ранжуємо їх, щоб відповідати. Roblox унікальний, тому що люди та місця постійно змінюються, і система, яку ми створюємо, має враховувати ці коливання.
Для цього ми маємо розробити технології для вирішення двох проблем, які є ключовими для максимального задоволення користувачів. По-перше, ми визначаємо, як відстежувати та ранжувати місця, до яких ми підбираємо людей, у режимі реального часу. По-друге, це оптимізація підбору для досягнення ефективності в масштабі. Цій гібридній системі необхідно забезпечити роботу мільйонів одночасно працюючих користувачів із мінімальною затримкою, а також організовувати екземпляри механізму Roblox у наших периферійних центрах обробки даних. Саме це сприяє максимальному залученню.
Процес має багато складнощів, але гарним прикладом конкретного виклику є те, що називається «проблемою гримового стада». Саме тоді наші системи бачать значні стрибки навантаження за короткий проміжок часу. Наприклад, коли мільйони людей намагаються приєднатися до популярного досвіду одночасно в суботу вранці.
У таких випадках кількість запитів може зрости в 10 разів. Це раптове збільшення тиску напружує наші системи, і в минулому такі події призводили до збою платформи. Але зараз багато досвідів Roblox мають такий тип спеціальної події, обмеженого випуску або оновлення. Хоча це збільшує залучення, це також змушує нас бути готовими до регулярних гримових стад.
Чи є проблема гримового стада чимось іншим у соціальних мережах і платформах?
Будь-яка платформа може зіткнутися з раптовим масовим сплеском користувачів. Але це особливо складно для нас через наш масштаб. Обмежений запуск предметів може бути лише одноразовою подією для досвіду, але на Roblox є мільйони вражень, і багато з них мають такі популярні події. Тож для Roblox гримові стада не є рідкістю, поодинокими чи передбачуваними. Вони можуть статися в будь-який час у будь-якому нашому досвіді, і ми повинні бути готові. Ми посилили підбір та інші системи, щоб вони більш залежали від цих шаблонів.
Які інноваційні рішення ми створюємо для вирішення цих проблем?
Нам потрібно було створити спеціальну систему пошуку та рекомендацій, яка постійно індексує досвід Roblox і підбирає людей до них у режимі реального часу.
Щоб направити користувачів у найкраще місце та впоратися з гримучими стадами в будь-який час і будь-де в Roblox, система враховує вхідні дані, такі як стан користувачів, місцезнаходження, затримка та інші властивості гравців. Він також має відстежувати та оновлювати стан усіх досвідів Roblox кожні кілька секунд.
Звідти нам потрібно генерувати ці рекомендації щодо матчів у режимі реального часу. У багатьох традиційних системах пошуку партнерів користувачі підключаються та чекають у віртуальному лобі, поки гра запуститься. Це може зайняти кілька хвилин, але в Roblox нам потрібно направити людей на потрібний досвід, щойно вони натиснуть кнопку приєднання.
Для цього потрібно побудувати систему досвіду, яка переіндексує наші дані кожні кілька секунд. Виконання цього в масштабі є ключовим завданням, оскільки ми не можемо використовувати стандартні методи розподілених систем, як-от покладатися виключно на кешування, для обробки стрибків навантаження. Замість цього ми покладалися на створення спеціальної системи індексування. Кожен екземпляр движка Roblox постійно надсилає дані в цю систему. Будь-який запит на приєднання до досвіду сканує властивості кожного активного місця, ранжує їх за кількома індексами та дає рекомендації щодо того, куди відправити користувача на основі того, що відбувається в той самий час.
Які ключові уроки отримані від виконання цієї технічної роботи?
Одним із ключових висновків цієї технічної роботи є те, що ми повинні дивитися на речі зі збалансованої точки зору. Ми наполегливо працювали над підвищенням надійності нашої платформи, але ми також розробляємо нові функції, які покращать роботу користувачів у довгостроковій перспективі. Це як маятник, який коливається вперед-назад, тому що зміни відбуваються постійно. Ми повинні вміти вчитися, адаптуватися та з’ясувати, що ми можемо зробити в короткостроковій перспективі, будуючи на довгострокову перспективу.
Візьмемо, наприклад, те, як ми вирішували кричущу проблему стада. Наша спільнота розробників зрозуміла, що вони можуть використовувати ажіотаж у вихідні, щоб залучити користувачів до свого досвіду. Це призвело до того, що маси людей приєднувалися до досвіду суботнього ранку. Тож нам довелося змінити наші інженерні плани, оскільки проблему масштабування було непросто вирішити. Коли вміст є статичним, ви вирішуєте це, додаючи рівні кешування поверх і забезпечуючи ємність для пікового використання. Але природа наших систем у режимі реального часу означала перебудову наших систем індексування та сканування, щоб розділити пошуки та масштабувати нашу паралельність.
Яке значення Roblox, на вашу думку, найкраще відповідає тому, як ви та ваша команда вирішуєте технічні завдання?
Повага до спільноти найкраще відповідає тому, як наша команда вирішує технічні проблеми. Наша спільнота складається як з користувачів, так і з творців, які створюють досвід і висувають наші технічні вимоги. Обидва однаково важливі. Отже, коли ми щось змінюємо, ми маємо дуже добре думати про те, як це вплине на всіх.
Наприклад, якщо ми розглядаємо щось на кшталт API, що впливає на телепортацію, ми маємо зрозуміти, як це вплине як на користувачів, так і на розробників. Ми витрачаємо багато часу на роздуми про те, як змусити людей грати в правильну гру, а також про те, як надати розробникам більше можливостей і елементів керування. Ми регулярно звертаємося до розробників, щоб обдумати з ними нові функції.
Що вас найбільше хвилює в тому, куди рухаються Roblox і ваша команда?
Три речі. По-перше, я вражений нашим величезним зростанням. По-друге, це потенціал творчості та інновацій у Roblox: люди постійно придумують нові ідеї та досвід, і це спонукає нас бути креативними, а також у тому, як масштабувати цю креативність. По-третє, AI/ML процвітає, і Roblox знаходиться в авангарді цієї хвилі. Наприклад, у Roblox ми інтегруємо подальше машинне навчання в пошук партнерів і генеративний штучний інтелект іншими унікальними й передовими способами. Це справді захоплююче.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://blog.roblox.com/2023/10/inside-tech-solving-matchmaking-roblox/
- : має
- :є
- :де
- $UP
- a
- Здатний
- МЕНЮ
- рахунки
- через
- активний
- пристосовувати
- додати
- адреса
- впливати
- AI
- AI / ML
- Вирівнює
- ВСІ
- Також
- an
- та
- будь-який
- де-небудь
- Інтерфейси
- підходи
- ЕСТЬ
- AS
- At
- спроба
- залучати
- назад
- заснований
- BE
- оскільки
- було
- КРАЩЕ
- Блог
- обидва
- мозковий штурм
- приніс
- будувати
- Створюємо
- Будує
- але
- button
- by
- званий
- CAN
- потужність
- випадків
- Центри
- виклик
- проблеми
- складні
- зміна
- заміна
- клацання
- майбутній
- співтовариство
- складності
- одночасно
- З'єднуватися
- беручи до уваги
- вважає
- постійна
- постійно
- зміст
- управління
- може
- створення
- Креатив
- креативність
- Творці
- виготовлений на замовлення
- різання
- дані
- центрів обробки даних
- точки даних
- визначення
- розвивати
- Розробник
- розробників
- розвивається
- Директор
- розподілений
- розподілені системи
- занурення
- ділити
- do
- справи
- вниз
- диски
- легко
- край
- видання
- ефективність
- зачеплення
- двигун
- Машинобудування
- однаково
- Event
- Події
- Кожен
- все
- приклад
- збуджений
- захоплюючий
- досвід
- Досліди
- Face
- риси
- кілька
- Рисунок
- Перший
- ФЛЕТ
- коливання
- для
- Війська
- передній край
- вперед
- від
- далі
- гра
- породжувати
- генеративний
- Генеративний ШІ
- отримати
- Давати
- йде
- добре
- Group
- Зростання
- було
- обробляти
- траплятися
- Відбувається
- Жорсткий
- Мати
- очолював
- тут
- Як
- How To
- HTTPS
- гібрид
- обман
- ідеї
- if
- Impact
- Вплив
- важливо
- вражений
- удосконалювати
- поліпшення
- in
- В інших
- збільшений
- Збільшує
- покажчики
- інновація
- інноваційний
- витрати
- всередині
- екземпляр
- замість
- Інтеграція
- в
- ізольований
- IT
- Іван
- приєднатися
- приєднання
- стрибати
- просто
- ключ
- Затримка
- запуск
- шарів
- УЧИТЬСЯ
- Важіль
- як
- обмеженою
- загрузка
- Лобі
- розташування
- Довго
- довгостроковий
- подивитися
- пошук
- серія
- made
- зробити
- РОБОТИ
- багато
- маси
- масивний
- матч
- узгодження
- максимізація
- максимальний
- Може..
- означав
- мільйони
- мінімальний
- протокол
- ML
- більше
- ранок
- найбільш
- множинний
- природа
- Необхідність
- необхідний
- потреби
- мереж
- Нові
- Нові можливості
- зараз
- численний
- of
- on
- оптимізуючий
- Опції
- or
- Інше
- наші
- з
- над
- приватність
- особливо
- Минуле
- моделі
- Peak
- Люди
- period
- перспектива
- місце
- місця
- плани
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- Play
- гравець
- точок
- популярний
- потенціал
- Передбачуваний
- тиск
- Проблема
- процес
- властивості
- Штовхати
- штовхає
- Натискання
- Швидко
- ранжувати
- ряди
- РІДНІ
- досягати
- готовий
- реальний
- реального часу
- зрозумів,
- Рекомендація
- рекомендації
- регулярний
- регулярно
- звільнити
- надійність
- покладаючись
- запросити
- запитів
- Вимога
- Вимагається
- призвело до
- право
- Roblox
- то ж
- задоволення
- субота
- шкала
- Масштабування
- сканування
- сканування
- другий
- seconds
- побачити
- послати
- Серія
- сервер
- Послуги
- кілька
- Поділитись
- зсув
- Короткий
- короткий термін
- So
- соціальна
- соціальні мережі
- виключно
- Рішення
- ВИРІШИТИ
- вирішити
- Розв’язування
- деякі
- Хтось
- що в сім'ї щось
- спеціальний
- витрачати
- шипи
- standard
- стан
- раптовий
- сплеск
- система
- Systems
- снасті
- снасті
- вирішення проблем
- Приймати
- взяття
- Переговори
- команда
- технології
- технічний
- методи
- Технології
- термін
- Що
- Команда
- Держава
- їх
- Їх
- Там.
- Ці
- вони
- речі
- думати
- Мислення
- третій
- це
- ті
- тисячі
- час
- до
- топ
- до
- трек
- традиційний
- величезний
- по-справжньому
- два
- тип
- Типи
- розуміти
- створеного
- Оновити
- us
- використання
- користувач
- User Experience
- користувачі
- значення
- дуже
- Віртуальний
- візит
- чекати
- хоче
- хвиля
- способи
- we
- ДОБРЕ
- Що
- коли
- в той час як
- ВООЗ
- волі
- з
- Work
- робочий
- ви
- вашу
- зефірнет