تشغيل محرّك اللعبة الحقيقي في المتصفّح
لماذا ليس عرض ZUPI التجريبي إعادة بناء، وما الذي كان يجب أن يكون صحيحًا في الشيفرة حتى يصبح ذلك ممكنًا.
ملاحظة تقنية · · قراءة 5 دقيقة
تحديث، 3 أكتوبر 2026: العرض التجريبي الموصوف هنا لم يعد موجودًا، وسببه أثمن من المقال نفسه. كل ما يلي روايةٌ صادقة عن عمل هندسي حقيقي — فوحدة قواعد ZUPI أُدخلت فعلًا بغير تعديل، وبصمتها كانت تُفحص فعلًا في كل عملية بناء، والرقعة كانت فعلًا المرحلة 1 كما يولّدها التطبيق. ثم تغيّر التطبيق. صدر ZUPI: Pulse Shield في 30 سبتمبر 2026 وهو لعبة أخرى، فصارت الوحدة التي يحتفي بها هذا النصّ وحدةَ اللعبة السابقة. والفحص الذي كان يحرس هذا الادعاء لم يكن يستطيع إلا إثبات تطابق النسخة مع المستودع، لا أن المستودع ما زال ما ينزّله الناس. و/try/zupi اليوم نسخة مُعاد بناؤها بصدق. الحجّة أدناه ما زالت قائمة بالنسبة إلى Glow Garden و Veyra؛ وما كان ينقصها أن النسخة المُدخَلة تحتاج إلى إعادة تحديد مصدرها، لا إلى إعادة بصمتها فحسب.
يواجه كل موقع استوديو منتجات المشكلة نفسها: لقطة الشاشة لا تستطيع أن تريك كيف يكون إحساس شيء، والإحساس هو معظم ما تكون عليه اللعبة. والجواب المعتاد هو إعادة بناء — نسخة متصفّح مبسّطة تقارب المنتج بما يكفي للدلالة. نحن نراها أسوأ الخيارات المتاحة. تكلّف هندسة حقيقية، وتنزاح عن التطبيق في اللحظة التي يتغيّر فيها أحدهما، وما يلعبه الزائر ليس — بحكم البناء — الشيء نفسه.
أتاح لنا ZUPI أن نتجنّب هذا الاختيار كليًّا، لأسباب لا علاقة لها بالتسويق.
الحدّ كان موجودًا أصلًا
تسكن قواعد ZUPI في وحدة واحدة مكتفية بذاتها بغير تبعيات تشغيل من أطراف أخرى. تملك الفيزياء ومعالجة التصادم وتوليد المراحل ومنحنى الصعوبة وحساب النقاط وقاعدة السكون ثلاث ثوانٍ. وهي لا تعرف ما هو الـ canvas. تعرض صفًّا تبنيه برقم مرحلة وتقدّمه بفارق زمني، وتخبرك بمكان كل شيء.
لم يُرسم ذلك الحدّ للويب. رُسم لتُختبر اللعبة بغير مُصيّر رسوم، ولتسند القواعد نفسها نسخة Android ونسخة iOS بغير أن تُكتب مرتين. ومجرّد مصادفة أن الوحدة التي يقدر إطار اختبار على قيادتها يقدر المتصفّح على قيادتها أيضًا.
ما فعلناه فعلًا
- أدخلنا وحدة القواعد بغير تعديل، وسجّلنا أصلها بجانبها. ليست نقلًا ولا إعادة كتابة — بل الملف نفسه.
- كتبنا مُصيّر رسوم للويب بلغة NOVEMADE البصرية الخاصة، بدل نسخ واجهة التطبيق.
- قدناه من حلقة بخطوة زمنية ثابتة، حتى تتقدّم المحاكاة بصورة متطابقة أيًّا كان معدّل تحديث الشاشة.
- تركنا توليد المراحل بغير مساس تامًّا، فالرقعة هي المرحلة 1 كما يولّدها التطبيق.
النقطة الأخيرة هي المهمّة. تُستنبط المراحل من بذرة حتمية لكل مرحلة، فهذه ليست رقعة تشبه المرحلة 1 — بل هي المرحلة 1. وتجاوزها هنا يعني ما يعنيه تجاوزها في التطبيق.
الصدق كمسألة واجهة
لأن «المحرّك الحقيقي» و«إعادة البناء» ادعاءان مختلفان فعلًا، يحمل فهرس عروضنا التجريبية بيان أمانة في كل مدخل، وهو حقل إلزامي في نموذج المحتوى لا ميزة مستحسنة. والعروض التي لم توجد بعد تقول ما ستكون عليه حين توجد — بما في ذلك أن عرض Didi سيكون إعادة بناء بالضرورة، لأن منطقه مرتبط بطبقة واجهته الأصلية ولا يوجد حدّ محرّك يمكن كشفه.
ما يستحقّ أن يُؤخذ من هذا
الدرس القابل لإعادة الاستخدام لا يتعلّق بعروض الويب. بل بأن سؤال «هل يستطيع شخص آخر قيادة هذا بغير واجهتنا؟» سؤال يستحقّ أن يُطرح أثناء بناء المنتج لا بعده. وحين يكون الجواب نعم، تحصل على قابلية الاختبار وقابلية النقل و — كما تبيّن — عرض تجريبي لم تضطر إلى بنائه مرتين.