شغّل لعبتك الخاصة
اللعبة المخصّصة لعبة تبنيها أنت وتستضيفها، تُستخدَم في أداة Caputchin بدل لعبة المتجر. لا أحد آخر يستطيع تثبيتها، ولا موضوع GitHub ولا خطوة نشر، وتبقي الكود. هذا القسم هو الدليل المفصّل، ابنِه-بنفسك، لذلك المسار. (إن أردت شحن لعبة كي يضمّنها أي أحد، فذلك تطوير لعبة المتجر، مسار منفصل.)
هناك طريقتان لتسليم لعبة مخصّصة، وهما سطحان مختلفان حقًّا بحدود مختلفة. اختر بحسب ما تحتاجه:
الوضع اليدوي: DOM خاصتك، بلا بوّابة
الوضع اليدوي هو الخيار الخفيف. تضبط trigger="manual" على <caputchin-game>، وتضع تركيبك الخاص داخله، وتنادي طريقتي العنصر pass() / fail() من كودك الخاص حين ينجح الزائر أو يفشل. لا إطار iframe ولا SDK لعبة؛ الأداة تعطيك غلاف تخطيطها وسباكة التحقّق حول تركيبك فقط.
المقايضة: جولة الوضع اليدوي لا يمكن إعادة تشغيلها على الخادم، فلعبة الوضع اليدوي لا تستطيع إرضاء بوّابة لعبة. تعمل فقط على مفتاح غير محكوم ببوّابة (تحقّق proof-of-work، بتفاعلك كتجربة استخدام)، أو لعبة فقط بلا تحقّق البتّة. استخدمها لتفاعل موسوم بعلامة، لا لبوّابة أمان تحتاج إعادة تشغيلها.
لعبة iframe مستضافة ذاتيًّا: تستطيع الحراسة
اللعبة المستضافة ذاتيًّا لعبة حقيقية معزولة: حزمة JavaScript مبنيّة مقابل حزمة @caputchin/game-sdk تعمل في إطار iframe الخاص بالأداة، وتكلّم المضيف عبر جسر الـ SDK، وتبلّغ أثرًا يستطيع الخادم إعادة تشغيله. تستضيف الحزمة بنفسك وتوجّه الأداة إليها بسمة game-src.
ولأن الجولة تنتج أثرًا قابلًا لإعادة التشغيل، تستطيع لعبة مستضافة ذاتيًّا حراسة مفتاح موقع، لكن فقط بعد أن تعطي Caputchin أداة إعادة تشغيل: نسخة صغيرة بلا واجهة من منطق لعبتك يشغّلها الخادم لإعادة اشتقاق الحُكم. حتى تُرفَع تلك الأداة وتجتاز فحصها الذاتي، تظهر اللعبة المخصّصة غير قابلة للإعادة ولا تستطيع الحراسة.
ما الذي تضيفه لوحة التحكّم
لعبة المتجر تشحن بيان caputchin.json يعلن حقول تخصيصها. لعبة مخصّصة لا بيان لها، فـتعلن تلك الحقول على لوحة التحكّم بدلًا: تسجّل اللعبة المخصّصة بمعرّف تختاره، وتعرّف مخطّط حقولها لكل محور (لغة، مظهر، إعداد)، وتؤلّف تهيئات مقابله. من هناك تُحلّ وتُطبَّق تمامًا كلعبة المتجر، على مستويات الباقات نفسها.
فسطح اللعبة المخصّصة الكامل هو:
| القطعة | أين | لازمة لـ |
|---|---|---|
| اللعبة نفسها | كودك، مضيفك | دائمًا |
| التسليم | خانة trigger="manual"، أو إطار game-src | دائمًا |
| مخطّط الحقول + التهيئات | لوحة التحكّم (تعرّف المخطّط) | تخصيص اللغة / المظهر / الإعداد |
| أداة إعادة التشغيل | رفع في لوحة التحكّم | حراسة التحقّق (المستضاف ذاتيًّا فقط) |
انظر أيضًا
- الوضع اليدوي: خصّص DOM خاصتك وقُد pass/fail.
- اللعبة المستضافة ذاتيًّا: ابنِ لعبة iframe قابلة لإعادة التشغيل بالـ SDK.
- إعادة التشغيل والحراسة: ارفع الأداة التي تتيح للعبة مخصّصة الحراسة.
- مرجع مخطّط لوحة التحكّم: مخطّط الحقول الذي تعرّفه للعبة مخصّصة.
- الألعاب المخصّصة: التسجيل والاستضافة، من جانب العميل.