O conteúdo deste site foi traduzido usando inteligência artificial (IA) ou tecnologia de tradução automática e pode conter erros.

Skip to content

Como funciona a reportagem dentro do jogo no Roblox

A tecnologia por trás da captura de relatórios detalhados em ambientes 3D dinâmicos

  • O Roblox processa 274 milhões de atualizações diárias de avatares, e esse é apenas um dos tipos de conteúdo gerado por usuários que moderamos em busca de violações de segurança.1  
  • As denúncias dos jogadores são fundamentais para identificar violações precocemente, e queremos facilitar para que os jogadores denunciem qualquer coisa que vejam e considerem inadequada ou contrária às nossas políticas. 
  • Como as violações em conteúdo 3D dinâmico gerado por usuários podem ser difíceis de detectar, utilizamos ray casting, clonagem de modelos de dados e uma interface de denúncia totalmente reformulada para ajudar os jogadores a identificar e denunciar objetos específicos com os dados e as evidências visuais necessárias para que possamos tomar medidas.

Em horários de pico, a plataforma Roblox processa 274 milhões de atualizações diárias de avatares.1 Denunciar e analisar abusos nesse tipo de conteúdo 3D dinâmico e gerado por usuários é desafiador, pois nem sempre deixa um rastro explícito como o conteúdo estático, como um registro de texto ou uma postagem nas redes sociais. Nesta postagem do blog, descrevemos nossa abordagem para capturar os dados e o contexto visual necessários para agir com base nas denúncias dos jogadores, desde nossa abordagem inicial de ray casting para identificar avatares abusivos até nosso sistema atual, que se integra ao modelo de dados do Roblox para que os jogadores possam denunciar com precisão qualquer objeto 3D do jogo.

As denúncias dos jogadores são uma parte crucial para identificar precocemente possíveis violações das políticas, e recentemente atualizamos nosso fluxo de denúncias para facilitar que os jogadores denunciem ou bloqueiem imediatamente qualquer coisa que os faça se sentir desconfortáveis ou inseguros. Atualmente, as denúncias dos jogadores resultam na remoção automática de mais de 19.000 avatares que violam as políticas por mês e servem como um importante sinal precoce para detectar jogos inadequados.2

O desafio de capturar conteúdo dinâmico

Como o conteúdo 3D dinâmico gerado pelos usuários pode ser combinado e usado em diferentes contextos, descrições simples ou capturas de tela nem sempre fornecem os dados necessários para que possamos tomar medidas. Conteúdos estáticos, como postagens em redes sociais, comentários em fóruns e vídeos, funcionam como documentação permanente de um problema, facilitando tanto a denúncia quanto a análise das evidências. O chat de texto e de voz é documentado no Roblox, mas outros tipos de conteúdo gerado pelos usuários não deixam um rastro tão explícito. Imagens podem ser carregadas de outras partes da plataforma, interações dinâmicas podem não ser documentadas e, às vezes, os jogadores combinam itens de vestuário individualmente inofensivos para formar uma roupa inadequada. 

Para identificar violações das políticas em situações dinâmicas, um denunciante precisa, em primeiro lugar, de uma maneira de identificar elementos específicos dentro de um jogo. Em segundo lugar, o mecanismo de identificação precisa fornecer IDs de objetos para o conteúdo denunciado, de modo que o objeto correto possa ser avaliado. 

An example where layering two separate shirts, one with the letters “CK” on the sleeve and one with the letters “FU” on the torso, results in profanity that could evade moderation systems. Generating an ID for this avatar makes it possible to report and review.

Detecção de avatares abusivos no espaço 3D 

Nossa ferramenta de denúncia anterior dependia principalmente de evidências de registros de bate-papo. As denúncias não traziam nenhuma informação visual, deixando grandes lacunas na compreensão. Quando começamos a trabalhar em uma ferramenta de denúncia capaz de capturar mais contexto em torno de outros tipos de violações, focamos primeiro em um tipo de objeto com o qual todos os jogadores interagem: os avatares. Os jogadores podem personalizar avatares para se representarem no Roblox, e capturar informações sobre um avatar significava que seríamos capazes de associar violações a jogadores específicos, mesmo que não houvesse registro escrito no chat. Um sistema capaz de identificar efetivamente os dados dos avatares também seria uma base importante para outros tipos de objetos no futuro. 

As soluções possíveis incluíam fazer capturas de tela ou gravações de fundo para complementar as denúncias com mais evidências. Começamos a testar com capturas de tela porque elas eram uma maneira fácil de coletar informações, mesmo que não captassem todas as possíveis violações. Rapidamente nos deparamos com uma limitação: uma imagem 2D não nos ajudava a distinguir o avatar de um jogador de outros avatares e NPCs no espaço 3D. Nem sempre conseguíamos identificar com precisão o ID do usuário do possível infrator quando os avatares se sobrepunham.

Precisávamos descobrir como extrair mais informações para que pudéssemos transformar uma imagem 2D capturada em um único momento em evidência utilizável. 

Optamos pelo ray casting como um método eficiente para isolar informações relevantes no espaço 3D e representá-las em uma imagem 2D no momento da denúncia. Quando um jogador abre uma denúncia, primeiro reunimos uma lista dos jogadores na sessão e filtramos aqueles que não estão na janela de visualização. Em seguida, usamos o ray casting para determinar as caixas delimitadoras de cada avatar de jogador. Ao mesmo tempo, salvamos automaticamente o conteúdo do buffer de quadros do motor do Roblox em uma captura de tela. Dessa forma, uma simples captura de tela 2D pode ser combinada com dados espaciais suficientes sobre o mundo 3D para diferenciar o possível infrator de outros avatares e do ambiente ao redor. O ray casting nos permite determinar as caixas delimitadoras em 3,5 milissegundos, em média. Métodos mais lentos exigiriam uma pausa incômoda, prejudicando a experiência. 

An illustration of how ray casting helps determine which region in the 2D screenshot belongs to which avatar.
 A screenshot of a game with bounding boxes around avatars and tighter convex hulls that pinpoint where the avatar is on-screen.

A partir daí, outras informações contextuais sobre uma possível violação de política podem ser coletadas de forma assíncrona. Atualmente, o sistema aciona automaticamente esse mecanismo quando um usuário inicia uma denúncia. 

Modo de Destaque

Em seguida, precisávamos de uma interface de denúncia intuitiva para que os jogadores pudessem identificar rapidamente o conteúdo que infringia as regras. Atualizamos nossa interface de denúncia com um Modo de Destaque para permitir que os jogadores destacassem itens problemáticos e acrescentassem mais informações às suas denúncias. Quando um jogador clicava em um item problemático, projetávamos um conjunto de raios em um círculo ao redor do cursor do jogador. Se ele selecionasse o avatar de outro jogador, poderíamos capturar todos os metadados necessários para analisar a denúncia e tomar as medidas cabíveis. Em pesquisas internas com usuários, o Modo de Destaque foi bem recebido, inclusive pelos jogadores mais jovens (de 9 a 13 anos), que agora conseguiam destacar um problema com mais facilidade e concluir uma denúncia com sucesso.

Highlight Mode allows players to highlight what they want to report using the in-game report UI (e.g., the green circle around the duck avatar).

Nesta versão inicial da nova ferramenta de relatórios, capturamos apenas os IDs dos avatares. Se um jogador selecionasse outra coisa, não capturaríamos o ID do objeto. Poderíamos examinar os relatórios para obter insights e um contexto mais amplo, entrar em contato com os desenvolvedores e decidir o que fazer a seguir. 

Mas imaginamos um mecanismo que permitisse aos jogadores destacar com precisão qualquer item em um jogo e capturar seus dados diretamente em seus relatórios.

Captura do modelo de dados para tipos de conteúdo genéricos

Embora nossa abordagem de ray casting circular funcionasse bem para diferenciar o número limitado de avatares ou anúncios dentro da área de visualização do jogador, ela não era escalável para todos os objetos de um jogo. Considere o ambiente abaixo:

Em um ambiente denso, onde dezenas de objetos como rochas, arbustos e flores se sobrepõem e se animam, o ray casting em um círculo não identificaria de forma confiável uma única flor ou arbusto. Precisávamos permitir que os jogadores destacassem objetos com mais precisão e precisávamos de uma maneira de capturar os dados associados a qualquer objeto no jogo. 

O motor do Roblox já armazena uma representação do mundo 3D em seu modelo de dados, mas o modelo de dados completo de um jogo pode ter o tamanho de gigabytes. Para otimizar a velocidade, criamos um mecanismo de clonagem (um mecanismo que desenvolvemos inicialmente para o Feedback de Tradução) que clona apenas os objetos-chave necessários para renderizar uma cena. Assim que temos essa versão clonada do modelo de dados, podemos usar o Modo de Destaque para colocar o relator no mundo clonado, onde o jogador pode destacar com precisão o que deseja relatar em 3D. 

Highlight Mode now clones key objects in the game’s data model and allows players to directly highlight the object they’re reporting.

Essa abordagem dá ao usuário mais controle sobre o que está denunciando e nos fornece os metadados necessários para avaliar muito mais tipos de conteúdo. Também anexamos automaticamente uma captura de tela à denúncia para auxiliar na análise de moderação. 

Integridade dos dados

Uma questão fundamental que temos levantado desde o início do projeto é se devemos capturar evidências no dispositivo do usuário ou no servidor do jogo. O Roblox suporta scripts do lado do cliente que podem atualizar apenas o estado do cliente, e não o do servidor. Além disso, alguns efeitos físicos são não determinísticos, o que significa que uma captura do lado do servidor pode não mostrar exatamente o que o denunciante vivenciou. Decidimos pela captura do lado do cliente para garantir que o denunciante possa capturar uma representação fiel do que está vendo, mas isso traz uma desvantagem: um malfeitor poderia, potencialmente, obter acesso a um cliente e forjar evidências. 

Para mitigar isso, verificamos a precisão por meio de diversos sinais e descartamos representações imprecisas do cliente. A título de analogia, os meteorologistas conseguem produzir previsões meteorológicas precisas mesmo que não estejam recebendo leituras precisas de todas as estações meteorológicas. 

Trabalhos Futuros  

Graças a essas melhorias e à capacidade de capturar informações visuais mais ricas, o sistema agora remove automaticamente mais de 19.000 avatares que violam as políticas por mês e se tornou um importante indicador para a detecção de jogos inadequados. Também observamos uma forte adoção, com aproximadamente 19% das denúncias elegíveis incluindo anotações visuais.2 

Já estamos trabalhando na próxima fase de melhorias, desenvolvendo uma maneira de detectar violações dinâmicas (como emotes combinados com o movimento do jogador) que não podem ser determinadas por instantâneos pontuais. Ainda este ano, planejamos habilitar a captura de uma sequência temporal da cena que está sendo denunciada. À medida que a Roblox continua a fornecer aos criadores as ferramentas para construir interações mais ricas no jogo, nossa equipe de segurança continuará a promover um ambiente seguro para todos os jogadores.

Gostaríamos de agradecer a Rayan Hussain, Ryan Liu, Bridget Daly, Agatha Kielczewski, Alex Leavitt, Ying Liao e Andrew Xu pelo trabalho neste projeto.

1Com base em dados do primeiro semestre de 2025.

2Com base em dados de 1º de março a 1º de abril de 2026.