Внутри технологии это серия блогов, которая идет рука об руку с нашими Подкаст «Технические переговоры». Здесь мы более подробно рассмотрим ключевую техническую задачу, которую мы решаем, и поделимся уникальными подходами, которые мы используем для ее решения. В этом выпуске Внутри технологии, мы поговорили с техническим директором Growth group Иваном Марциным, чтобы узнать больше о подборе игроков в Roblox.
Какие технические задачи вы решаете?
Matchmaking создает службы, которые сопоставляют пользователей Roblox с сервером взаимодействия в процессе присоединения. Когда кто-то хочет посетить Roblox, мы просматриваем тысячи точек данных из нескольких экземпляров движка Roblox и ранжируем их, чтобы обеспечить соответствие. Roblox уникален, потому что люди и места постоянно меняются, и система, которую мы создаем, должна учитывать эти колебания.
Для этого нам необходимо разработать технологии для решения двух задач, которые являются ключевыми для максимального удовлетворения пользователей. Первый — определить, как отслеживать и ранжировать места, куда мы подбираем людей, в режиме реального времени. Во-вторых, оптимизация подбора игроков для повышения эффективности в масштабе. Эта гибридная система должна обеспечивать работу миллионов одновременно работающих пользователей с минимальной задержкой, а также организовывать экземпляры механизма Roblox в нашем парке периферийных центров обработки данных. Это то, что обеспечивает максимальную вовлеченность.
Этот процесс имеет множество сложностей, но хорошим примером конкретной проблемы является так называемая «проблема громового стада». Именно тогда наши системы наблюдают огромные всплески нагрузки за короткий период времени. Например, когда миллионы людей пытаются одновременно присоединиться к популярному мероприятии субботним утром.
В таких случаях мы можем увидеть быстрый десятикратный скачок количества запросов. Это внезапное возросшее давление подвергает наши системы нагрузке, и в прошлом подобные события приводили к сбою платформы. Но теперь во многих играх Roblox есть специальные мероприятия, ограниченный выпуск или обновление. Хотя это увеличивает вовлеченность, это также заставляет нас быть готовыми справиться с регулярными громовыми стадами.
Является ли проблема громоподобного стада чем-то похожим на другие социальные сети и платформы?
Любая платформа может столкнуться с внезапным массовым наплывом пользователей. Но для нас это особенно сложно из-за нашего масштаба. Запуск ограниченного количества предметов может быть всего лишь разовым мероприятием для получения опыта, но в Roblox есть миллионы событий, и во многих из них есть такие популярные мероприятия. Таким образом, для Roblox инциденты с громовым стадом не являются редкими, изолированными или предсказуемыми. Они могут произойти в любое время в любом нашем опыте, и мы должны быть готовы. Мы усилили систему подбора игроков и другие системы, чтобы они больше зависели от этих шаблонов.
Какие инновационные решения мы создаем для решения этих проблем?
Нам нужно было создать собственную систему поиска и рекомендаций, которая постоянно индексирует опыт Roblox и подбирает к нему людей в режиме реального времени.
Чтобы отправить пользователей в лучшее место и справиться с громовыми стадами в любое время и в любом месте Roblox, система учитывает такие входные данные, как состояние пользователей, местоположение, задержка и другие свойства игрока. Он также должен отслеживать и обновлять состояние всех событий Roblox каждые несколько секунд.
Отсюда нам нужно генерировать рекомендации по матчам в режиме реального времени. Во многих традиционных системах подбора игроков пользователи подключаются и ждут запуска игры в виртуальном лобби. Это может занять несколько минут, но в Roblox нам нужно направлять людей к нужным впечатлениям, как только они нажимают кнопку «Присоединиться».
Для этого необходимо создать систему взаимодействия, которая переиндексирует наши данные каждые несколько секунд. Сделать это в большом масштабе — ключевая задача, поскольку мы не можем использовать стандартные методы распределенных систем, например полагаться исключительно на кэширование, для обработки пиков нагрузки. Вместо этого мы полагались на создание собственной системы индексации. Каждый экземпляр движка Roblox постоянно передает данные в эту систему. Любой запрос на присоединение к опыту сканирует свойства каждого активного места, ранжирует их по нескольким индексам и дает рекомендации о том, куда направить пользователя, исходя из того, что происходит в это конкретное время.
Каковы ключевые выводы в результате выполнения этой технической работы?
Один из ключевых уроков, извлеченных из этой технической работы, заключается в том, что нам нужно смотреть на вещи со сбалансированной точки зрения. Мы усердно работаем над повышением надежности нашей платформы, но также разрабатываем новые функции, которые улучшат взаимодействие с пользователем в долгосрочной перспективе. Это похоже на маятник, раскачивающийся взад и вперед, потому что изменения постоянны. Мы должны иметь возможность учиться, адаптироваться и понимать, что мы можем сделать в краткосрочной перспективе, одновременно создавая долгосрочную перспективу.
Возьмем, к примеру, то, как мы решили проблему громоподобного стада. Наше сообщество разработчиков осознало, что можно использовать ажиотаж по выходным, чтобы привлечь пользователей к своему опыту. Это привело к тому, что массы людей присоединились к мероприятиям по субботам утром. Поэтому нам пришлось изменить наши инженерные планы, поскольку проблему масштабирования было нелегко решить. Когда контент статичен, вы решаете эту проблему, добавляя сверху уровни кэширования и выделяя емкость для пикового использования. Но природа наших систем, работающих в режиме реального времени, потребовала перепроектирования наших систем индексирования и сканирования, чтобы разделить запросы и масштабировать нашу параллельную обработку.
Какая ценность Roblox, по вашему мнению, лучше всего соответствует тому, как вы и ваша команда решаете технические проблемы?
Уважение к сообществу лучше всего соответствует тому, как наша команда решает технические проблемы. Наше сообщество состоит как из пользователей, так и из создателей, которые создают опыт и продвигают наши технические требования. Оба одинаково важны. Поэтому, когда мы что-то меняем, мы должны очень внимательно относиться к тому, как это повлияет на всех.
Например, если мы рассматриваем возможность изменения чего-то вроде API, влияющего на телепортацию, мы должны понимать, как это повлияет как на пользователей, так и на разработчиков. Мы тратим много времени на размышления о том, как заставить людей играть в правильную игру, а также о том, как предоставить разработчикам больше возможностей и элементов управления. Мы регулярно обращаемся к разработчикам, чтобы обсудить с ними новые функции.
Что вас больше всего волнует в том, куда движутся Roblox и ваша команда?
Три вещи. Во-первых, я впечатлен нашим огромным ростом. Второе — это потенциал творчества и инноваций в Roblox: люди постоянно придумывают новые идеи и опыт, а также подталкивают нас к творческому подходу к тому, как масштабироваться до этого творчества. В-третьих, AI/ML процветает, и Roblox находится в авангарде этой волны. Например, мы интегрируем дальнейшее машинное обучение в подбор игроков и генеративный искусственный интеллект другими уникальными и передовыми способами в Roblox. Это действительно захватывающе.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://blog.roblox.com/2023/10/inside-tech-solving-matchmaking-roblox/
- :имеет
- :является
- :куда
- $UP
- a
- в состоянии
- О нас
- Учетная запись
- через
- активный
- приспосабливать
- добавить
- адрес
- влиять на
- AI
- AI / ML
- Выравнивает
- Все
- причислены
- an
- и
- любой
- откуда угодно
- API
- подходы
- МЫ
- AS
- At
- попытка
- привлекать
- назад
- основанный
- BE
- , так как:
- было
- ЛУЧШЕЕ
- Блог
- изоферменты печени
- мозговой штурм
- принес
- строить
- Строительство
- строит
- но
- кнопка
- by
- под названием
- CAN
- Пропускная способность
- случаев
- Центры
- вызов
- проблемы
- сложные
- изменение
- изменения
- нажмите на
- приход
- сообщество
- сложности
- параллельный
- Свяжитесь
- принимая во внимание
- считает
- постоянная
- постоянно
- содержание
- контрольная
- может
- создание
- творческий
- креативность
- Создатели
- изготовленный на заказ
- резки
- данным
- центров обработки данных
- точки данных
- определения
- развивать
- Застройщик
- застройщиков
- развивающийся
- директор
- распределенный
- распределенные системы
- погружение
- делить
- do
- дело
- вниз
- диски
- легко
- Edge
- edition
- затрат
- обязательство
- Двигатель
- Проект и
- одинаково
- События
- События
- Каждая
- все члены
- пример
- пьянит
- захватывающий
- опыт
- Впечатления
- Face
- Особенности
- несколько
- фигура
- Во-первых,
- ФЛОТ
- колебания
- Что касается
- Войска
- Передний край
- вперед
- от
- далее
- игра
- порождать
- генеративный
- Генеративный ИИ
- получить
- Дайте
- идет
- хорошо
- группы
- Рост
- было
- обрабатывать
- происходить
- Случай
- Жесткий
- Есть
- возглавлял
- здесь
- Как
- How To
- HTTPS
- Гибридный
- Обман
- идеи
- if
- Влияние
- Воздействие
- важную
- впечатленный
- улучшать
- улучшение
- in
- В других
- расширились
- Увеличивает
- Индексы
- Инновации
- инновационный
- затраты
- внутри
- пример
- вместо
- Интегрируя
- в
- изолированный
- IT
- иван
- присоединиться
- присоединение
- Прыгать
- всего
- Основные
- Задержка
- запуск
- слоев
- УЧИТЬСЯ
- Кредитное плечо
- такое как
- Ограниченный
- загрузка
- Вестибюль
- расположение
- Длинное
- долгосрочный
- посмотреть
- поиск
- серия
- сделанный
- сделать
- ДЕЛАЕТ
- многих
- массы
- массивный
- Совпадение
- согласование
- максимизации
- максимальный
- Май..
- означает,
- миллионы
- минимальный
- минут
- ML
- БОЛЕЕ
- утро
- самых
- с разными
- природа
- Необходимость
- необходимый
- потребности
- сетей
- Новые
- Новые функции
- сейчас
- многочисленный
- of
- on
- оптимизирующий
- Опции
- or
- Другое
- наши
- внешний
- за
- особый
- особенно
- мимо
- паттеранами
- Вершина горы
- Люди
- период
- перспектива
- Часть
- Мест
- Планы
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Играть
- игрок
- пунктов
- Популярное
- потенциал
- предсказуемый
- давление
- Проблема
- процесс
- свойства
- Push
- выталкивает
- Нажимать
- САЙТ
- ранг
- ряды
- РЕДКИЙ
- достигать
- готовый
- реальные
- реального времени
- реализованный
- Рекомендация
- рекомендаций
- регулярный
- регулярно
- освободить
- надежность
- опираясь
- запросить
- Запросы
- Требования
- требуется
- привело
- правую
- Roblox
- то же
- удовлетворение
- суббота
- Шкала
- масштабирование
- сканирование
- сканирует
- Во-вторых
- секунды
- посмотреть
- Отправить
- Серии
- сервер
- Услуги
- несколько
- Поделиться
- сдвиг
- Короткое
- краткосрочный
- So
- Соцсети
- социальные сети
- только
- Решения
- РЕШАТЬ
- решить
- Решение
- некоторые
- Кто-то
- удалось
- особый
- тратить
- шипы
- стандарт
- Область
- внезапный
- возникает
- система
- системы
- снасти
- Снасти
- Tackling
- взять
- с
- переговоры
- команда
- технологии
- Технический
- снижения вреда
- технологии
- срок
- который
- Ассоциация
- Государство
- их
- Их
- Там.
- Эти
- они
- вещи
- think
- мышление
- В третьих
- этой
- те
- тысячи
- время
- в
- топ
- к
- трек
- традиционный
- огромный
- по-настоящему
- два
- напишите
- Типы
- понимать
- созданного
- Обновление ПО
- us
- использование
- Информация о пользователе
- Пользовательский опыт
- пользователей
- ценностное
- очень
- Виртуальный
- Войти
- ждать
- хочет
- Wave
- способы
- we
- ЧТО Ж
- Что
- когда
- в то время как
- КТО
- будете
- Работа
- работает
- являетесь
- ВАШЕ
- зефирнет