Roblox-এ ইন-গেম রিপোর্টিং কীভাবে কাজ করে
গতিশীল 3D পরিবেশে বিস্তারিত প্রতিবেদন ধারণের প্রযুক্তি

- Roblox প্রতিদিন ২৭৪ মিলিয়ন অবতার আপডেট প্রক্রিয়া করে, এবং এটি মাত্র এক ধরনের ব্যবহারকারী-উৎপাদিত বিষয়বস্তু যা আমরা নিরাপত্তা লঙ্ঘনের জন্য নিয়ন্ত্রণ করি।1
- খেলোয়াড়দের রিপোর্টগুলো লঙ্ঘনগুলো দ্রুত শনাক্ত করার একটি গুরুত্বপূর্ণ অংশ, এবং আমরা খেলোয়াড়দের জন্য যা কিছু তারা অনুপযুক্ত বা আমাদের নীতিবিরোধী মনে করে, তা রিপোর্ট করা সহজ করতে চাই।
- কারণ গতিশীল, ব্যবহারকারী-উৎপাদিত 3D সামগ্রীর লঙ্ঘন ধরা সবসময় সহজ নয়, আমরা রে-কাস্টিং, ডেটা মডেল ক্লোনিং এবং পুনর্নির্মাণকৃত রিপোর্টিং UI ব্যবহার করি যাতে খেলোয়াড়রা প্রয়োজনীয় ডেটা ও ভিজ্যুয়াল প্রমাণসহ নির্দিষ্ট অবজেক্ট শনাক্ত ও রিপোর্ট করতে পারে, যা আমাদের পদক্ষেপ নিতে সহায়তা করে।
চরম সময়ে, Roblox প্ল্যাটফর্ম প্রতিদিন ২৭৪ মিলিয়ন অবতার আপডেট প্রক্রিয়া করে।1 এই ধরনের গতিশীল, ব্যবহারকারী-উৎপাদিত ৩ডি কনটেন্টে অপব্যবহার রিপোর্ট এবং পর্যালোচনা করা চ্যালেঞ্জিং, কারণ এটি সবসময় টেক্সট লগ বা সামাজিক মিডিয়া পোস্টের মতো স্থির কনটেন্টের স্পষ্ট কোনো ট্রেইল রেখে যায় না। এই ব্লগ পোস্টে, আমরা খেলোয়াড়দের রিপোর্টের ওপর ব্যবস্থা নেওয়ার জন্য প্রয়োজনীয় ডেটা এবং ভিজ্যুয়াল প্রসঙ্গ সংগ্রহের আমাদের পদ্ধতি বর্ণনা করেছি, অপব্যবহারকারী অবতার শনাক্ত করার আমাদের প্রাথমিক রে-কাস্টিং পদ্ধতি থেকে শুরু করে আমাদের বর্তমান সিস্টেম পর্যন্ত, যা Roblox ডেটা মডেলের সাথে সংহত হয়ে খেলোয়াড়দের যেকোনো 3D গেম অবজেক্ট সঠিকভাবে রিপোর্ট করতে দেয়।
খেলোয়াড়দের রিপোর্ট সম্ভাব্য নীতি লঙ্ঘনগুলো আগে শনাক্ত করার একটি গুরুত্বপূর্ণ অংশ, এবং সম্প্রতি আমরা আমাদের রিপোর্টিং ফ্লো আপডেট করেছি যাতে খেলোয়াড়রা তাদের অস্বস্তি বা নিরাপত্তাহীনতা সৃষ্টি করে এমন যেকোনো কিছু তাৎক্ষণিকভাবে রিপোর্ট বা ব্লক করতে পারে। এখন খেলোয়াড়দের রিপোর্টের ফলে প্রতি মাসে স্বয়ংক্রিয়ভাবে ১৯,০০০-এরও বেশি নীতি লঙ্ঘনকারী অবতার অপসারণ করা হয় এবং এটি অনুপযুক্ত গেম শনাক্ত করার একটি গুরুত্বপূর্ণ প্রাথমিক সংকেত হিসেবে কাজ করে।2
গতিশীল বিষয়বস্তু ধারণের চ্যালেঞ্জ
যেহেতু গতিশীল, ব্যবহারকারী-উৎপাদিত 3D বিষয়বস্তু বিভিন্ন প্রসঙ্গে একত্রিত ও ব্যবহার করা যায়, তাই সাধারণ বর্ণনা বা স্ক্রিনশট সবসময় আমাদের প্রয়োজনীয় তথ্য সরবরাহ করে না। সামাজিক মিডিয়া পোস্ট, ফোরাম মন্তব্য এবং ভিডিওর মতো স্থির বিষয়বস্তু কোনো সমস্যার স্থায়ী নথিপত্র হিসেবে কাজ করে, যা রিপোর্ট এবং প্রমাণ পর্যালোচনা উভয়কেই সহজ করে তোলে। Roblox-এ টেক্সট এবং ভয়েস চ্যাট নথিভুক্ত হয়, তবে অন্যান্য ধরনের ব্যবহারকারী-উৎপাদিত বিষয়বস্তু এতটা স্পষ্ট কোনো চিহ্ন রেখে যায় না। ইমেজগুলো প্ল্যাটফর্মের অন্যত্র থেকে লোড করা যেতে পারে, গতিশীল ইন্টার্যাকশনগুলো নথিভুক্ত নাও হতে পারে, এবং খেলোয়াড়রা কখনও কখনও স্বতন্ত্রভাবে নিরীহ পোশাকের আইটেম একত্রিত করে এমন একটি পোশাক তৈরি করে যা অনুপযুক্ত।
গতিময় পরিস্থিতিতে নীতি লঙ্ঘনগুলি ধারণ করার জন্য, একজন রিপোর্টারকে প্রথমে গেমের নির্দিষ্ট উপাদানগুলি সনাক্ত করার একটি উপায় প্রয়োজন। দ্বিতীয়ত, সনাক্তকরণ ব্যবস্থাকে রিপোর্টকৃত বিষয়বস্তুর জন্য অবজেক্ট আইডি প্রদান করতে হবে যাতে সঠিক অবজেক্টটি মূল্যায়ন করা যায়।

৩ডি স্পেসে অপমানজনক অবতার সনাক্তকরণ
আমাদের পূর্ববর্তী রিপোর্টিং টুল প্রধানত চ্যাট লগ প্রমাণের ওপর নির্ভর করত। রিপোর্টগুলোতে কোনো ভিজ্যুয়াল তথ্য থাকত না, ফলে বোঝার ক্ষেত্রে বড় ফাঁক থেকে যেত। যখন আমরা এমন একটি রিপোর্টিং টুল তৈরি করতে শুরু করলাম যা অন্যান্য ধরনের লঙ্ঘনের প্রেক্ষাপট আরও ভালোভাবে ধারণ করতে পারে, তখন আমরা প্রথমে এমন একটি বস্তুর দিকে মনোযোগ দিলাম যার সাথে প্রতিটি খেলোয়াড়ই যোগাযোগ করে: অবতার। খেলোয়াড়রা Roblox-এ নিজেদের উপস্থাপন করার জন্য অবতার কাস্টমাইজ করতে পারে, এবং একটি অবতার সম্পর্কে তথ্য সংগ্রহ করার মানে ছিল যে আমরা চ্যাটে কোনো লিখিত প্রমাণ না থাকলেও লঙ্ঘনগুলোকে নির্দিষ্ট খেলোয়াড়দের সাথে যুক্ত করতে পারব। একটি সিস্টেম যা কার্যকরভাবে অবতার ডেটা শনাক্ত করতে পারে তা ভবিষ্যতে অন্যান্য ধরনের বস্তুর জন্যও একটি গুরুত্বপূর্ণ ভিত্তি হবে।
সম্ভাব্য সমাধানগুলির মধ্যে ছিল রিপোর্টগুলিতে আরও প্রমাণ সংযোজন করার জন্য স্ক্রিনশট বা ব্যাকগ্রাউন্ড রেকর্ডিং নেওয়া। আমরা স্ক্রিনশট নিয়ে পরীক্ষা শুরু করেছিলাম কারণ এটি তথ্য সংগ্রহের একটি সহজ উপায় ছিল, যদিও এতে সব সম্ভাব্য লঙ্ঘন ধরা পড়ত না। শীঘ্রই আমরা একটি সীমাবদ্ধতার মুখোমুখি হলাম: একটি 2D ছবি 3D পরিবেশে খেলোয়াড়ের অবতারকে অন্যান্য অবতার এবং NPC-দের থেকে আলাদা করতে সাহায্য করছিল না। যখন অবতারগুলো ওভারল্যাপ করত, তখন সম্ভাব্য লঙ্ঘনকারীর ব্যবহারকারী আইডি সবসময় সঠিকভাবে শনাক্ত করা যেত না।

আমরা আরও তথ্য আহরণ করার উপায় খুঁজে বের করতে চেয়েছিলাম, যাতে একটি নির্দিষ্ট সময়ে তোলা ২ডি চিত্রটিকে ব্যবহারযোগ্য প্রমাণ হিসেবে রূপান্তর করতে পারি।
আমরা ৩ডি স্পেসে প্রাসঙ্গিক তথ্য আলাদা করতে এবং রিপোর্ট করার মুহূর্তে সেটি ২ডি ইমেজে উপস্থাপন করতে রে-কাস্টিংকে একটি কার্যকর পদ্ধতি হিসেবে বেছে নিয়েছি। যখন কোনো খেলোয়াড় রিপোর্ট খোলে, আমরা প্রথমে সেশনে থাকা খেলোয়াড়দের তালিকা সংগ্রহ করি এবং ভিউপোর্টে নেই এমন খেলোয়াড়দের বাদ দিই। তারপর আমরা রে-কাস্টিং ব্যবহার করে প্রতিটি খেলোয়াড় অবতারের বাউন্ডিং বক্স নির্ধারণ করি। একই সময়ে, আমরা স্বয়ংক্রিয়ভাবে Roblox ইঞ্জিনের ফ্রেম বাফার বিষয়বস্তু একটি স্ক্রিনশটে সংরক্ষণ করি। এভাবে, একটি সাধারণ 2D স্ক্রিনশটকে 3D বিশ্বের পর্যাপ্ত স্থানগত তথ্যের সাথে যুক্ত করে সম্ভাব্য অপরাধীকে অন্যান্য অবতার এবং আশেপাশের পরিবেশ থেকে পৃথক করা যায়। রে-কাস্টিং আমাদের গড়ে ৩.৫ মিলিসেকেন্ডে বাউন্ডিং বক্স নির্ধারণ করতে দেয়। ধীর পদ্ধতিগুলো অস্বস্তিকর বিরতি সৃষ্টি করতো, যা অভিজ্ঞতাকে ব্যাহত করতো।


সেখান থেকে সম্ভাব্য নীতি লঙ্ঘন সম্পর্কে অন্যান্য প্রাসঙ্গিক তথ্য অ্যাসিঙ্ক্রোনাসভাবে সংগৃহীত করা যেতে পারে। আজ, যখন কোনো খেলোয়াড় রিপোর্ট শুরু করে, সিস্টেম স্বয়ংক্রিয়ভাবে এই প্রক্রিয়াটি সক্রিয় করে।
হাইলাইট মোড
এরপর, খেলোয়াড়রা যাতে দ্রুত লঙ্ঘনকারী বিষয়বস্তু চিহ্নিত করতে পারে, তার জন্য আমাদের একটি স্বজ্ঞাত রিপোর্টিং ইন্টারফেসের প্রয়োজন ছিল। আমরা আমাদের রিপোর্টিং ইন্টারফেসে একটি হাইলাইট মোড যুক্ত করেছি যাতে খেলোয়াড়রা আপত্তিকর আইটেমগুলো হাইলাইট করতে এবং তাদের রিপোর্টে আরও তথ্যসহ নোট যোগ করতে পারে। যখন কোনো খেলোয়াড় আপত্তিকর আইটেমে ক্লিক করত, তখন আমরা খেলোয়াড়ের কার্সরের চারপাশে একটি বৃত্তে রশ্মির বিস্তার ঘটাতাম। যদি তারা কোনো খেলোয়াড়ের অবতার নির্বাচন করত, তাহলে আমরা তাদের রিপোর্ট পর্যালোচনা এবং প্রয়োজনীয় ব্যবস্থা গ্রহণের জন্য সমস্ত প্রয়োজনীয় মেটাডেটা সংগ্রহ করতে পারতাম। অভ্যন্তরীণ ব্যবহারকারী গবেষণায়, হাইলাইট মোড ভালো সাড়া পেয়েছিল, বিশেষ করে ৯-১৩ বছর বয়সী ছোট খেলোয়াড়দের মধ্যে, যারা এখন আরও সহজে সমস্যা চিহ্নিত করতে এবং সফলভাবে রিপোর্ট সম্পন্ন করতে পারছিল।

এই নতুন রিপোর্টিং টুলের প্রাথমিক সংস্করণে আমরা শুধুমাত্র অবতারের আইডি সংগ্রহ করতাম। যদি কোনো খেলোয়াড় অন্য কিছু নির্বাচন করতো, আমরা কোনো অবজেক্ট আইডি সংগ্রহ করতাম না। আমরা রিপোর্টগুলো পর্যালোচনা করে অন্তর্দৃষ্টি ও আরও প্রেক্ষাপট খুঁজে বের করতে পারতাম, ডেভেলপারদের সাথে যোগাযোগ করতে পারতাম, এবং পরবর্তী পদক্ষেপ নির্ধারণ করতে পারতাম।
কিন্তু আমরা এমন একটি ব্যবস্থা কল্পনা করেছিলাম যা খেলোয়াড়দের গেমের যেকোনো আইটেম সঠিকভাবে হাইলাইট করে সরাসরি তাদের রিপোর্টে সেটির ডেটা ধারণ করতে দেয়।
সাধারণ বিষয়বস্তু প্রকারের জন্য ডেটা মডেল ক্যাপচার
যদিও আমাদের বৃত্তাকার রশ্মি নিক্ষেপ পদ্ধতি খেলোয়াড়ের ভিউপোর্টে সীমিত সংখ্যক অবতার বা বিজ্ঞাপনকে পৃথক করতে ভালোভাবে কাজ করেছিল, এটি গেমের প্রতিটি বস্তুর জন্য স্কেলযোগ্য ছিল না। নিচের পরিবেশটি বিবেচনা করুন:

ঘন পরিবেশে, যেখানে পাথর, ঝোপঝাড় এবং ফুলসহ কয়েক ডজন বস্তু ওভারল্যাপ করে এবং অ্যানিমেট হয়, বৃত্তাকার রে-কাস্টিং কোনো একক ফুল বা ঝোপকে নির্ভরযোগ্যভাবে শনাক্ত করতে পারত না। খেলোয়াড়দের বস্তুগুলো আরও নিখুঁতভাবে হাইলাইট করার সুযোগ দিতে এবং গেমের যেকোনো বস্তুর সাথে সম্পর্কিত ডেটা সংগ্রহ করার উপায় প্রয়োজন ছিল।
Roblox-এর ইঞ্জিন ইতিমধ্যেই তার ডেটা মডেলে 3D বিশ্বের একটি উপস্থাপনা সংরক্ষণ করে, কিন্তু একটি গেমের পুরো ডেটা মডেল গিগাবাইট আকারের হতে পারে। গতি বাড়ানোর জন্য, আমরা একটি ক্লোনিং মেকানিজম তৈরি করেছি (যেটি আমরা প্রথমে Translation Feedback-এর জন্য তৈরি করেছিলাম) যা একটি দৃশ্য রেন্ডার করতে শুধুমাত্র প্রয়োজনীয় মূল অবজেক্টগুলো ক্লোন করে। একবার আমাদের কাছে ডেটা মডেলের এই ক্লোনকৃত সংস্করণটি থাকলে, আমরা Highlight Mode ব্যবহার করে রিপোর্টারকে সেই ক্লোনকৃত জগতে নিয়ে যেতে পারি, যেখানে খেলোয়াড় 3D-তে ঠিক যে বিষয়টি রিপোর্ট করতে চায় তা সঠিকভাবে হাইলাইট করতে পারে।

এই পদ্ধতি খেলোয়াড়কে তারা যা রিপোর্ট করছে তার উপর আরও নিয়ন্ত্রণ দেয় এবং আমাদের অনেক ধরনের বিষয়বস্তু মূল্যায়নের জন্য প্রয়োজনীয় মেটাডেটা সরবরাহ করে। আমরা রিপোর্টে স্বয়ংক্রিয়ভাবে একটি স্ক্রিনশট সংযুক্ত করি যাতে মডারেটরের পর্যালোচনায় সহায়তা হয়।
ডেটা অখণ্ডতা
প্রকল্পের শুরু থেকেই আমরা যে একটি মূল প্রশ্ন করেছি তা হলো, প্রমাণ কি ক্লায়েন্টের ডিভাইসে না গেম সার্ভারে ধারণ করা উচিত। Roblox ক্লায়েন্ট-সাইড স্ক্রিপ্ট সমর্থন করে যা শুধুমাত্র ক্লায়েন্টের অবস্থা আপডেট করতে পারে, সার্ভারে নয়। এছাড়াও, কিছু ফিজিক্স ইফেক্ট নন-ডেটারমিনিস্টিক, যার অর্থ সার্ভার-সাইড ক্যাপচার রিপোর্টার যা অভিজ্ঞতা করেছে তা সঠিকভাবে দেখাবে না। আমরা ক্লায়েন্ট-সাইড ক্যাপচার বেছে নিয়েছি যাতে রিপোর্টার তাদের দেখা বিষয়টির সঠিক প্রতিচ্ছবি ধারণ করতে পারে, তবে এর একটি বিনিময় আছে: একজন দুষ্কৃতকারী সম্ভাব্যভাবে ক্লায়েন্টে প্রবেশ করে প্রমাণ জাল করতে পারে।
এটি প্রশমিত করতে, আমরা বিভিন্ন সংকেতের মাধ্যমে সঠিকতা যাচাই করি এবং অ-নির্ভুল ক্লায়েন্ট উপস্থাপনাগুলো বাদ দিই। উদাহরণস্বরূপ, আবহাওয়াবিদরা প্রতিটি আবহাওয়া স্টেশন থেকে সঠিক তথ্য না পেলেও সঠিক আবহাওয়া পূর্বাভাস দিতে পারেন।
ভবিষ্যতের কাজ
এই উন্নতি এবং আরও সমৃদ্ধ ভিজ্যুয়াল তথ্য ধারণের সক্ষমতার কারণে, সিস্টেমটি এখন প্রতি মাসে স্বয়ংক্রিয়ভাবে 19,000-এরও বেশি নীতি লঙ্ঘনকারী অবতার সরিয়ে ফেলছে এবং অনুপযুক্ত গেম সনাক্তকরণের জন্য একটি গুরুত্বপূর্ণ সংকেত হয়ে উঠেছে। আমরা দৃঢ় গ্রহণযোগ্যতাও দেখেছি, যেখানে প্রায় 19% যোগ্য রিপোর্টে ভিজ্যুয়াল অ্যানোটেশন অন্তর্ভুক্ত রয়েছে।2
আমরা ইতিমধ্যেই পরবর্তী ধাপের উন্নতির কাজ শুরু করে দিয়েছি, এমন একটি উপায় তৈরি করছি যা গতিশীল লঙ্ঘন (যেমন প্লেয়ারের চলাচলের সাথে ইমোটের সমন্বয়) সনাক্ত করতে পারবে, যা নির্দিষ্ট সময়ের স্ন্যাপশট দিয়ে নির্ধারণ করা যায় না। এই বছরের শেষের দিকে, আমরা রিপোর্টকৃত দৃশ্যের একটি সময়ানুক্রমিক সিকোয়েন্স ধারণের সুবিধা চালু করার পরিকল্পনা করছি। Roblox যতক্ষণ নির্মাতাদের জন্য আরও সমৃদ্ধ ইন-গেম ইন্টারঅ্যাকশন তৈরি করার সরঞ্জাম প্রদান করে যাবে, আমাদের নিরাপত্তা দল সকল প্লেয়ারের জন্য একটি নিরাপদ পরিবেশ বজায় রাখতে কাজ করে যাবে।
আমরা এই প্রকল্পে কাজ করার জন্য রায়ান হুসেইন, রায়ান লিউ, ব্রিজেট ড্যালি, আগাথা কিয়েলচেভস্কি, অ্যালেক্স লেভিট, ইয়িং লিয়াও এবং অ্যান্ড্রু শু-কে ধন্যবাদ জানাই।
১. H1, 2025-এর তথ্য অনুযায়ী।
2২০২৬ সালের ১ মার্চ থেকে ১ এপ্রিল পর্যন্ত তথ্যের উপর ভিত্তি করে।


