Studio / ROBLOX
لمن هذا التلميح؟ قصة لوحة مساعدة شخصية في Roblox
في ورشة رياح خيالية تقلب آسيا صفحة مساعدتها فتتغير صفحة دانيا. افصل العرض الشخصي وتقدم المهمة المشترك وحالة العالم قبل طلب إصلاح التنفيذ.
ورشة خيالية وصفحتان مختلفتان #
هذه قصة تعليمية خيالية عن نموذج مستقل، لا تعليق لاعبين أو تقرير إصلاح ألعابنا. تخيلت نيكا ورشة رياح يبني فيها مشاركان عجلة نموذجية معاً. للمهمة المشتركة مراحل القاعدة والشفرات والفحص. الفريق حالياً في الشفرات، والعجلة في وسط الغرفة. يفتح زر شخصي لكل لاعب تعليمات المساعدة.
تقرأ آسيا، A، موضوع تثبيت شفرة. فتح دانيا، B، موضوع تدوير الكاميرا ليرى الوصلة من الجانب. تقلب آسيا الصفحة فتظهر نفسها فجأة عند دانيا. يعود إلى الكاميرا لكن حركة آسيا التالية تستبدل نصه مجدداً. ترى نيكا حدوداً مكسورة بين اختيارين شخصيين، لا مشكلة مقاس زر. لا نقيس هنا نتيجة حقيقية؛ المشهد وسيلة لفهم قرار تصميم يحتاج إلى تنفيذ وفحص لاحقين.
1. الهدف المشترك لا يجعل كل شيء مشتركاً #
يسأل دانيا في الحوار المتخيل: «نبني عجلة واحدة، فلماذا أقرأ سطرك نفسه؟» خلطت نيكا العمل المشترك مع القراءة المتزامنة. يحتاج الاثنان معرفة مرحلة الفريق، لكن يمكن لكل مشارك مراجعة تلميح مختلف وإغلاقه عندما يناسبه.
استخدم التصميم الأول قيمة واحدة لصفحة مساعدة الفريق الحالية. صار كل تقليب تحديثاً للجميع. هذا سبب اختير للقصة؛ عرض مشابه في مشروع حقيقي ما زال يحتاج تشخيصاً. لا تتهم نيكا Roblox بدمج اللوحات تلقائياً. تكتب السلوك غير المرغوب بدقة: إدخال A يغير اختيار B بلا سبب لعب مشترك. يمكن نقل العبارة إلى مطور آخر، بدلاً من إخفاء عدة احتمالات تحت «الواجهة معطلة» أو اتهام سطر لم يفحص.
2. ثلاث حالات بدلاً من متغير واحد #
ترسم نيكا ثلاثة أسطر. العرض الشخصي: هل المساعدة مفتوحة وما الموضوع المختار وموضع القراءة؟ التقدم المشترك: مرحلة بناء الفريق. حالة العالم: القطع المثبتة فعلاً وشكل العجلة. قد تربط القواعد الحالتين الأخيرتين، لكنهما لا تستبدلان الأولى.
يمكن لآسيا قراءة تعليمات الفحص مبكراً. لا تنقل القراءة الفريق إلى الفحص ولا تثبت شفرة. إغلاق النافذة لا يلغي عمل دانيا أيضاً. لكل حقل تحدد نيكا صاحبه ومصدر تغييره وقراءه. المقصود بالصاحب هنا نطاق مسؤولية الحالة، لا حقوق تأليف اللوحة. يصف جدول العقد هندسة هذا النموذج المختارة، لا قواعد إلزامية لكل لعبة تعاونية. يصبح القرار واضحاً قبل الحديث عن آلية نقل البيانات.
3. PlayerGui يدل على النسخة المطلوبة #
تصف Roblox حاوية PlayerGui بأنها تضم واجهة اللاعب. تحتفظ StarterGui بالعناصر الأولية التي تنسخ إلى PlayerGui في وقت ظهور الشخصية الموثق. لذلك تستطيع نسخة تصميم واحدة إعطاء كل مشارك مثيلاً خاصاً، لا صفحة قراءة واحدة للفريق.
لكن الحاوية لا تصلح معالجاً خاطئاً. إذا استمر المنطق في إرسال موضوع آسيا للجميع أو تعديل النسختين، يبقى السلوك غير المرغوب رغم المثيلات الشخصية. تفصل نيكا قالب المظهر عن حالة القارئ الحالي. تكتب في التكليف: «الفتح والإغلاق واختيار الموضوع تخص من ضغط». لا يوجد كود هنا ولا وعد بأن نقل كائن وحده أصلح المشكلة. يأتي العقد الواضح أولاً، وبعده تنفيذ يمكن فحصه. تشابه شكل لوحتين ليس دليلاً على وجوب تشارك حالتهما.
4. يبدأ عقد الإصلاح من القراءة العادية #
تختار نيكا قاعدة بسيطة: فتح A يظهر لوحته وحدها، وتغيير موضوعه يعدل اختياره، وإغلاقه لا يغلق B. على الخادم S لا تدفع هذه الأفعال البناء إلى الأمام ولا تغير قطعاً. يتحكم العرض الشخصي محلياً في هذا النموذج، دون إرسال كل تقليب صفحة إلى الفريق بلا حاجة.
ليس هذا حظراً على بيانات شخصية في الخادم. إذا لزمت لاحقاً تفضيلات محفوظة فتصمم منفصلة بانتماء للاعب المحدد. لا نضيف تخزيناً في القصة. تستبدل نيكا «حدث المساعدة» بقائمة صريحة للحقول التي يسمح للفعل بتغييرها. يتلقى مطور آخر حدود الإصلاح المقترح بدلاً من تخمين هل يفترض بكل إدخال تغيير كل الشاشات. ظهور زر محلي أيضاً لا يمنح سلطة تغيير العالم.
| الحالة | المسؤولية | مصدر التغيير | لا يغير |
|---|---|---|---|
| ظهور المساعدة | واجهة كل لاعب الشخصية | فتح/إغلاق شخصي | لوحة B أو بناء S |
| الموضوع وموضع القراءة | القارئ المحدد | اختيار/تمرير شخصي | اختيار مشارك آخر |
| لغة النص الشخصي | عرض اللاعب نفسه | إعداد اللغة الشخصي | لغة B أو مرحلة الفريق |
| مرحلة مهمة الفريق | مصدر الخادم المشترك | عمل وفق قواعد النموذج | لا يلزم فتح مساعدة الجميع |
| القطع المثبتة | عالم يؤكده الخادم | فعل لعب مسموح | لا تستنتج من صفحة مقروءة |
| عنوان المرحلة الحالي | حقيقة مشتركة في واجهة شخصية | معلومات S الحالية | لا يختار موضوع B |
5. مرحلة الفريق ما زالت تهم الاثنين #
تلاحظ نيكا الخطأ المعاكس: تجاهل التقدم المشترك تماماً قد يترك المساعدة تصف مرحلة انتهت. تبقي مصدر حالة الفريق في الخادم. يغيره العمل المنجز فعلاً وفق قواعد النموذج، والنص عند العميل يعرض معلومات مؤكدة. زر الصفحة التالية ليس إذناً لتعديل العالم.
يحتاج الاثنان معلومات حالية عندما تتغير المرحلة، لكن لا يلزم فتح الموضوع نفسه. في التصميم يتحدث عنوان المرحلة، وتبقى المساعدة المغلقة مغلقة، ويحافظ موضوع مناسب على اختياره. الحقيقة المشتركة ليست أمراً بتقليب كل الصفحات. إذا استعملت رسائل للعملاء فالمستلم يحدد وفق معنى البيانات: الرد الشخصي مختلف عن تحديث الفريق. وصول رسالة لا يثبت وحده صحة انتماء الحالة أو الحقول التي غيرتها.
6. للتلميح القديم انتقال مفهوم #
تقرأ آسيا تعليمات الشفرات وقد وصل الفريق إلى الفحص. تقرر نيكا مسبقاً حفظ ظهور اللوحة الشخصية، وعرض «تغيرت المرحلة: الآن الفحص»، واقتراح الموضوع الحالي. يوسم المحتوى القديم بوضوح إذا لم يعد مناسباً. لا ينبغي أن يتظاهر بصمت بأنه المهمة الحالية.
هذا اختيار مشروع، لا ميزة آلية في PlayerGui. تطلب نيكا ربط المعلومات المتأخرة بالمرحلة والموضوع الحاليين حتى لا يمحو رد قديم اختياراً شخصياً أحدث. يبقى الربط مطلباً حتى ينفذ. لا حاجة لفتح مساعدة الجميع آلياً عند كل حدث. يحتفظ المشارك بمسار قراءته ويتلقى الفريق حقيقة مشتركة قابلة للتحقق. تحديث النص لا يثبت تركيب القطعة، وموضع القراءة ليس عداد إنجاز العمل.
7. المساعدة المتاحة تظل شخصية #
تسمي نيكا منطقتين في الرسم مساعدتي ومرحلة الفريق. الأزرق والبرتقالي وحدهما لا يوضحان الانتماء؛ الكلمات تشرح الفرق. للصفحة عنوان موضوع وإجراء إغلاق مفهوم. لا ينبغي أن يدفع النص المكبر هذه المعالم خارج المساحة القابلة للاستخدام.
توصي Roblox بمراعاة القراءة والتباين وتفضيلات اللاعب، وألا يحمل الصوت أو اللون وحده المعنى. تحسن النصائح العرض دون اختيار صاحب البيانات. تخطط نيكا لفحوص مستقلة للعبارات الطويلة والتنقل والإغلاق في الأجهزة المطلوبة. لا تعلن مقاساً مثالياً ولا تقدم رسمنا كصورة واجهة تعمل. تفيد المساعدة عندما يفهم المشارك النص وأفعال من يستطيع تغييره. لا تنتقل حاجة لاعب إلى خط أكبر تلقائياً إلى زميله لمجرد تعاونهما.
8. الترجمة تغير العبارة لا مرحلة الفريق #
تقرأ آسيا الروسية ودانيا الإنجليزية في التصميم. يمكن لطول جمل وترتيب مختلفين وصف مرحلة مشتركة واحدة. لا يعتمد معرف المرحلة الداخلي على العنوان المترجم، ولا يتغير صاحب حالة الصفحة بسبب لغة النص.
توفر Roblox أدوات توطين وترجمات يدوية. تستند نيكا إليها لإعداد عبارات بسياق، لا مقارنة كلمات معروضة لتقرير منطق اللعبة. تترجم مساعدتي ومرحلة الفريق كاملاً. تحتاج العربية فحص الاتجاه والرموز المختلطة، والصينية فحص الالتفاف. لا تثبت الترجمة الآلية أن الشاشة تميز الشخصي والمشترك. وفق العقد، تغيير لغة A لا يختار لغة B ولا يدفع البناء إلى مرحلة أخرى. هذه سياسة مخططة للتحقق وليست تجربة متعددة اللغات نفذت بالفعل.
9. إعادة الظهور لا تجيب عن سؤال الانتماء #
تضيف نيكا عودة شخصية A إلى الخطة المقبلة. تنوي النسخة إعادة مساعدته مغلقة وقراءة مرحلة الفريق الحالية مجدداً. يواصل B استخدام لوحته الخاصة. هذه سياسة مختارة، لا وعد عن السلوك الافتراضي لكل لعبة.
يرتبط GUI عند ظهور شخصية بإعدادات تشمل ResetOnSpawn في LayerCollector الذي ترثه ScreenGui. بقاء مثيل اللوحة واستعادة محتوى صحيح سؤالان مختلفان. تطلب نيكا فحص الهيكل والإعدادات الفعلية، لا الاعتماد على ResetPlayerGuiOnSpawn العام المتقادم. لا نغير إعدادات مشروع آخر. زيارة جديدة وعودة شخصية وإغلاق مساعدة حالات منفصلة؛ لا يضمن أي منها وحده حفظ القراءة بين الزيارات. حتى المثيل الباقي يحتاج معلومات حالية وألا يستخدم اختيار زميله.
10. تظل خطة الملاحظة فارغة #
تبدأ الورقة الأخيرة بحالة A يقرأ الشفرات وB الكاميرا وS يحتفظ بمرحلة الشفرات. تفحص حالات منفصلة التقليب والإغلاق ومدخلين متقاربين وتغير المرحلة المشتركة والتحديث المتأخر وإعادة الظهور واللغات. يحدد المتوقع أولاً، وتبقى خانات الملاحظات الفعلية A وB وS فارغة.
إذا أظهر فحص مستقبلي تغير B بعد إدخال شخصي من A فسجل الموضوع والترتيب والمرحلة قبل تخمين سطر كود. حصول اللوحتين على مرحلة جديدة بعد عمل مشترك حقيقي قد يكون صحيحاً. لا تنسخ قيمة الخادم في ملاحظة B. يشرح دليل العميلين المرتبط تشغيلهما منفصلاً. تنقل هذه القصة معايير الانتماء ولا تكرر أزرار Studio، ولا تعتمد نموذجاً لم يشغل لمجرد اكتمال جدول الخطة.
| الحالة / الإدخال | توقع العقد | A: الفعلي | B: الفعلي | S: الفعلي |
|---|---|---|---|---|
| يقلب A مع موضوعين مختلفين | تتغير قراءة A وحده وS ثابت | — | — | — |
| يغلق A ومساعدة B مفتوحة | يغلق A ويواصل B القراءة | — | — | — |
| اختيار A وB متقارب | لكل منهما اختياره؛ سجل الترتيب | — | — | — |
| الفريق ينجز فعلاً للمرحلة التالية | مرحلة مشتركة حالية دون فرض ظهور شخصي | — | — | — |
| تحديث قديم بعد اختيار شخصي أحدث | اربط المرحلة والموضوع دون محو الاختيار الجديد | — | — | — |
| عودة شخصية A | حسب السياسة: A مغلق وB لم يتغير والمرحلة حالية | — | — | — |
| لغتان مختلفتان ونص طويل | الشخصي والفريق واضحان؛ لغة B والمرحلة ثابتتان | — | — | — |
| قراءة الفحص مبكراً | لا تدفع القراءة البناء ولا تثبت قطعاً | — | — | — |
11. تغلق نيكا الرسم لا التحقيق #
في النهاية المتخيلة تقلب آسيا موضوعها، ويواصل دانيا قراءة الكاميرا، ولا تغير القراءة العجلة. ترفق نيكا حالات البيانات وقواعد المستلم وانتقال المرحلة وجدولاً فارغاً بالتكليف. النهاية صورة للنتيجة المطلوبة، لا اختبار لعب منفذ.
التنفيذ ما زال أمامنا. راجعت المصادر الرسمية والنص والرسوم، لكن لم نشغل Studio أو خادماً عاماً أو ألعابنا. بعد التصحيح يؤكد المطور العقد بعميلين والأجهزة المطلوبة. يبقى الهدف مشتركاً ويقرأ كل مشارك بإيقاعه. فائدة القصة وصف دقيق لما يخص اللاعب وما يخص الفريق وما يؤكده العالم، بدلاً من متغير واحد غامض باسم المساعدة. تنقل الخطة إلى المطور مع حدودها، لا مع ادعاء نجاح لم يلاحظ.
المصادر الأصلية
Roblox Creator Hub — PlayerGuiRoblox Creator Hub — StarterGui
Roblox Creator Hub — Client-server runtime
Roblox Creator Hub — Remote events and callbacks
Roblox Creator Hub — LayerCollector / ResetOnSpawn
Roblox Creator Hub — Localization
Roblox Creator Hub — Accessibility guidelines