De content op deze site is vertaald met behulp van kunstmatige intelligentie (AI) of machinevertalingstechnologie en kan fouten bevatten.

Skip to content

Hoe verslaggeving in de game werkt op Roblox

De technologie achter het vastleggen van gedetailleerde rapporten in dynamische 3D-omgevingen

  • Roblox verwerkt dagelijks 274 miljoen avatar-updates, en dat is slechts één soort door gebruikers gegenereerde inhoud die we controleren op veiligheidsovertredingen.1  
  • Meldingen van spelers zijn van cruciaal belang om overtredingen in een vroeg stadium op te sporen, en we willen het voor spelers gemakkelijk maken om alles te melden wat zij zien en waarvan zij denken dat het ongepast is of in strijd is met ons beleid. 
  • Omdat overtredingen in dynamische, door gebruikers gegenereerde 3D-content moeilijk te detecteren kunnen zijn, maken we gebruik van ray casting, het klonen van datamodellen en een vernieuwde meldingsinterface om spelers te helpen specifieke objecten te identificeren en te melden, samen met de gegevens en het visuele bewijs die wij nodig hebben om actie te ondernemen.

Op piekmomenten verwerkt het Roblox-platform dagelijks 274 miljoen avatar-updates.1 Het melden en beoordelen van misbruik in dit soort dynamische, door gebruikers gegenereerde 3D-content is een uitdaging, omdat het niet altijd een expliciet spoor achterlaat zoals statische content, zoals een tekstlogboek of een bericht op sociale media, dat wel doet. In deze blogpost beschrijven we onze aanpak voor het vastleggen van de gegevens en visuele context die nodig zijn om actie te ondernemen naar aanleiding van meldingen van spelers, van onze aanvankelijke ‘ray casting’-aanpak voor het identificeren van misbruikende avatars tot ons huidige systeem, dat is geïntegreerd met het Roblox-datamodel zodat spelers elk 3D-spelobject nauwkeurig kunnen melden.

Meldingen van spelers zijn cruciaal om mogelijke schendingen van het beleid in een vroeg stadium te identificeren, en we hebben onlangs onze meldingsprocedure aangepast om het voor spelers gemakkelijker te maken om onmiddellijk alles te melden of te blokkeren wat hen een ongemakkelijk of onveilig gevoel geeft. Meldingen van spelers leiden nu tot de automatische verwijdering van meer dan 19.000 avatars per maand die het beleid schenden, en dienen als een belangrijk vroege waarschuwing voor het opsporen van ongepaste games.2

De uitdaging van het vastleggen van dynamische inhoud

Aangezien dynamische, door gebruikers gegenereerde 3D-inhoud kan worden gecombineerd en in verschillende contexten kan worden gebruikt, bieden eenvoudige beschrijvingen of schermafbeeldingen niet altijd de gegevens die we nodig hebben om actie te ondernemen. Statische inhoud zoals posts op sociale media, forumreacties en video’s fungeren als permanente documentatie van een probleem, waardoor het eenvoudig is om zowel melding te maken van als het bewijsmateriaal te beoordelen. Tekst- en spraakchat worden op Roblox gedocumenteerd, maar andere soorten door gebruikers gegenereerde inhoud laten niet zo’n expliciet spoor achter. Afbeeldingen kunnen van elders op het platform worden geladen, dynamische interacties worden mogelijk niet vastgelegd en spelers combineren soms op zichzelf onschuldige kledingstukken tot een outfit die ongepast is. 

Om beleidsschendingen in dynamische situaties vast te leggen, moet een melder ten eerste een manier hebben om specifieke elementen binnen een spel te identificeren. Ten tweede moet het identificatiemechanisme object-ID’s voor de gemelde inhoud verstrekken, zodat het juiste object kan worden beoordeeld. 

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.

Detectie van beledigende avatars in 3D-ruimte 

Onze vorige meldingstool was voornamelijk gebaseerd op bewijsmateriaal uit chatlogs. Meldingen bevatten geen visuele informatie, waardoor er grote hiaten in het inzicht ontstonden. Toen we begonnen te werken aan een meldingstool die meer context rond andere soorten overtredingen kon vastleggen, richtten we ons eerst op een type object waarmee elke speler interactie heeft: avatars. Spelers kunnen avatars aanpassen om zichzelf op Roblox te vertegenwoordigen, en door informatie over een avatar vast te leggen, zouden we overtredingen aan specifieke spelers kunnen koppelen, zelfs als er geen schriftelijk bewijs in de chat was. Een systeem dat avatargegevens effectief kon identificeren, zou in de toekomst ook een belangrijke basis vormen voor andere soorten objecten. 

Mogelijke oplossingen waren onder meer het maken van screenshots of achtergrondopnames om meldingen met meer bewijsmateriaal te onderbouwen. We zijn begonnen met het testen van screenshots, omdat dit een eenvoudige manier was om inzichten te verzamelen, ook al legden ze niet alle mogelijke overtredingen vast. We stuitten al snel op een beperking: een 2D-afbeelding hielp ons niet om de avatar van een speler te onderscheiden van andere avatars en NPC’s in een 3D-ruimte. We konden niet altijd nauwkeurig de gebruikers-ID van de mogelijke overtreder identificeren wanneer avatars elkaar overlapten.

We moesten uitzoeken hoe we meer informatie konden extraheren, zodat we een 2D-afbeelding die op één bepaald moment was gemaakt, konden omzetten in bruikbaar bewijsmateriaal. 

We kozen voor ray casting als een efficiënte methode om relevante informatie in de 3D-ruimte te isoleren en deze op het moment van een melding in een 2D-afbeelding weer te geven. Wanneer een speler een melding opent, verzamelen we eerst een lijst met spelers in de sessie en filteren we iedereen eruit die zich niet in het weergavegebied bevindt. Vervolgens gebruiken we ray casting om de begrenzingskaders voor elke speleravatar te bepalen. Tegelijkertijd slaan we de inhoud van de framebuffer van de Roblox-engine automatisch op in een screenshot. Op deze manier kan een eenvoudige 2D-screenshot worden gekoppeld aan voldoende ruimtelijke gegevens over de 3D-wereld om de potentiële overtreder te onderscheiden van andere avatars en de omgeving. Met ray casting kunnen we de begrenzingskaders gemiddeld in 3,5 milliseconden bepalen. Langzamere methoden zouden een ongemakkelijke pauze hebben vereist, wat de ervaring zou verstoren. 

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.

Van daaruit kan asynchroon andere contextuele informatie over een mogelijke beleidsschending worden verzameld. Tegenwoordig activeert het systeem dit mechanisme automatisch wanneer een speler een melding indient. 

Markeringsmodus

Vervolgens hadden we een intuïtieve meldingsinterface nodig, zodat spelers snel inhoud konden identificeren die in strijd was met de regels. We hebben onze meldingsinterface geüpdatet met een Markeringsmodus, zodat spelers aanstootgevende items kunnen markeren en hun meldingen kunnen voorzien van meer informatie. Wanneer een speler op een aanstootgevend item klikte, lieten we een reeks stralen in een cirkel rond de cursor van de speler verschijnen. Als ze de avatar van een speler selecteerden, konden we alle benodigde metadata vastleggen om hun melding te beoordelen en actie te ondernemen. Uit intern gebruikersonderzoek bleek dat de markeermodus goed werd ontvangen, ook door jongere spelers (in de leeftijd van 9-13 jaar), die nu gemakkelijker een probleem konden markeren en een melding succesvol konden afronden.

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).

Met deze eerste versie van de nieuwe rapportagetool legden we alleen ID's voor avatars vast. Als een speler iets anders selecteerde, legden we geen object-ID vast. We konden rapporten bestuderen voor inzichten en meer context, contact opnemen met ontwikkelaars en beslissen wat we vervolgens zouden doen. 

Maar we hadden een mechanisme voor ogen waarmee spelers elk item in een game nauwkeurig konden markeren en de gegevens ervan direct in hun rapport konden vastleggen.

Gegevensmodelregistratie voor generieke inhoudstypen

Hoewel onze circulaire ray casting-aanpak goed werkte voor het onderscheiden van het beperkte aantal avatars of advertenties binnen het weergavegebied van een speler, was deze niet schaalbaar naar elk object in een spel. Bekijk de onderstaande omgeving eens:

In een dichte omgeving waar tientallen objecten zoals rotsen, struiken en bloemen elkaar overlappen en bewegen, zou ray casting in een cirkel niet op betrouwbare wijze één enkele bloem of struik kunnen identificeren. We moesten spelers in staat stellen objecten nauwkeuriger te markeren, en we hadden een manier nodig om de gegevens vast te leggen die bij elk object in een game horen. 

De engine van Roblox slaat al een weergave van de 3D-wereld op in zijn datamodel, maar het volledige datamodel voor een spel kan gigabytes groot zijn. Om de snelheid te optimaliseren, hebben we een kloneringsmechanisme ontwikkeld (een mechanisme dat we voor het eerst hebben ontwikkeld voor Translation Feedback) dat alleen de belangrijkste objecten kloneert die nodig zijn om een scène weer te geven. Zodra we deze gekloonde versie van het datamodel hebben, kunnen we de ‘Highlight Mode’ gebruiken om de melder in de gekloonde wereld te plaatsen, waar de speler precies in 3D kan markeren wat hij of zij wil melden. 

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

Deze aanpak geeft de speler meer controle over wat hij of zij rapporteert en levert ons de metadata op die nodig is om veel meer soorten inhoud te beoordelen. We voegen ook automatisch een screenshot toe aan het rapport om de moderatiebeoordeling te vergemakkelijken. 

Gegevensintegriteit

Een belangrijke vraag die we ons sinds het begin van het project hebben gesteld, is of we bewijsmateriaal moeten vastleggen op het apparaat van de gebruiker of op de gameserver. Roblox ondersteunt scripts aan de gebruikerszijde die mogelijk alleen de status van de gebruiker bijwerken, en niet die van de server. Bovendien zijn sommige fysica-effecten niet-deterministisch, wat betekent dat een vastlegging aan de serverzijde mogelijk niet precies weergeeft wat de melder heeft ervaren. We hebben gekozen voor vastlegging aan de clientzijde om ervoor te zorgen dat de melder een getrouwe weergave kan vastleggen van wat hij of zij ziet, maar dat brengt een afweging met zich mee: een kwaadwillende gebruiker zou mogelijk toegang kunnen krijgen tot een client en bewijsmateriaal kunnen vervalsen. 

Om dit risico te beperken, controleren we de nauwkeurigheid aan de hand van verschillende signalen en filteren we onnauwkeurige clientweergaven eruit. Ter vergelijking: meteorologen kunnen nauwkeurige weersvoorspellingen maken, zelfs als ze niet van elk weerstation nauwkeurige metingen ontvangen. 

Toekomstige werkzaamheden  

Dankzij deze verbeteringen en de mogelijkheid om rijkere visuele informatie vast te leggen, verwijdert het systeem nu automatisch meer dan 19.000 avatars per maand die het beleid schenden en is het een belangrijk signaal geworden voor het opsporen van ongepaste games. We zien ook een sterke acceptatie: ongeveer 19% van de in aanmerking komende meldingen bevat visuele annotaties.2 

We zijn al bezig met de volgende fase van verbeteringen en ontwikkelen een manier om dynamische overtredingen (zoals emotes in combinatie met spelersbewegingen) te detecteren die niet kunnen worden vastgesteld aan de hand van momentopnames. Later dit jaar zijn we van plan om het vastleggen van een tijdreeks van de gemelde scène mogelijk te maken. Terwijl Roblox makers blijft voorzien van de tools om rijkere interacties in de game te bouwen, zal ons veiligheidsteam zich blijven inzetten voor een veilige omgeving voor alle spelers.

We willen Rayan Hussain, Ryan Liu, Bridget Daly, Agatha Kielczewski, Alex Leavitt, Ying Liao en Andrew Xu bedanken voor hun inzet bij dit project.

1Gebaseerd op gegevens uit de eerste helft van 2025.

2Gebaseerd op gegevens van 1 maart tot en met 1 april 2026.