بناء لعبة أرضية تفاعلية: ما لا تعلّمك إياه الشاشة

معظم أعمالنا تعمل خلف الزجاج. وهذا العمل يعمل تحت الأقدام. «أب ذا بيت» لعبة أرضية تفاعلية بنيناها لصالح Q&R Media Services لتكون محور تفعيل «Up the Taste» من هاينز في الكويت: سبع دوائر مضيئة تستشعر الضغط تحيط بشاشة تنادي نكهةً وتنتظر من يسبق. وكل ما يلي هو ما تعلّمناه فعليًا أثناء البناء — بما في ذلك ما أخفق منه.
حرفتان، مفصولتان عن قصد
تركيبٌ كهذا هو في الحقيقة منتجان يتشاركان كابلًا. الأول لعبة ويب تعمل في الوقت الفعلي — بنفس تقنيات Next.js وReact التي نستخدمها في ألعابنا الرقمية — تعمل كشاشة كشك: تملك القواعد والوقت والنتيجة والواجهة ثنائية اللغة. والثاني برمجية ثابتة على متحكم ESP32-S3 يملك شيئًا واحدًا فقط: الضوء.
وهذا الفصل ليس ترتيبًا لذاته. فاللعبة ترسل حالة — نودي على نكهة، صحّت خطوة، انتهت الجولة — ويعرض المتحكم الحركة محليًا. وإن تلعثم الحاسوب تظل الأرضية تتصرف. فالطفل الواقف على دائرة يجب ألا يرى الضوء يتردد لأن شيئًا أعلى السلسلة مشغول.

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

الإخفاق الذي كلّفنا أمسية
سبعة أشرطة إضاءة مستقلة أكثر مما يستطيع المتحكم الذي اخترناه تشغيله بالطريقة السهلة. فالوحدة العتادية المخصصة لذلك تتوقف عند أربعة؛ وطلب الخامس لا يتدهور بلطف — بل تُجهض اللوحة وتعيد الإقلاع في حلقة لا تنتهي. والانتقال إلى المشغّل المتوازي أعطانا السبعة، ثم عرض كل شريط اللون الأبيض الصلب: توقيت البتات في ذلك الإصدار من المكتبة كان خاطئًا، فقُرئ كل بتّ لوني كواحد.
وكان الحل ترقية المكتبة وعَلَمَ بناء واحدًا لم يذكره الخطأ قط. صرنا نوثّق هذه الأمور — التركيبة التي تعمل بالضبط، والثلاث التي لا تعمل — لأن الجزء المكلف في العتاد نادرًا ما يكون اللحام. بل الأمسية التي تقضيها لتثبت أيّ التفسيرات الأربعة المعقولة هو الصحيح.

التصميم لطفل في الطابور
على الهاتف، النقرة الخاطئة أمر خاص. أما على أرضية سوق، فالخطوة الخاطئة تقع أمام طابور. لذلك القواعد لطيفة بحكم بنائها: الخطوة الخاطئة تكلّف اللحظة فحسب — لا شيء ينتهي، ولا شيء يُعاد، ولا يخرج لاعب صغير من دوره. والحكم يضيء الحلقة كاملة بدل قرص واحد، لتُقرأ الإجابة من الممر المقابل ومن فوق الدائرة نفسها.
الفكرة نفسها صاغت الصوت. فالإشارات قصيرة، وتقع في النطاق الترددي الأقل ازدحامًا بضجيج التجزئة لتصل دون أن تكون عالية، وإشارة الإجابة الخاطئة خافتة عمدًا لا صافرة. فالعاملون يقفون بجوارها نوبة كاملة؛ والصوت الذي يُحرج طفلًا هو ذاته الصوت الذي يُنهك من يعمل هناك.
ما نقوله للاستوديو التالي
العمل الفعلي يعاقب الافتراضات التي يغفرها البرمجيات. فالنشر يمكن التراجع عنه في دقيقة؛ والأرضية لا يمكن. لذلك بنينا الأمان الممل مبكرًا: يعمل التركيب مكتفيًا بذاته في الموقع بدل الاتكال على شبكة المكان، ويحدّث الكشك نفسه ويعالجها ذاتيًا فلا يضطر أحد للقيادة إلى مجمّع لإعادة تشغيل لعبة. ومعظم ذلك غير مرئي حين ينجح، وهذا هو المقصود.
وما لا تعلّمك إياه أي شاشة: المقياس يغيّر التصميم. فاللعبة التي تمسكها يُحكم عليها في اليد؛ واللعبة التي تقف عليها يُحكم عليها من عشرة أمتار، من شخص يقرّر إن كان سينضم إلى الطابور. وكل قرار اتخذناه في الضوء واللون والصوت كان في الحقيقة قرارًا عن تلك المسافة.