فين غادي أنا؟ وفين يسالي الطريــق؟
واش هاد الشي حقيقي ولا خيال؟
كنت كولشي, ودابا حسيت براسي ضيق,
واش أنا غير صورة, ما عندهاش ظل؟

الوجود تقيل, والأسئلة كتخنق.
فين هي النهاية؟ وفين البداية كانت؟
أ العشير, حتى أنا كنقلب على معنى,
غير سد هاد الصفحة, وبركة من الأسئلة.

#4 Godot Game Polish اللعب بالمانيطة وتسريع/تحسين اللعبة

مرحباً بكم فـ Devlog جديد من رحلة صناعة أول لعبة Action RPG ديالي. فهاد التحديث (v0.4.0)، ركزت على واحد الحاجة مهمة بزاف فصناعة الألعاب اللي هي الـ Godot Game Polish. اللعبة فالنسخ اللي فاتو كانت خدامة، ولكن كانت ناقصاها ديك اللمسة ديال الاحترافية، داك الـ “Game Feel” اللي كيخليك مرتاح ونتا كتلعب.

اليوم غانشارك معكم جوج حوايج واعرين: كيفاش زدت دعم اللعب بـ المانيطة، والأهم من هادشي كامل: كيفاش سرعت اللعبة وقضيت على الـ Lag فاش كيبانو المؤثرات لأول مرة باستعمال نظام تحميل مريݣل. ما تخلعش، هادشي ساهل وغانشرح ليك دقة دقة، باش تفهم علاش درت ماشي غير كيفاش!

1. شاشة دالبدية: Night Environment و Fire Particles

Godot Game Polish start screen with night environment and fire particles

أي لعبة خاصها تخطف ليك العين من الدقة الأولى. فالإصدارات اللي فاتو، اللعبة كانت كتدخل نيشان للّعب وما كانش ݣاع Start Screen! داكشي علاش قررت نقاد وحدة من الزيرو ونديرها فبيئة ليلية مريݣلة داكشي ديال Dark souls.

زدت إضاءة زرقا خفيفة، وصاوبت Fire Particles (جزيئات ديال العافية) الوسط فالشاشة باش يعطي واحد التباين واعر بين البرودة د الليل والدفء د العافية. وما حبستش هنا، زدت Camera Animations… فاش كتدخل للعبة، الكاميرا كدير واحد الحركة سلسة (Cinematic) باش تدخلك للجو ديال اللعب نيشان. هادشي كامل كيدخل فإطار تحسين التجربة باش العين ترتاح.

2. اللعب بالمانيطة و UI ذكي

Godot Game Polish controller support with custom UI prompt

ألعاب الـ ARPG مخدومين فـ الأصل باش يتلعبو بالمانيطة. واخا الكلافي (Keyboard) خدام مزيان (كما شرحت فـDevlog 1)، قررت نزيد Controller Support باش التجربة تولي مريحة كثر. هادشي اللي قاديت:

  • Left Joystick: باش تحرك الشخصية بـ 360 درجة بحرية تامة.
  • A Button: بوطونة وحدة كدير شلا حوايج ذكية (Context-sensitive). إيلا كنتي فـ الخاوي غاتنقز، إيلا قربتي لشي شخصية غاتولي هي باش كتهضر معاه، ولا تقدر تهز بيها شي سلاح طايح فالأرض.
  • X Button: باش تضرب بالسيف ولا تقطع الربيع.
  • Y Button: باش تزحف (Prone) وتخبى.

باش هادشي يبان احترافي، زدت Interaction UI. يعني فاش كتقرب لشي NPC، كيبان ليك واحد الـ Popup فيه الأيقونة ديال البوطونة (مثلا “E” فالكلافي، أولا “A” فالمانيطة) والنص (مثلا “هضر”). هادشي كيخلي اللاعب ديما عارف شنو خاصو يدير بلا ما يتبلوكا.

3. الكيبورد الافتراضي (Virtual Keyboard) بالدارجة

Godot Game Polish virtual Arabic keyboard with controller support
  • Virtual Keyboard بالدارجة: بما أننا زدت اللعب بالمانيطة، كان خاصني نحل واحد المشكل كبير: كيفاش اللاعب غايكتب سميتو بلا ما يحط المانيطة ويقلب على الكلافي؟ داكشي علاش قاديت لوحة مفاتيح افتراضية وسط اللعبة! دابا ملي كيسولك الـ NPC “شنو سميتك؟”، كطلع ليك هاد الكيبورد اللي فيها الحروف العربية كاملة، وتقدر تختار الحروف (بحال سمية “السكرتح” اللي فالتصويرة 🐆) وتكتبها نيشان غير بالمانيطة. هادشي زاد واحد النيفو آخر ديال الاحترافية (Polish) وخلى التجربة متكاملة ومافيهاش التقطاع.

4. تسريع اللعبة: Loading Mechanism و Pre-warming

Godot Game Polish custom loading screen with Moroccan Darija text and green progress bar

هنا فين كاين المعقول التقني. فالإصدارات القديمة، اللعبة ما كانش فيها ݣاع Loading Screen. هادشي كان كيخلي اللعبة تـقطع فاش كيبان شي Particle Effect لأول مرة حيت كارت الشاشة (GPU) كيكون عاد كيـ Compile الـ Shaders.

الحل؟ قاديت Loading Mechanism مريݣل بـ Pre-warming! النظام الجديد كيدير Preload للمشهد وكيشعل دوك الـParticles مخبيين مورا الكاميرا باش يوجدو. ولكن… ملي كنت كانـ Testi هاد الـLoading الجديد، طحت فمشكل آخر! لاحظت أن فـ الـ Web version، الـ Loading كياخد وقت طوييييل بزاف مقارنة بنسخة الـ Desktop .exe. المتصفح كان كيتعطل باش يتيليشارجي ويقرا ملفات الـ WebAssembly.

الخبر الزوين؟ ما خليتش هادشي هكاك. جلست مع الكود، درت بزاف ديال التحسينات، وحليت المشكل من الجدر! دابا اللعبة ولات كـاتلوضي بالزربة، وكتخدم خفيفة من الدقة الأولى بلا داك الانتظار الطويل. اللعبة دابا طايرة سوا فالبيسي سوا فالمتصفح!

5. بيئة حية: تدمير الربيع و الصوتيات

Game Polish cutting destructible bushes in the game world

فـ Devlog 3، كنت هضرت على الحوارات والكاميرا. فهاد التحديث، زدت تفاعل أكثر مع البيئة:

  • Destructible Bushes: زدت شجيرات كيبلوكيو الطريق ديال اللاعب. باش تدوز، خاصك تضربهم بالسيف باش يتقطعو. (استعملت نفس الـ Health System ديال الأعداء اللي شرحت فـ Devlog 2).
  • Sound Effects (SFX): زدت أصوات فاش كتهضر مع الـ NPCs، وأصوات فاش كتدخل للـ Settings Panel (اللي تقدر تحلو دابا بـ Tab).

ومادام جبدنا الهضرة على الأصوات…

6. لوحة الإعدادات (Settings Panel) ناضيى:

Godot Game Polish custom settings menu

دابا تقدر تكليكي على Tab (أولا Y من المانيطة) باش تفتح لوحة الإعدادات. قاديت UI ناضي بالدارجة تقدر تتحكم فيه فمقاييس الصوت (الصوت كامل، الموسيقى، المؤثرات) والـ Fullscreen. والواعر فهادشي (وهنا فين كيبان الـ Godot Game Polish ديال بصح) هو أن هاد الإعدادات كدير Save Config! يعني اللعبة كتعقل على الإعدادات ديالك فواحد الفيشي، واخا تخرج وترجع غاتلقى داكشي كيفما خليتيه. وطبعاً، هاد الموني كامل مخدوم باش تدور فيه وتتحكم فكلشي غير بالمانيطو بلا ما تقيس الماوس ݣاع!

جرب اللعبة دابا

هادشي كامل اللي دوينا عليه راه واجد باش تجربو. ركب المانيطة ديالك، دخل للرابط، وعطيني رأيك فـ هاد التحديث الجديد.

أسئلة

كيفاش نبرمج المانيطة (Gamepad) فـ Godot؟

القضية ساهلة وفابور! كتمشي لـ Project Settings > Input Map. كتزيد Action جديد (مثلا “Attack”)، ومن بعد كتكليكي على علامة (+) وكتختار Joypad Button وكتعزل البوطونة اللي بغيتي (بحال X ولا A). Godot كيتعرف على المانيطات ديال Xbox و PlayStation أوتوماتيكياً. تقدر تقرا كثر فـالوثائق الرسمية ديال Godot Inputs.

. شنو هو الـ Pre-warming وعلاش مهم لتسريع اللعبة؟

تخيل معايا باغي تجري سبرينت (Sprint) بلا ما تسخن، غاتضربك عضلة! نفس الحاجة للـ GPU، إيلا عطيتيه يرسم Particle معقدة فجأة، غايدير Lag كيتسمى (Shader Compilation Stutter). الـ Pre-warming بحال التسخينات، كيخلي الـ GPU يـ Compile داكشي فـ شاشة الـ Loading باش اللعب يبقى خفيف.

كيفاش حليتي مشكل الـ Loading فالـ Web؟

بزاف ديال الحوايج: صغرت حجم الـ Textures، استعملت VRAM Compression اللي متوافق مع WebGL، وقاديت الكود باش الـ Asynchronous Loading يخدم بطريقة مريݣلة بلا ما يتبلوكا المتصفح.

خلاصة القول، الـ Godot Game Polish والـ Loading Mechanism هما اللي كيفرقو بين “لعبة عادية كتقطع” و “لعبة كتحمق وسريعة”. فالتحديث الجاي غانزيد نطور العالم أكثر. خليو ليا رأيكم فـ لي كومونطير!

العز، وتهلاو! خوكُم Bou33ou.