التجارب

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

التجارب تتيح لك إجراء اختبارات A/B داخل اللعبة ومطابقة اللاعب لقياس التأثير السببي للتغييرات التي تطرأ على لعبتك. على سبيل المثال، يمكنك عرض تجارب توجيه مختلفة على لاعبين مختلفين وقياس الفرق في وقت اللعب والاحتفاظ ومؤشرات الأداء الرئيسية الأخرى.

التجارب ممتازة لقياس ما يلي:

  • التفاعل - تدفقات التوجيه، نظم التقدم، أنظمة التحكم، مطابقة مخصصة
  • تحقيق الإيرادات - رؤية المتجر وتجربة المستخدم، أنواع حزم البداية، التسعير
نظرة عامة على صفحة التجارب في مركز الإبداع

إنشاء التجارب

تأتي التجارب في نوعين:

  • تجارب داخل اللعبة تتيح لك قياس تأثير قيم الإعدادات المختلفة.
  • تجارب المطابقة تتيح لك قياس تأثير تكوينات المطابقة المخصصة المختلفة. على عكس التجارب داخل اللعبة، يمكنك تشغيل تجربة مطابقة واحدة فقط في كل مرة.
  1. إذا لم يكن لديك بالفعل إعداد، أنشئ واحدًا للعبتك.

  2. على صفحة التجارب في مركز الإبداع للعبتك، انقر على إنشاء تجربة.

  3. تحت النوع، اختر داخل التجربة.

  4. حدد اسمًا وهدفًا ومقياسًا زمنيًا مخططًا للتجربة. تعمل التجارب لمدة تتراوح بين 14-60 يومًا.

    بغض النظر عن ما تختاره كهدف، تتعقب التجارب جميع المقاييس في القائمة.

  5. اختر نسبة تنفيذ. هذا الرقم هو النسبة المئوية للاعبين الذين تريد تضمينهم في التجربة.

    بشكل عام، كلما شملنا أشخاصًا أكثر في التجربة، كانت البيانات أفضل، لكن استخدم حكمك حول ما هو الأفضل للعبتك.

  6. حدد الأنواع والنسب.

    الأنواع هي قيم بديلة لإعدادك. إذا كان لديك مفتاح إعداد عددي bossHealth بقيمة تحكم قدرها 500، يمكنك تحديد نوع بقيمة 300. يمكنك أن يكون لديك ما يصل إلى نوعين وواحد للتحكم في تجربة واحدة.

    النسب تحدد كيفية تخصيص الأنواع داخل تنفيذ التجربة. عُد إلى المثال التالي:

    • اخترت تنفيذًا إجماليًا قدره 40%.
    • حددت نوعين مع تقسييم 50/50 بينهما وبين التحكم.

    في هذا المثال، يتم استبعاد 60% من مستخدميك من التجربة؛ يتلقى هؤلاء المستخدمون التحكم وليس لهم تأثير على نتائج التجربة. حوالي 20% من المستخدمين يتلقون التحكم كجزء من التجربة. 20% آخرون يتلقون النوع. اعتمادًا على عدد اللاعبين لديك، قد لا تكون هذه التوزيعة كبيرة بما يكفي للحصول على نتائج ذات دلالة.

    صفحة النوع

  7. الخطوة الأخيرة هي الجدولة. يمكنك بدء التجارب على الفور أو جدولتها لتاريخ ووقت لاحقين. بعد جدولة تجربة، لا يمكنك تغيير تكوينها (المدة، نسبة التنفيذ، الأنواع، إلخ)، لكن يمكنك إعادة جدولتها.

المقاييس

تتتبع التجارب جميع المقاييس التالية خلال مدة التجربة.

MetricDescription
D1 retentionنسبة اللاعبين الذين عادوا إلى لعبتك بعد يوم واحد.
D7 retentionنسبة اللاعبين الذين عادوا إلى لعبتك بعد أسبوع واحد.
Playtimeمتوسط الوقت الذي قضاه اللاعبون داخل لعبتك. مجمع لفترة التجربة.
ARPUمتوسط الإيرادات لكل مستخدم. الإيرادات مقسومة على عدد اللاعبين. مجمع لفترة التجربة.
ARPPUمتوسط الإيرادات لكل مستخدم مدفوع. الإيرادات مقسومة على عدد اللاعبين الذين اشتروا عنصرًا متعلقًا باللعبة. مجمع لفترة التجربة.
Payer conversion rateنسبة اللاعبين الذين اشتروا عنصرًا متعلقًا باللعبة.
Session timeوقت اللعب مقسومًا على عدد الجلسات. مجمع لفترة التجربة.

حالة التجربة

تظهر صفحة التجارب الحالات التالية للتجارب.

StatusDescription
Completedانتهت التجربة، وهذا يحدث عند إيقافها يدويًا، أو عند الوصول إلى قرار، أو تلقائيًا بعد فترة زمنية قصيرة من تاريخ القرار (14 يومًا بعد بالنسبة للتجارب داخل اللعبة، على الفور بالنسبة للمطابقة). لا يزال بإمكانك مراجعة التفاصيل والنتائج.
Decision neededوصلت التجربة إلى تاريخ القرار الخاص بها. الآن وقت جيد لمراجعة النتائج.
Runningالتجربة جارية لكنها لم تصل بعد إلى تاريخ القرار.
Scheduledتم جدول التجربة لتبدأ في تاريخ مستقبلي.
Draftلم تبدأ التجربة أو لم يتم جدولتها. يمكنك إكمال إعدادها.

إضافة التجارب إلى كودك

تطبيق التجارب داخل اللعبة مشابه لـ تطبيق الإعدادات. الاختلاف الرئيسي هو استخدام ConfigService:GetConfigForPlayerAsync() بدلاً من ConfigService:GetConfigAsync().

GetConfigForPlayerAsync() يستخرج لقطة محددة للاعب. عند استدعائك لـ GetValue()، تتحقق اللقطة من وجود تجربة نشطة وتجنيد (أو عدم تجنيد) المستخدم بناءً على نسبة التنفيذ.


local ConfigService = game:GetService("ConfigService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local playerConfig = ConfigService:GetConfigForPlayerAsync(player)
local leaderboardColor = playerConfig:GetValue("leaderboardColor")
end
Players.PlayerAdded:Connect(onPlayerAdded)
  • يجب عليك استدعاء GetConfigForPlayerAsync() بشكل منفصل لكل لاعب؛ GetConfigAsync() لا ينطبق على التجارب.

  • بعد استدعائك لـ GetValue() على لقطة محددة للاعب، يُجنّد اللاعب المرتبط باللقطة في التجربة لهذا المفتاح وذلك المفتاح فقط. تُعيد جميع الاستدعاءات اللاحقة إلى الطريقة نفس التحكم أو النوع لمدة التجربة. فقط الاستدعاء الأول عشوائي.

  • ليست العملية في التجارب مقيدة بالمستخدمين الجدد. حتى إذا كان مستخدم قد حصل مسبقًا على قيمة من GetConfigAsync(), يمكنك تجنيدهم في تجربة باستخدام لقطة محددة للاعب من GetConfigForPlayerAsync().

  • إذا لم يكن مفتاح في لقطة محددة للاعب يحتوي على تجربة نشطة، فإن GetValue() ترجع قيمة الإعداد القياسية (أو nil إذا لم يكن لديها قيمة).

عملية التسجيل المستهدفة

إذا كنت تريد استهداف جزء من لاعبيك الذين يستوفون معايير معينة، عليك كتابة كود إضافي للتحقق من تلك المعايير وفقط بعد ذلك استدعاء GetValue() لتجنيدهم في التجربة. اعتبر المثال التالي:

  • تريد اختبار نظام تحكم جديد في لعبتك.
  • لا ترغب في تضمين اللاعبين الحاليين (الذين من المحتمل أن يكونوا معتادين على النظام الحالي)، فقط اللاعبين الجدد.

قد يبدو كودك كالتالي:


local function getControlScheme(player, racesCompleted)
if racesCompleted > 0 then
return "standardScheme"
else
-- اللاعب جديد، تسجيله في التجربة
local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
if playerConfigSnapshot:GetValue("useNewControlScheme") then
return "newScheme"
else
return "standardScheme"
end
end
end

إذا كنت تريد أن يستمر نظام التحكم في الجلسات اللاحقة، فقد تحتاج إلى إضافة قيمة إلى إدخال اللاعب في متجر البيانات.

عرض وتفسير النتائج

بعد أن تعمل التجربة لمدة 24 ساعة على الأقل، انقر على عرض لرؤية التفاصيل والنتائج.

صفحة التفاصيل لتجربة

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

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

صفحة النتائج لتجربة

قم بتحريك المؤشر فوق أي مقياس لرؤية زر عرض الثقة، والذي يُظهر فترة الثقة.

يكون المقياس ذا دلالة إحصائية عندما لا تتداخل فترة الثقة لتغيره المئوي مع 0%. في المثال التالي، نسبة D1 للاحتفاظ ترتفع بنسبة 17.4%، مع حدود سفلى وعليا تبلغ 8.02% و22.03%، مما يجعل التغيير ذا دلالة إحصائية.

فترة الثقة لمقياس

لراحة البال، تتيح لك صفحة النتائج استبدال قيمة الإعداد الافتراضية بأحد الأنواع من التجربة. انقر على اتخاذ قرار لاختيار نوع أو تغيير الفائز إذا غيرت رأيك. إذا عدت بعد ذلك إلى صفحة الإعدادات، يجب أن ترى القيمة الجديدة.

أفضل الممارسات للتجارب


  • استخدم أقل تأثير قابل للاكتشاف (MDE) لتقرر ما إذا كانت تجربتك تستحق التشغيل.

    تقوم Roblox بحساب MDE باستخدام مقياس هدفك وعدد اللاعبين لكل نوع، والذي يعتمد على عدد المستخدمين النشطين يوميًا، ونسبة التنفيذ، ومدة التجربة، وانقسام الأنواع. إذا كان MDE مرتفعًا جدًا بالنسبة لمقياس هدفك (على سبيل المثال، أكثر من 100%)، فمن غير المحتمل أن تتمكن من الوصول إلى الأهمية الإحصائية. قد تواجه الألعاب التي تحتوي على أقل من 1,000 مستخدم نشط يوميًا صعوبة في الحصول على بيانات مفيدة من التجارب.

    شاشة MDE غير كافية أثناء الإنشاء.

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

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

  • لا تتخذ أي إجراء دون وجود دلالة إحصائية. حتى التغييرات الكبيرة الظاهرة في سلوك اللاعب قد لا تكون ذا دلالة إحصائية، عادة بسبب صغر حجم العينة. إذا لم يكن التغيير ذا دلالة إحصائية، تجاهله.

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

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

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

  • توفر التجارب إشارة قوية، لكن الأهمية الإحصائية تتعامل مع الاحتمالات، وليس اليقينيات - ومن ثم فترة الثقة. تؤثر تقلبات البيانات، وحجم العينة، وحجم التغيير جميعها على احتمالية اكتشاف ما إذا كان نوعًا أثر في سلوك اللاعب. يجب أن يكون أي إجراء تتخذه بناءً على نتائج تجربة ما متوازنًا مع بيانات نوعية مثل تغذية راجعة من اللاعبين ورؤيتك العامة للعبة.

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

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.