الاستراحة: كيف نُعيد تصميم "الذكاء الاجتماعي" رقمياً؟

Published

This post is also available in: English

الاستراحة: كيف نُعيد تصميم "الذكاء الاجتماعي" رقمياً؟

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

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

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

الهندسة (The Core Engine)

في هذه المرحلة، قررت الانتقال من مجرد "تجربة برمجية" سريعة إلى بناء منصة حقيقية بمعايير هندسية متينة. لم يكن التحدي في برمجة اللعبة نفسها، بل في الإجابة على سؤال إستراتيجي: كيف أبني نظاماً يسمح لي بإضافة ألعاب جديدة مستقبلاً (مثل "كلك"، "مزاد المعلومات"، أو غيرها) دون أن أضطر لإعادة بناء الأساس في كل مرة؟

اخترت Expo و React Native لضمان وصول اللعبة لجميع المنصات (Cross-platform)، واعتمدت على Convex كخادم لإدارة الغرف والبيانات في الوقت الفعلي (Real-time). لم يكن هدفي بناء "تطبيق ألعاب"، بل بناء Modular Core Engine؛ محرك يفصل تماماً بين "نواة المنصة" (إدارة اللاعبين، الحضور، والغرف) وبين "منطق اللعبة" (Game Logic). هذا التوجه جعل إضافة لعبة جديدة أمراً بسيطاً لا يتطلب المساس بـ "النواة"، مما يمهد الطريق مستقبلاً للسماح للمطورين الآخرين بإضافة ألعابهم الخاصة.

كنت أعمل كـ "جيش الرجل الواحد"؛ أُبرمج، وأُصمم، وأختبر النسخة على Expo Go في الآيفون ونسخة الويب على الماك. ورغم أنني لم أكن أملك قاعدة مستخدمين بعد، إلا أن "هوس الإحسان" دفعني للتركيز على الـ Optimization وإدارة الحالات المعقدة مثل خروج اللاعبين المفاجئ أو انتقال صلاحيات "الآدمن" (Host Migration). كنت أريد بناء بنية تحتية تتحمل الطموح الكبير الذي رسمته لـ "الاستراحة"، حتى لو كلفني ذلك وقتاً أطول في التطوير.

الإحسان في التفاصيل

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

ولأن الملل هو عدو الألعاب الجماعية الأول، وظفت الذكاء الاصطناعي ليكون "صانع الأسئلة" الذكي. بدلاً من الأسئلة المكررة التي يحفظها اللاعبون بعد فترة، جعلت الـ AI يولد أسئلة وتحديات متجددة بناءً على التصنيفات التي يختارها اللاعبون، مما يضمن أن كل جولة هي تجربة جديدة كلياً. حتى في الجوانب البصرية، حرصت على توفير "ثيمات" (Themes) متنوعة، مثل "ثيم القهوة"، ليعكس الدفء والجو العام الذي نعيشه في استراحاتنا الحقيقية.

لم أتوقف عند ما يظهر على الشاشة فقط، بل ركزت على "المشاعر" الرقمية. استخدمت الـ Haptics (الاهتزازات اللمسية) لتعطي اللاعب ردود فعل في لحظات الحماس، وصممت الـ Leaderboards لتعزز روح المنافسة الشريفة. استخدمت أداة Stitch من جوجل لتصميم تدفقات المستخدم (Flows) بعناية، لضمان أن تكون الرحلة من فتح التطبيق إلى بدء اللعب سلسة، واضحة، وخالية من أي تعقيد تقني يفسد "روقان" الجلسة.

فخ الكمالية: عندما تصبح اللقمة أكبر من الفم

رغم كل الإنجازات التقنية التي حققتها في "الاستراحة"، إلا أنني واجهت تحدياً من نوع آخر: فخ الكمالية. كنت أطارد صورة ذهنية مثالية للمنتج؛ رفضت الإطلاق بلعبة واحدة، وأصررت على أن يخرج التطبيق للنور بـ 4 ألعاب كاملة ومصقولة. هذا الإصرار جعلني أدور في حلقات مفرغة من التحسينات المستمرة، دون أن أضع معياراً واضحاً للانتهاء (Definition of Done).

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

لقد استنزفتُ طاقتي في أمور لم تكن أولوية في مرحلة البداية؛ مثل المبالغة في الـ Optimization وأنا لا أملك مستخدماً واحداً بعد، أو الإصرار على دعم منصات متعددة (Cross-platform) منذ اللحظة الأولى. كما توقفتُ عند عقبات تقنية مثل ربط بوابة الدفع (RevenueCat)، وشعرتُ حينها أن "اللقمة كانت أكبر من الفم". الدرس القاسي الذي تعلمته هو أن "اعطِ الخبز خبازه ولو أكل نصفه"؛ فمحاولة القيام بكل شيء بمفردك قد تقتل أعظم الأفكار قبل أن ترى النور.

استراحة محارب.. وليست نهاية الطريق

اليوم، يقبع كود "الاستراحة" في مستودعات GitHub، والمشروع متوقف مؤقتاً عن العمل، لكنه بالنسبة لي لم يكن أبداً "فشلاً". على العكس، كانت هذه الرحلة هي "المختبر" الحقيقي الذي صقل شخصيتي المهنية. تعلمتُ أن أكون مديراً للمنتج (Product Manager) قبل أن أكون مبرمجاً؛ عرفتُ متى يجب أن أقول "لا" للمميزات الإضافية، وأدركتُ أن المنتج الذي يلمس يد المستخدم -بكل نواقصه- أعظم بمراحل من منتج "مثالي" لم يره أحد.

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

في النهاية، "مُلهم" لم يكن مجرد اسم للاستوديو، بل هو الوعد الذي قطعته على نفسي: أن أستمر في التجربة، والابتكار، والتعلم من كل عثرة، لأن القادم دائماً يُبنى على أنقاض الكمالية الزائفة وبدايات الصدق مع الذات.