تقديم SLIM: نماذج تفاعلية خفيفة الوزن وقابلة للتطوير
الاستفادة من قوة مركبات العرض الخفيفة لبناء عوالم أكبر وأكثر تفصيلاً لكل جهاز

تضم Roblox ملايين التجارب، بدءًا من الألعاب المصغرة البسيطة وصولًا إلى العوالم المفتوحة الشاسعة المليئة بأصول ثلاثية الأبعاد عالية الدقة. هدفنا هو دعم التجارب المتزايدة الكثافة والتعقيد التي يتصورها المبدعون عبر مجموعة واسعة من أجهزة المستخدمين، الأمر الذي يتطلب الابتكار في محركنا وأنظمة توصيل المحتوى والبنية التحتية. تعد النماذج التفاعلية الخفيفة القابلة للتوسع (SLIM) جزءًا من جهد تطوير متعدد الأجزاء يمكّن المبدعين من تحقيق رؤاهم الفنية الكبرى دون المساس بالأداء.
تتيح SLIM للمبدعين إنشاء تمثيلات خفيفة الوزن تلقائيًا لأي كائن في تجربة Roblox، مما يقلل من عدد طلبات الرسم والمثلثات ومثيلات نماذج البيانات التي يحتاجها العميل لعرض عالم قوي وسلس. توفر SLIM لنموذج البث لدينا طرقًا جديدة وقوية لتحسين المحتوى، مما يسمح للمستخدم الذي يمتلك جهاز كمبيوتر شخصي عالي الأداء للألعاب والمستخدم الذي يمتلك جهازًا محمولًا منخفض الأداء بمشاركة نفس التجربة بأعلى دقة يمكن لجهازهما التعامل معها.

بدون بث المثيلات و SLIM | مع دفق المثيلات و SLIM | |
مثيلات نموذج بيانات العميل | 159,745 | 92,536 |
المثلثات | 20 مليون | 3.35 مليون |
مرات الاستدعاء للرسم | 2,402 | 1,454 |
ركيزتا البث: المثيلات والأصول
عندما تشاهد فيلمًا على خدمة البث المفضلة لديك، لا يقوم جهازك بتنزيل الملف بالكامل قبل أن تبدأ المشاهدة. بل يقوم بتنزيل البيانات الكافية فقط لتتمكن من بدء المشاهدة على الفور، ثم يستمر في تنزيل (أو تخزين مؤقت) الثواني القليلة التالية حتى لا تتعرض تجربة المشاهدة لأي انقطاع. إذا كنت تشاهد البث على جهاز منخفض المواصفات أو عبر اتصال بطيء، تتكيف المنصة تلقائيًا عن طريق إرسال نسخة من المحتوى بدقة أقل إليك بينما تقوم بتنزيل البيانات الكافية لبث المحتوى عالي الدقة.
يستخدم Roblox مفهومًا مشابهًا لبث المحتوى على الفور، لكن البيانات المطلوبة لعرض محاكاة ثلاثية الأبعاد عالية الدقة تمثل تحديات خاصة بها. في حين أن الفيديو يحتوي على خط زمني خطي للمحتوى يُشاهد من منظور واحد، فإن تجارب Roblox تحتوي على عوالم ثلاثية الأبعاد تفاعلية واسعة مليئة بأنواع عديدة من العناصر التي يمكن مشاهدتها من منظورات متعددة يتحكم فيها المستخدم. أضف إلى ذلك 151.5 مليون مستخدم نشط يوميًا يلعبون ويستكشفون ويبثون في النهاية المحتوى من مجموعة متنوعة من الأجهزة، وهناك إمكانات هائلة لتحسين كيفية تقديم المحتوى وعرضه.1
كل ما يراه المستخدم على Roblox — سيارة أو شجرة أو صورة رمزية أو مبنى — يتم تمثيله كعدد من الحالات داخل المحرك. على سبيل المثال، يتم تقسيم السيارة القابلة للاستخدام إلى حالات للمصدات والأبواب والعجلات وما إلى ذلك. يتم إنشاء كل حالة في التجربة باستخدام أصول متعددة، مثل الشبكات ثلاثية الأبعاد والأنسجة والرسوم المتحركة والصوت.
يتم تقسيم جميع عمليات البث على Roblox تقريبًا إلى تقنيتين أساسيتين: بث المثيلات وبث الأصول.
- يحدد بث المثيلات المثيلات التي يحتاج جهاز المستخدم إلى بثها. لا داعي لبث أجزاء من التجربة لا يستطيع المستخدم رؤيتها أو التفاعل معها بعد. في المثال أعلاه، يتم بث المثيلات التي تمثل المباني القريبة فقط إلى العميل.
- يحدد بث الأصول جودة المثيلات التي يتم بثها. لا داعي لتنزيل نسيج 4K عالي الدقة لجبل بعيد جدًا بحيث لا يستطيع المستخدم تمييز التفاصيل الدقيقة. في الصورة أعلاه، تستخدم المباني البعيدة والمباني التي تشغل مساحة صغيرة من الشاشة شبكات مخففة ونسيجًا منخفض الدقة.
العقل المركزي لهذه العملية هو نظام نسميه Harmony، والذي يراقب الموارد المتاحة لكل مستخدم في كل إطار. يقوم Harmony بضبط كل من دفق المثيلات والأصول لتوفير أفضل تجربة بناءً على ذاكرة الجهاز، وحمل وحدة معالجة الرسومات (GPU) ووحدة المعالجة المركزية (CPU)، وعرض النطاق الترددي للشبكة. بالنسبة لأجهزة الكمبيوتر المخصصة للألعاب عالية الأداء، يعمل Harmony على رفع كل شيء إلى أعلى جودة. أما بالنسبة للأجهزة المحمولة ذات الاتصال الضعيف، فيقوم تلقائيًا بتقليل الجودة للحفاظ على سلاسة تجربة المستخدم.
ناقش الفريق التقنية الكامنة وراء البث وترميز السحابة و SLIM في الحلقة 30 من بودكاست Tech Talks.
SLIM: نماذج تفاعلية خفيفة الوزن وقابلة للتوسع
الفكرة الأساسية لـ SLIM بسيطة ولكنها قوية: يمكن لـ SLIM إنشاء تمثيلات متعددة خفيفة الوزن ومُحسّنة لأي كائن أو نموذج في عالم المبدع وتخزينها على الخادم ليتم استرجاعها في وقت التشغيل. يمكن لعميل كل مستخدم بعد ذلك التبديل ديناميكيًا بين عرض المثيلات والأصول الأصلية أو أحد تمثيلات SLIM الخفيفة الوزن، بناءً على الموارد المتاحة للجهاز.
يستخدم SLIM تقنيتين رئيسيتين لإنشاء تمثيل خفيف الوزن:
1. التركيب
أولاً، يجمع SLIM أجزاء متعددة في أجزاء أقل. بدلاً من أن تتطلب السيارة أدناه 112 شبكة منفصلة و24 نسيجًا منفصلاً، قد يتطلب تمثيلها الخفيف شبكة واحدة وأربعة أنسجة فقط. يتم ضبط عملية التركيب بدقة لتتوافق مع الطريقة التي سيقوم بها المحرك في النهاية بعرض المحتوى، مما يزيل الهندسة غير المرئية داخل الكائن ويقلل من عدد طلبات الرسم اللازمة لعرضه.

2. مستوى التفاصيل (LoD)
بعد تكوين النموذج، يقوم SLIM بإنشاء إصدارات متعددة بمستويات تفصيل مختلفة. وهذا يعني إنشاء إصدارات من الشبكة ثلاثية الأبعاد بمثلثات أقل بكثير وإنشاء نسيج بدقة أقل بكثير، كما نفعل مع أي شبكة فردية أو عنصر نسيج باستخدام تقنيات LoD التقليدية. يمكن تحسين هذه التقنيات بشكل أكبر عند تطبيقها على نماذج SLIM نظرًا لأن لدينا إطارات إحداثيات فردية لكل مثيل أساسي. وهذا يمنحنا سياقًا كاملاً لكيفية قصد المبدع عرض كل من هذه العناصر معًا. وبفضل هذه المعرفة، يتيح لنا SLIM اتخاذ قرارات أكثر استنارة بشأن الأماكن التي يجب إزالة التفاصيل غير الضرورية منها والأماكن التي يجب الاحتفاظ فيها بالتفاصيل التي سيلاحظها المستخدمون.

التمثيل الصحيح في الوقت المناسب
بمجرد إنشاء تمثيلات متعددة لكائن ما، يجب على SLIM تحديد أي منها سيُستخدم لجهاز مستخدم معين أو ما إذا كان سيتم استخدام تقنيات العرض التقليدية بدلاً من ذلك. يقسم النظام العالم إلى ثلاث مناطق متميزة. هناك طريقة بسيطة للتفكير في هذه المناطق وهي تخيل دوائر متحدة المركز من التفاصيل تمتد إلى الخارج من المشغل.

منطقة HH (المثيلات الثقيلة، العرض الثقيل)
في منطقة HH، يتم بث مثيلات كاملة وثقيلة من الخادم إلى نموذج بيانات العميل، ويحدد العميل تمثيل الأصل المحدد الذي سيتم تنزيله وعرضه لكل مثيل. لا يزال من الممكن تحقيق التوسع باستخدام مستويات التفاصيل (LoD) للشبكة ومستويات الميبيكس (mips) للنسيج في هذه المنطقة، ولكن لا يوجد تركيب. قبل SLIM، كانت هذه هي الطريقة التي يتم بها عرض كل مثيل يتم بثه إلى تجربة ما.
منطقة HL (مثيلات ثقيلة، عرض خفيف)
تقع منطقة HL بين منطقتي HH و LL. في هذه المنطقة، يمتلك العميل المثيلات الثقيلة في نموذج البيانات، ولكنه يمكنه اختيار العرض باستخدام خط أنابيب العرض الكامل أو خط أنابيب SLIM. تتكيف هذه المنطقة لضمان انتقال سلس بين منطقتي HH و LL حتى إذا واجه المستخدم تأخيرًا في الشبكة. نقطة الانتقال بين منطقتي HH و HL ديناميكية، مما يسمح لـ Harmony بالتوسع أو التقلص على الفور استجابةً لارتفاع مفاجئ في الموارد في أي من الاتجاهين.
منطقة LL (مثيلات خفيفة الوزن، عرض خفيف الوزن)
في منطقة LL، يقوم العميل ببث تمثيلات خفيفة للغاية فقط للمثيلات الضرورية لتعريف إطار إحداثيات لنموذج SLIM، إلى جانب الحد الأدنى من البيانات الوصفية. يتم عرض نماذج SLIM المركبة خفيفة الوزن فقط في هذه المنطقة، بدلاً من كل مثيل وأصل على حدة. تتطلب منطقة LL عددًا أقل بكثير من المثلثات ونداءات الرسم، وتقلل من استخدام الذاكرة على جهاز المستخدم مقارنةً ببث كل مثيل ثقيل الوزن واستخدام مسار العرض التقليدي.
تسمح تقنية هذه المنطقة للعميل بعرض العالم المرئي بأكمله في جميع الأوقات دون تحمل التكلفة الحسابية الكاملة لاستخدام كل مثيل وأصل ثقيل الوزن في وقت واحد. الكائنات البعيدة هي تمثيلات خفيفة الوزن ومُحسّنة للغاية، يتم استبدالها بنظيراتها عالية الدقة مع اقتراب المستخدم. تمنح قدرة SLIM على إنشاء نماذج مركبة ونماذج LoD متعددة المقاييس Harmony المزيد من الأدوات التي يمكنها استخدامها لتحسين جودة الأصول لكل جهاز مستخدم.
عندما يجتمع كل شيء معًا، يجب أن يشعر اللاعب بالانغماس التام وألا يلاحظ أيًا من نقاط الانتقال أو مستويات التفاصيل المتفاوتة.
المستقبل: إلى أين يتجه SLIM من هنا؟
تعد SLIM مجرد الخطوة الأولى في رحلة متعددة الخطوات، ونحن متحمسون لرؤية كيف سيقوم المبدعون بدمج هذه التقنية في سير عملهم. نحن نستكشف توسيع نطاق SLIM في اتجاهين رئيسيين في المستقبل.
تحديد ما يمكن تطبيقه أيضًا باستخدام SLIM
نبدأ بالنماذج الثابتة التي يحددها المبدعون في Studio، ولكن في المستقبل، ستتمكن SLIM من تحسين بعض النماذج الأكثر تعقيدًا على Roblox: الأفاتار الخاصة بالمنصة. يمكن أن تشكل الأفاتار، مع جميع الرسوم المتحركة المرتبطة بها والملابس ذات الطبقات والإكسسوارات، متغيرًا غير متوقع للمبدعين. السماح بتطبيق SLIM على الأفاتار يعني أن المحرك يمكنه فعليًا تحديد الموارد التي يستخدمها نموذج أفاتار فردي.
في النهاية، نريد أن نمنح المبدعين خيار الاستفادة من SLIM لإجراء تغييرات على النماذج الديناميكية. تخيل نموذجًا يمكن للخادم إجراء تغييرات عليه بشكل فعال (على سبيل المثال، فتح باب أو تدمير جزء ما)، ولكن باستخدام بعض الحيل الذكية، يمكن للعميل إعادة استخدام نفس التمثيل خفيف الوزن.
تحسين مسار SLIM
الآن بعد أن أصبح لدينا مسار شامل يوفر للمحرك بعدًا جديدًا من المرونة، نركز أيضًا على جعل المسار نفسه أكثر ذكاءً وسرعة وكفاءة. ويشمل ذلك:
- إعادة تجميع النسيج: تجميع نسيج النماذج المتعددة بذكاء في ورقة نسيج واحدة محسّنة.
- التجزئة التلقائية: استخدام الفهم الدلالي والمكاني للعالم تلقائيًا لتحديد أفضل النماذج القابلة للتطبيق على SLIM.
- تمثيلات أخف وزنًا: بالنسبة للكائنات الديناميكية التي تعتمد بدرجة أقل على زمن الوصول، نستكشف إمكانية إنشاء تمثيلات ثنائية الأبعاد لا تتطلب أي موارد تقريبًا لعرضها على العميل.
- SLIM الهرمي: تداخل نماذج SLIM واحدة تلو الأخرى بحيث يمكن تبسيط مجموعات كاملة من الحالات ويمكن للمحرك الاختيار ديناميكيًا بين مستويات التفصيل — على سبيل المثال، من شجرة واحدة إلى غابة إلى كتلة أرضية كاملة مليئة بالغابات والأشياء الأخرى.
- رفع الدقة: نركز اليوم على تحسين الأداء، ولكن قريبًا جدًا، سيسمح لنا هذا النظام نفسه بزيادة دقة الأصول للأجهزة المستقبلية مع الحفاظ على النية الفنية الأصلية للمبدع. تعني هذه البنية الجديدة أنه مع تحسن محركنا في محاكاة الواقع، يمكننا ترقية التمثيلات التي يستخدمها باستمرار.
يُعد SLIM، بالاقتران مع Harmony وبقية بنية البث وتقديم المحتوى لدينا، قفزة هائلة إلى الأمام في رؤيتنا لدعم عوالم أكثر اتساعًا وتفصيلًا لمزيد من اللاعبين. يتيح لنا التكامل الوثيق بين محركنا وتقديم المحتوى والبنية التحتية السحابية، إلى جانب قاعدة المحتوى الضخمة من ملايين المبدعين، بناء أنظمة مترابطة بعمق تعمل على تحسين التجربة بأكملها. مع تحسن محركنا في محاكاة الواقع، يمكننا تحديث التمثيلات التي يستخدمها باستمرار. اليوم، نركز على تحسين الأداء، ولكن قريبًا جدًا، سيسمح لنا هذا النظام نفسه بزيادة دقة الأصول للأجهزة المستقبلية مع الحفاظ على النية الفنية الأصلية للمبدعين.
نحن نبني منصة لا تحترم النية الفنية فحسب، بل يمكنها أيضًا تقديم إبداعاتهم بذكاء وتلقائيًا إلى أي مستخدم على مجموعة متنوعة من الأجهزة في أي مكان يتوفر فيه Roblox. لا نطيق الانتظار لرؤية ما سيبنيه المجتمع باستخدامها.



