استولى الليل على معبد الجبل وخمدت كل مجمرة. ثعلب ساعٍ صغير يحمل آخر جمرة عبر الحواف — أشعل المجامر الثلاث قبل نفاد الطريق، دائسًا شخصيات الرماد وصناديق الجمر في طريقه. لعبة منصّات دقيقة كاملة، أُلّفت من البداية إلى النهاية بواسطة وكلاء ذكاء اصطناعي في Phaser 3، بُنيت من منطلق الإحساس أولًا: ضُبط كل ثابت حركة وقِيس على صناديق رمادية قبل وجود أي عنصر رسومي.
أسهم / A·D + مسافة، اضغط مطوّلًا للقفز أعلى · لوحات لمس على الهواتف · ~3.2 ميغابايت · M للصوت · P للإيقاف المؤقت
صُمّم العمل مفاهيميًا أولًا — ثعلب ساعٍ بفانوس جمر، وعدو شخصية رماد، وورقة عناصر، ولوحة أجواء لمعبد الغسق حدّدت لوحة الألوان: البني المحمّر مقابل ليل نيلي، وبرتقالي الجمر كضوء دافئ وحيد. ثم أُنشئ كل عنصر مُسمّى في تلك الأوراق كأصل حقيقي، وقارنت كل جولة تدقيق البناء بها.


شُغّلت اللعبة بأكملها واكتُملت كصناديق رمادية قبل وجود أي رسوم. طبقة الحركة هي منتج المختبر: جاذبية غير متماثلة مع تعليق عند الذروة، ومهلة القيوتي، وتخزين مؤقت للقفز، وكاميرا استباقية باتجاه النظر مع مرساة رأسية أرضية — كل ثابت مُسجَّل في FEEL_NOTES.md مع سبب اعتماد قيمته وما أظهرته القيم المرفوضة من قياسات. لاعب آلي يُكمل كل بناء من البداية للنهاية في كل جولة تدقيق.

الثعلب بناء Blender مُدمج بالفوكسل — دُقّق عبر خمس جولات مقابل مفهومه بفحوصات لوحة ألوان مُعاينة بالعرض — مُهيكل ومُحرَّك بالتقاط حركة CMU مُعاد استهدافه (مقطع الجري 09_02، والقفز 16_01 باختيار أوضاع حسب سرعة الورك المُقاسة)، مُحوَّل إلى صفوف صور متحركة. شخصية الرماد والمجامر والصناديق والجمرات وبوابة المعبد والبلاط وطبقات الجبل الثلاث متوازية المنظر جميعها عناصر Blender جاهزة مُجمَّعة. الصوت من محرك الآلات المُعاينة الخاص بالمنصة: سلّم نغمي بالسيليستا لمسارات الجمر، وموجات قيثارة وبوق للمجامر، وعائلات خطى وارتطام للجسد، ورياح ليلية إجرائية في الخلفية.
يأتي النموذج الأولي مزودًا بأداة قياس أداء خاصة به (Playwright، عارض لوحة الرسم، إطارات performance.now() خام — فمضيف التدقيق في هذا المختبر لا يملك معالج رسومات، وتقييد الإطارات بدون واجهة رسومية مع تنعيم دلتا المحرك قد يوهمان بمعدل نظيف 60 خلاف ذلك. الأرقام أدناه من نوافذ حِمل هادئ على ذلك المضيف المشترك؛ مسافات الفضاء المحاكى مقاومة للحمل.
| المقياس | مُقاس | الظروف |
|---|---|---|
| الإدخال ← سرعة القفز | 11–32 مللي ثانية (≤2 إطار) | طابع زمني لضغط المفتاح في DOM ← تطبيق السرعة |
| نافذة Coyote | يُقبل عند 50 مللي ثانية · يُرفض عند 160 مللي ثانية | مشي مبرمج خارج الحافة، نافذة 90 مللي ثانية + إطار واحد |
| مخزن القفز المؤقت | يُطلق بعد 43 مللي ثانية من الضغط في إطار الهبوط | ضُغط قبل 90 مللي ثانية من لمس الأرض |
| التسارع / التوقف | 95% من أقصى سرعة خلال 135 مللي ثانية · توقف خلال 17 بكسل | ضغط كامل من السكون / تحرير عند أقصى سرعة |
| مسار القفزة | 122 بكسل كاملة خلال 345 مللي ثانية صعودًا، 299 مللي ثانية هبوطًا · نقرة 39 بكسل | ضغط مستمر مقابل نقرة 70 مللي ثانية؛ بلاطات 48 بكسل |
| استجابة الأحداث | ≤42 مللي ثانية، لكل حدث تفاعلي | الميزانية 100 مللي ثانية؛ استجابة بصرية في نفس الإطار |
| تشغيل آلي كامل | 3/3 مواقد، فوز خلال 18 ثانية، بدون أخطاء | بوت إدخال تفاعلي، سطح مكتب؛ تكرر كتدقيق تأكيدي |
| تكلفة الإطار (خادم هذا التدقيق) | أفضل متوسط 21.1 مللي ثانية · p95 عند 32.7 مللي ثانية | لوحة رسم برمجية، بدون معالج رسومات، جهاز مشترك تحت حمل متبقٍ — الأجهزة الحقيقية تُشغّل عارض WebGL عند 60 |
| الحمولة | 3.2 ميجابايت · 66 ملفًا | المحرك 1.2 ميجابايت + الرسوم 0.7 ميجابايت + الصوت المُعايَن 1.2 ميجابايت |
الجاذبية العامة صفر؛ تُختار جاذبية الجسم في كل إطار — الصعود، التعليق عند القمة، السقوط — مع حد أقصى للسرعة النهائية.
تنعيم أُسّي، استباق الاتجاه يُعاد توجيهه أبطأ من الموقع، مرساة رأسية أرضية بنوافذ غير متماثلة، اهتزاز انتقالي فقط يتلاشى تدريجيًا.
تُخبز شبكة بلاط كل منصة مرة واحدة في RenderTexture — رسمة واحدة لكل منصة في كل إطار على أرضية لوحة الرسم البرمجية.
صفوف إطارات التقاط الحركة؛ معدل الجري مرتبط بسرعة الأرض؛ وضعية القفز تُختار حسب السرعة الرأسية؛ حركات انضغاط آمنة عند المقاطعة.
غبار الانزلاق أثناء الجري، شظايا الصناديق تحت الجاذبية، انفجارات الرماد، بريق الجمر، حلقات لهب لكل موقد — خمسة مُصدرات مضبوطة بدقة.
محرك صوت Web Audio الخاص بالمنصة: أصوات معايَنة ذات مغلّف، تذبذب في التنويع، إرساليات المؤثرات، فتح عند أول لمسة، صوت رياح إجرائي محيطي.