حوّل لعبتك في Unity إلى بناء اختبار لعب خاص بـProtokite، خطوة بخطوة.
Protokite Playtest حزمة اختيارية لـUnity تحوّل بناءً من لعبتك إلى بناء اختبار لعب. وما دام اختبار
اللعب قائمًا، يصبح كل تشغيل للعبة جلسةً واحدة في صفحة Sessions الخاصة بالاختبار، ويقرّر الاختبار ما
تجمعه تلك الجلسة. ولا تحتاج إلى أي شيفرة: ثبّتها، ووجّهها إلى اختبار اللعب لديك، وسجّل دخول لاعب، ثم
اضغط Play.
احصل على الحزمة
يثبّتها تبويب Playtesting في حزمة Flock بنقرة واحدة. ويُرفق الملف
ProtokitePlaytest-<version>.unitypackage أيضًا بكل إصدار من حزمة Flock لـUnity، وبالرقم ذاته.
جلسة واحدة لكل تشغيل، باسم معرّف اللاعب على Steam أو معرّف الجهاز لهذا التثبيت
صفحة Sessions في Protokite
تسجيل الفيديو
تسجيل لشاشة اللعبة، يُرفع عند انتهائه
مشغّل التسجيل في الجلسة
التحليلات الثقيلة
نافذة أداء لكل عشر ثوانٍ من اللعب، وكل تحميل مشهد، وأحداث اختبار اللعب الخاصة بك
Dashboards → Game Metrics في Flock، ضمن فئة playtest
التقاط الاستثناءات
لا شيء إضافي — فحزمة Flock تبلّغ عن الاستثناءات بإعدادها الخاص، مهما شغّل اختبار اللعب
Diagnostics → Errors في Flock
نموذج ملاحظات منشور
إجابات اللاعب
بطاقة الجلسة، وصفحة Feedback form الخاصة بالاختبار
وكلٌّ منها يُشغَّل أو يُطفأ من صفحة الاختبار في Protokite، فتغيير ما يجمعه اختبار اللعب لا يحتاج إلى
بناء جديد — ويُسأل اللاعب أولًا، فلا يجمع التشغيل إلا ما سمح به. راجع اضغط Play.
وكل ميزة مشروحة في صفحة ما الذي يجمعه اختبار اللعب.
حزمة Flock مُعدّة وتعمل في المشروع: Api Url وApi Key وGame Name وGame Version في
Flock → Settings، مع قيمة ظاهرة في Resolved Version ID. راجع صفحة
حزمة تطوير Unity.
هناك اختبار لعب في Protokite. وإنشاء واحد يُنشئ له إصدار لعبة في Flock، اسمه pt- يليه معرّف
الاختبار.
يُسجَّل الفيديو على Windows بنواة 64 بت فقط. وأما بقية المنصّات فتشغّل سائر أجزاء اختبار اللعب،
وتذكر مرة واحدة في السجل أنها لا تسجّل فيديو. راجع المنصّات.
من شريط قوائم Unity اختر Flock → Settings ثم تبويب Playtesting. يذكر التبويب رقم الإصدار الذي
سيثبّته، وهو دائمًا مطابق لإصدار حزمة Flock لديك.
Flock → Settings → Playtesting قبل تثبيت الحزمة.
2
اضغط Install Protokite Playtest
ينزّل الحزمة من إصدار حزمة Flock ويستوردها إلى Assets/ProtokitePlaytest، دون حاجة إلى Git. تصرّفها
Unity، ثم يعرض التبويب الإصدار المثبّت مع زرّين تستعملهما في الخطوات التالية: Open Playtest
Settings وCheck Playtest Setup.
التبويب نفسه بعد تثبيت الحزمة: إصدارها، وموضعها، والأزرار التي تحتاجها في الخطوات التالية.
طريقتان أخريان، وكلتاهما بإصدار حزمة Flock نفسه: انقر نقرًا مزدوجًا على
ProtokitePlaytest-<version>.unitypackage من صفحة الإصدارات، أو أدخل في Window → Package Manager → + →
Add package from git URL العنوان
https://github.com/QwackStack/FlockUnitySDK.git?path=/ProtokitePlaytest~#v<version> (وهذه الطريقة تحتاج
إلى Git مثبّتًا). واترك الحزمة خارج المشاريع التي لا تُجري اختبارات لعب.
يجد Protokite اختبار اللعب من إصدار اللعبة في Flock الذي يرسله البناء.
1
اقرأ إصدار اختبار اللعب
افتح الاختبار في Protokite. تعرض كتلة SDK فيه معرّف إصدار الاختبار في Flock. أما اسم
الإصدار فهو pt- يليه معرّف الاختبار.
2
اجعل Game Version اسمَ ذلك الإصدار
في Flock → Settings → Configuration، اجعل Game Version مساويًا لـpt- يليه معرّف الاختبار، مثل
pt-01JABCDEFGHJKMNPQRSTVWXYZ0. تحوّل حزمة Flock الاسم إلى معرّفه، فيظهر في Resolved Version ID
المعرّفُ الذي عرضه لك Protokite.
Flock → Settings → Configuration: قيمة Game Version هي اسم اختبار اللعب، ومعها المعرّف الذي حُوِّل إليه.
3
شغّل اختبار اللعب
اختر Protokite → Playtest → Settings، أو اضغط Open Playtest Settings في تبويب Playtesting. في
المرة الأولى يُنشأ الملف Assets/Resources/ProtokitePlaytestSettings.asset واختبار اللعب مطفأ، ويُحدَّد
في نافذة Inspector. فعّل Playtesting Enabled.قيمة Protokite Api Url مضبوطة مسبقًا على بيئة الإنتاج، https://api-protokite.qwacks.com؛ لا تغيّرها
إلا لتشير إلى Protokite محلي مثل http://localhost:8020. يجب أن يبدأ العنوان بـhttp:// أو https://
وألا يحوي مسافات؛ والعنوان المخالف يُرفض بدل أن يُصحَّح.
اكتب اسم الإصدار، لا المعرّف الذي يعرضه Protokite. فحزمة Flock تحوّل Game Version بالاسم، والمعرّف
المكتوب في Game Version لا يتحوّل إلى شيء، فيظل البناء يرسل المعرّف الذي حُوِّل قبله. ونافذة الإعداد في
الخطوة التالية تكتشف المعرّف الملصوق وتعرض أن تكتب الاسم الصحيح عنك.
اختر Protokite → Playtest → Setup Checks And Test Video، أو اضغط Check Playtest Setup في تبويب
Playtesting. تفحص النافذة ما يحتاجه بناء هذا المشروع لاختبار اللعب. والفحص الناجح عليه علامة صح خضراء ويقول
ذلك:
ما تقوله النافذة
حين
Playtesting is turned on
توجد إعدادات اختبار اللعب وPlaytesting Enabled مفعّل
Protokite API URL is usable
يكون العنوان عنوان http أو https له مضيف ولا مسافات فيه
Game Version is a playtest’s version
تكون قيمة Game Version في Flock اسمَ اختبار لعب، pt-<test id>، محوَّلًا إلى المعرّف الذي يرسله البناء
Players built for this platform record video
تكون منصّة البناء Windows بنواة 64 بت (x64)
Protokite → Playtest → Setup Checks And Test Video. ثلاثة فحوص ناجحة؛ والرابع يفشل لأن هذا المشروع يُبنى لـAndroid، ويعرض Open Build Settings.
الفحص الذي يفشل عليه علامة حمراء، ويذكر ما يجب تغييره، ومعه زر يفتح موضع التغيير: Open Playtest Settings أو
Open Flock Settings أو Open Build Settings (كما في الصورة)، أو Set Game Version To pt-… حين تكون قد
ألصقت معرّف الاختبار في Game Version. يُفحص Game Version مع Flock عند فتح النافذة وكلما تغيّرت إعدادات Flock؛ وCheck Again يعيد
السؤال.وظهور «Players built for … record no video» لا يوقف اختبار اللعب: البناء لمنصّة أخرى يشغّل كل شيء آخر ولا
يسجّل فيديو.
اختبار اللعب لا يسجّل دخول أي لاعب أبدًا. تبدأ جلسته حين تصل جلسة Flock إلى الخادم، وتبدأ جلسة Flock
حين تسجّل لعبتك دخول لاعب، مع تفعيل Analytics Enabled وAnalytics Auto Start Session في Flock →
Settings → Advanced Settings (أو حين تستدعي StartSessionAsync)، ومع منح الموافقة حين يكون Analytics
Require Explicit Consent مفعّلًا.ويكفي تسجيل الدخول بالجهاز، ولا يحتاج إلى حساب:
في المرة الأولى التي يسجّل فيها جهاز دخوله، سجّله بـRegisterWithDeviceAsync بدلًا من ذلك؛ وصفحة
حزمة تطوير Unity تشرح تسجيل الدخول كاملًا. وفي مثال الحزمة زر Sign In
With This Device يفعل الأمرين، لبناء لا شاشة تسجيل دخول له.
يسأل البناء لاعبه عمّا يجوز لاختبار اللعب أن يجمعه، ولا يجمع شيئًا حتى يجيب. يُرسم السؤال فوق اللعبة
بمجرد تحميل اختبار اللعب الخاص بهذا البناء، ويعرض أربع إجابات: تسجيل الشاشة وجمع بيانات اللعب، أو الشاشة
وحدها، أو بيانات اللعب وحدها، أو لا شيء على الإطلاق — وهي تجعل البناء يتصرّف كما لو كان Playtesting
Enabled مطفأً.
السؤال الذي يطرحه بناء اختبار اللعب على لاعبه، فوق اللعبة، قبل أن يجمع أي شيء.
ويُجاب بالفأرة. وما دام السؤال على الشاشة يظهر المؤشّر حرًّا، ويعود كما كانت لعبتك تضبطه بعد أن يجيب
اللاعب. ولا تكون أي إجابة محدّدة حين يظهر، فلا يضغط مفتاح Submit الخاص بلعبتك أي إجابة، وتُتجاهل النقرة في
نصف الثانية الأولى من ظهوره.
إنه سؤال اختبار اللعب نفسه. أما Analytics Require Explicit Consent في حزمة Flock فسؤال آخر، تطرحه
لعبتك بكلماتها عن تحليلات لعبتك. ولا تغيّر أيٌّ من الإجابتين الأخرى، والسؤال يقول ذلك أمام اللاعب.
تُحفظ الإجابة على جهاز اللاعب ويستعملها كل تشغيل لاحق، ويحمل كل بدء جلسة القيمتين playtest_consent و
playtest_consent_asked، فتُقرأ الجلسة التي لا تسجيل فيها على أنها للاعب طلب ألا يُسجَّل شيء، لا لبناء أخطأ.
ولكي يُطرح السؤال مجددًا في المحرّر، اضغط Forget This Machine’s Answer في نافذة الإعداد.ويمكن للعبتك أن تتولّى السؤال من قوائمها:
ProtokitePlaytest.PlaytestConsent // the answer in forceProtokitePlaytest.SetPlaytestConsent(ProtokitePlaytestConsentChoice.VideoOnly); // answer it; NotAnswered asks againProtokitePlaytest.AskForPlaytestConsent(); // put the question on screen againProtokitePlaytest.IsConsentQuestionOpen // while it is on screen
لا تُطفئ Ask The Player For Playtest Consent في إعدادات اختبار اللعب إلا حيث يُسأل لاعبوك بطريقة أخرى،
أو في تشغيل اختباري لا أحد فيه ليجيب؛ عندها يجمع البناء ما يشغّله اختبار اللعب، وتذكر كل جلسة أن اللاعب لم
يُسأل. والإجابة التي أعطاها لاعب من قبل تبقى معتبرة.
تذكر نافذة Console ما يفعله اختبار اللعب، وكل سطر يبدأ بـ[Protokite Playtest]:
[Protokite Playtest] The playtest's consent question is on screen; nothing is collected until the player answers it.[Protokite Playtest] Playtesting is ready: playtest 01JABCDEFGHJKMNPQRSTVWXYZ0 is loaded, with features exception_capturing, heavy_analytics, video_recording and a feedback form.[Protokite Playtest] Recording video for the playtest to …/recording-….webm.part, at 1280x720 and 15 frames a second (Vp8). It stops for good after 60 minutes of play, before the file passes 1536 MB, or when the game stops it.[Protokite Playtest] Protokite session 01J… started for this launch, with the player's device id and Flock session 01J….
بعدها تظهر الجلسة في صفحة Sessions الخاصة باختبار اللعب. وتنتهي حين تُغلق اللعبة؛ وينتظر الإغلاق حتى 3
ثوانٍ ليستلم Protokite نهايتها. ولا ينهيها تسجيل الخروج ولا جلسة Flock جديدة ولا إعادة تشغيل حزمة Flock ولا
يعيد بدءها: التشغيل الواحد جلسة واحدة. وفي الشيفرة، تجيب ProtokitePlaytest.Status عن السؤال نفسه الذي
يجيب عنه السجل، وتعطي ProtokitePlaytest.Describe(status) كلمات السجل.
تذكر نافذة Console السبب وما يجب تغييره، مرة واحدة، على شكل تحذير.
الحالة
معناها
الحل
TurnedOff
Playtesting Enabled مطفأ، أو لا إعدادات لاختبار اللعب في المشروع
فعّله في Protokite → Playtest → Settings
ProtokiteApiUrlMissing
عنوان Protokite فارغ
اضبط Protokite Api Url (بيئة الإنتاج هي https://api-protokite.qwacks.com)
ProtokiteApiUrlUnusable
لا http:// ولا https://، أو لا مضيف، أو فيه مسافة
صحّح العنوان؛ فهو لا يُشذَّب عنك أبدًا
WaitingForFlock
كل شيء مضبوط؛ ولم تبدأ حزمة Flock بعد
لا شيء — يتابع حين تبدأ حزمة Flock
FetchingPlaytestConfig
يسأل Protokite عن اختبار اللعب الخاص بهذا البناء
لا شيء
PlaytestNotLinked
لا اختبار لعب في Protokite لمعرّف Game Version الخاص بهذا البناء
اجعل Game Version اسمَ اختبار اللعب الذي يبدأ بـpt-
ProtokiteRefusedApiKey
رفض Protokite مفتاح واجهة Flock البرمجية
تحقّق من Api Key في Flock → Settings
PlaytestConfigUnavailable
ظلّ Protokite أو الشبكة يفشلان
لا شيء — يُسأل مجددًا حين تبدأ جلسة Flock التالية
PlaytestConfigForAnotherVersion
أجاب Protokite باختبار لعب لإصدار آخر، كما يفعل وسيط يُسقط الترويسات
تحقّق ممّا يقع بين اللعبة وProtokite
PlaytestNoLongerCollecting
أُغلق اختبار اللعب
أعد فتحه في Protokite، أو وجّه Game Version إلى اختبار قائم
WaitingForPlayerConsent
اختبار اللعب محمَّل، ولم يذكر اللاعب ما يجوز له أن يجمعه
لا شيء — السؤال على الشاشة
PlayerRefusedPlaytest
طلب اللاعب ألا يُجمع شيء
لا شيء — هذه إجابته
والرفض (PlaytestNotLinked وProtokiteRefusedApiKey وPlaytestConfigForAnotherVersion) لا يُسأل عنه مجددًا
حتى تبدأ حزمة Flock من جديد أو يُعاد تشغيل اللعبة، إذ ستكون الإجابة نفسها.
أطفئ Playtesting Enabled وأعِد Game Version إلى إصدار نشر قبل أن تبني إصدار النشر. ويبقى بناء النشر
يرفع أي تسجيل لم يستطع بناء اختبار لعب سابق على ذلك الجهاز إرساله، فلا يضيع تسجيل لاعب أبدًا؛ ومع إطفاء
اختبار اللعب لا يُسجَّل شيء آخر ولا يُرسَل. ولإزالة الحزمة اضغط Remove في تبويب Playtesting. ويبقى ملف
الإعدادات حتى تحذفه.
يسجّل بناء اختبار اللعب شاشة اللاعب حين يشغّل الاختبار الفيديو، ويرسل ما يكتبه في نموذج الملاحظات. يسألهم
البناء أولًا ويفعل ما يجيبون به، لكن أخبر مختبريك قبل أن يلعبوا على أي حال: ما الذي يُسجَّل، وأنه يذهب إلى
اختبار اللعب الخاص باستوديوك في Protokite، وكيف يصلون إليك ليُحذف. وذلك السؤال يخصّ هذا الاختبار وحده — أما
ما تجمعه لعبتك بنفسها فما زال عليك أن تسأل عنه.