ما الذي سمح به اللاعب
يسأل البناء لاعبه عمّا يجوز لاختبار اللعب أن يجمعه قبل أن يجمع شيئًا، وإجابته هي التي تقرّر ما تفعله بقية هذه الصفحة:
وتجيب Flock Is Playtest Feature Enabled عن الأمرين معًا أصلًا: فميزة يشغّلها الاختبار ويستثنيها
اللاعب تُقرأ مُطفأة في كل موضع. وتعطي Flock Get Playtest Consent الإجابة نفسها، أما السؤال وكيف
تطرحه لعبتك بشاشاتها والإعداد الذي يوقفه ففي صفحة
إضافة Unreal.
ولا يدخل نموذج الملاحظات في تلك الإجابة. فهو لا يُرسل إلا حين يملؤه اللاعب ويضغط «إرسال»، وذلك
فعله هو في الحالين — ونموذجٌ تعذّر على تشغيل سابق إرساله يُرسل لاحقًا مهما كانت إجابته بعد ذلك.
تسجيل الفيديو
تُسجَّل شاشة اللعبة منذ اللحظة التي يُحمّل فيها الاختبار، بتسجيل واحد لكل تشغيل، في ملف WebM يشغّله المتصفّح. ولا يُسجَّل الوقت الذي تكون فيه اللعبة في الخلفية. وتضبط إعدادات Video Recording في Flock Playtest Settings المقاس ومعدّل الإطارات ومعدّل البتّ — 1280×720 و30 إطارًا في الثانية وVideo Bitrate (kbps) بقيمة 2000 افتراضيًا — وحدّين أيهما جاء أولًا: Recording Length Limit (Minutes) بقيمة 60، وRecording Size Limit (MB) بقيمة 1536. ويُرفع التسجيل إلى جلسته:- حين ينهيه حدّ الطول أو حدّ الحجم؛
- حين تطلب اللعبة ذلك، عبر Flock Stop And Upload Playtest Recording أو زر Upload your recording في نموذج الملاحظات؛
- حين توقفه اللعبة نهائيًا، عبر Flock Stop Video Recording؛
- وفي بداية تشغيل لاحق، لكل ما لم يستطع تشغيل سابق إرساله: رفع فاشل، أو خروج، أو انهيار.
الخروج من اللعبة لا يرفع. فلا يمكن إرسال تسجيل كامل أثناء الإغلاق، ولذلك يُحفظ ويرسله التشغيل
التالي. ويُحذف التسجيل بعد رفعه، كما يحذف التشغيل التالي تسجيلًا لم تبدأ له جلسة اختبار قط، إذ لا
سبيل إلى إرساله أبدًا.
Saved/FlockPlaytest/Recordings/، ضمن Recordings Disk Budget (MB) بقيمة 4096. وحين تضيق المساحة تُحذف أقدم مقاطع الاختبار أولًا، وتُحذف التسجيلات المنتظرة للرفع أخيرًا.
ولا تعرض على اللاعب طريقةً لإرسال تسجيله إلا ما دامت Flock Can Send Playtest Recording صحيحة. فهي
كاذبة حين لا تكون جلسة قد بدأت للتسجيل، والضغط على زر حينها سيوقف التسجيل ولن يرسل شيئًا. ولتخبر
اللاعب بما جرى، اربط On Recording Upload Finished: يُطلق مرة واحدة حين ينتهي تسجيل التشغيل —
مرفوعًا، أو غير مرفوع مع السبب، بما في ذلك تعذّر بدء الرفع من أصله. ولا يُطلق أثناء إغلاق اللعبة.
التحليلات الثقيلة
ترسل الإضافة ما يلي عبر تحليلات حزمة Flock، ضمن فئةplaytest، وتُقرأ في Dashboards → Game
Metrics:
-
performance_windowلكل عشر ثوانٍ من اللعب: وسيط زمن الإطار والنسبتان المئويتان 95 و99 منه، والتلعثمات، والذاكرة المستخدَمة وذروتها؛ -
level_loadedلكل مرحلة يحمّلها نسخة اللعبة هذه، ومعها المرحلة السابقة، ومدة التحميل إن كان تحميلًا حاجزًا؛ - وأحداثك أنت، عبر Flock Record Playtest Event. وابنِ خصائصها بعقد Set Command.
الاستثناءات
تبقى الاستثناءات من شأن حزمة Flock. فهي تلتقط أسطر الأخطاء، وفشل التحققات، وأخطاء Blueprint مثل Accessed None، والانهيارات، بإعداداتها هي تحت Analytics | Exceptions، وتبلّغ عنها في Diagnostics → Errors. ولا يشغّل مفتاح الاستثناءات في اختبار اللعب ذلك ولا يطفئه؛ وحين يطلب الاختبار الاستثناءات ويكون Analytics Capture Exceptions مُطفأً، يحذّر السجل مرة واحدة عند بدء الجلسة. وللتحقّق من وصول الاستثناءات إلى لوحة التحكم، اكتبFlock.RaiseTestException error أو
Flock.RaiseTestException blueprint 100 في طرفية بناء Development. فمئة حالة من العطل نفسه تصل بلاغًا
واحدًا، ثم بلاغ تكرار واحدًا يعدّ التسعة والتسعين الباقية بعد أن تُغلق نافذة التكرار.
نموذج الملاحظات
حين ينشر الاختبار نموذجًا، يفتحه اللاعبون بمفتاح Feedback Form Key (F9 افتراضيًا؛ واضبطه على none لتعطيل المفتاح)، أو تفتحه لعبتك عبر Flock Open Feedback Form — من قائمة الإيقاف المؤقت مثلًا. وتحقّق من Flock Can Open Feedback Form أولًا: فهي كاذبة حين لا ينشر الاختبار نموذجًا، فتستطيع لعبتك إخفاء مدخلها الخاص بدل أن تعرض ما لا وجود له.
نموذج منشور، مبني من اختبار اللعب: كل أسئلته، والزر الذي يرسل التسجيل.
نموذج من عندك
تسلّم Flock Get Feedback Form واجهتك الأسئلة: معرّف كل سؤال ونوعه وعنوانه ونصّه المساعد وخياراته وهل يحتاج إلى إجابة. وسجّل الإجابات بـSet Feedback Text Answer وSet Feedback Rating Answer (من 1 إلى 5) وSet Feedback Checkbox Answer وSet Feedback Chosen Option، وافحصها بـFind Feedback Form Problems، وأرسلها بـFlock Send Feedback Form Answers. وقارن نوع السؤال بعقد Flock Feedback Question Kind بدل كتابته، وعامِل نوعًا لا تعرفه معاملة النص، فهكذا يقرؤه الخادم.عقد Blueprint
جميعها تحت Flock | Playtest. وكل عقدة تستدلّ على اختبار اللعب من الرسم الذي استدعاها.تجريبه في المحرّر
قبل وجود أي اختبار لعب، أشّر على Record Video In Play In Editor في Project Settings → Plugins → Flock Playtest Local Settings واضغط Play، أو اكتبFlockPlaytest.RecordTestVideo 30 في طرفية بناء
Development. وتُحفظ مقاطع الاختبار تحت Saved/FlockPlaytest/Recordings/TestVideos/ ولا تُرفع أبدًا.
وأمام اختبار لعب حقيقي، اضغط Play بالإعدادات المذكورة في صفحة الإعداد وسجّل الدخول بـ
Flock.LoginWithDevice. ثم، في طرفية بناء Development:
وأوقات الانتظار موجودة لأن كل أمر في
-ExecCmds يُنفَّذ في الإطار الأول، قبل أن يكون قد سُجِّل شيء أو
بدأت جلسة.
فحص بناء اختبار اللعب
يفحصFlockPlaytest.SelfTest كل ما يفعله بناء اختبار اللعب أمام Protokite الحقيقي دفعةً واحدة، ويسجّل
سطرًا لكل خطوة وعدًّا في النهاية: Playtest self-test finished: 16 passed, 0 failed, 1 skipped.
وأبنية Development فقط.
ويقف كل فحص إلى جوار طلب يجب أن يرفضه Protokite: مفتاح واجهة خاطئ، ومفتاح مفقود، وإصدار لا اختبار لعب
مرتبط به، وبدء جلسة لا يسمّي لاعبًا، ونموذج تنقصه إجابة مطلوبة أو يختار خيارًا ليس في القائمة، ونموذج
ورابط رفع ونهاية جلسة لجلسة غير موجودة. فالفحص الذي ينجح دائمًا لا يميّز بناءً سليمًا من بناء معطوب،
ولذلك لا يمرّ الرفض إلا بحالة HTTP الخاصة به، ومع النموذج بالسؤال الذي يسمّيه.
وهو لا يسجّل دخول أحد، فسجّل الدخول أولًا. ومن سكربت:
- ينهي جلسة التشغيل بوصفها خطوته الأخيرة، فشغّله في تشغيل مستقل. وأي جلسة كان ينبغي لرفضٍ أن يمنعها تُنهى فورًا، فلا يترك الفحص شيئًا مفتوحًا.
- يترك أثرًا في لوحاتك: نموذجًا مملوءًا على جلسته، وحدث
playtest_self_testواحدًا، وعطل Blueprint واحدًا أُثير مرتين ليُعدّ تكراره، وتسجيل التشغيل. - وتُتخطّى خطوة، مع ذكر السبب، حين لا يكون أحد قد أجاب عمّا يجوز لاختبار اللعب جمعه (أجب أولًا بـ
FlockPlaytest.AnswerConsent video_and_play_data)؛ وحين لا يشغّل الاختبار ميزتها؛ وحين لا يكون في البناء مُرمِّز فيديو، وهو كل منصة عدا Windows بنواة 64 بت؛ وحين لا يستطيع التشغيل الرسم (-nullrhi)، إذ لا يُسجَّل شيء؛ وحين يكون Analytics Cache Failed Events مُطفأً، إذ لا يمكن مراقبة بلاغ يُرسل لحظة إنشائه؛ ولاختبار مغلق ما لم تسمِّ واحدًا.