في محرك غودو يوجد عقدة TileMap المسؤولة عن امكانية بناء المراحل بسهولة، فيوجد عدة صورة تسمى Tiles أو قطع، ومن تلك العقدة تقدر على وضع القطع في الأماكن التي تشاء في مرحلتك.
ولكن يوجد مشكلة، فماذا لو كانت المرحلة كبيرة، فكل قطعة تريد وضعها يجب أن تضغط عليها لاختيارها ثم وضعها في المكان المطلوب، ثم الرجوع مجددا وأختيار القطعة المُرادة وهكذا.
بالطبع تلك مشكلة كبيرة، وفي محركات الألعاب يوجد تقنية تسمى Auto Tiling وتترجم إلى “التبليط التلقائي” ! ولكن هنا أشير أليها بـ “البناء التلقائي”.
تقنية البناء التلقائي من أفضل التقنيات الخاصة بتطوير الألعاب، لما فيها من سهولة وتيسير لبناء المراحل، بدلا من تحديد القطعة المرادة، فأن المحرك يعرف تلقائيا ما تريده ويضعه عنك. وذلك أضمن من الطريقة اليدوية.
بهذه التقنية يمكن بناء مراحل أسرع، وأيضا بكتابة شيفرة (script) ذكية، يمكنك جعل المحرك يبني لك المراحل بدون الحاجة لفعلها بنفسك، أو حتى بناء عالم كامل لا نهائي.
في هذا المقال اتحدث عن كيفية تجهيز واستعمال هذه التقنية عبر محرك غودو Godot في إصداره الرابع، نظرا لما أضافه المطورين من تقنيات جديدة وطرق مختلفة عن الإصدارات السابقة.
عناصر المقال
عقدة TileMap
بداية يجب إنشاء مشروع جديد، ووضع الـTileMap أو خريطة القطع فيه، ثم استخدام صورة خاصة بذلك، وفي مقال سابق تحدثت عن كيفية تجهيز خريطة القطع هذه وما هي المصطلحات المستخدمة في مقدمة يسيرة عنها.
أرجو منك مشاهدة تلك المقالة أولا حتى تستطيع تجهيز المشروع الذي سنعمل عليه، ففي حالتي كل ما فعلته هو تجهيز خريطة القطع بهذه الأصول المجانية، جهزها وتأكد أنها بالفعل تعمل ويمكنك البناء بالقطع المرادة..
بالنسبة للأصول فقد استعملت الصورة tiles_packed.png أيضا استعملت عقدة اللون ColorRect كخلفية. ويمكنك من الـgif رؤية المشاكل التي أواجهها أثناء بناء هذه الجزئية الصغيرة.
وكي نضيف نظام البناء التلقائي، يجب عليك الذهاب إلى خانة Terrains sets الموجودة في لوحة الخصائص Inspector الخاصة بعقدة خريط القطع، ومن هناك اضغط على إضافة عنصر Add Element.
ثم أفتح الخانة Terrains واضغط على إضافة عنصر Add Element، ويمكنك تسميته ما تريد بالانجليزية، وتغير لونه.
أما Terrains فتعنى “تضاريس”، وهي التقنية المسؤولة عن نظام البناء التلقائي – Auto Tiling في المحرك، عن طريقها تستطيع نُحديد القطع التي يجب أن توَضع عندما يتحقق شرط خاص. وأشرح ذلك كله الآن عبر “مبدأ البناء التلقائي”
مبدأ البناء التلقائي
قبل تجهيز الصورة للبناء التلقائي، يجب أولا شرح المبدأ العام لتقنية التضاريس – terrain والتي تعتمد على فكرة “المجاورة”.
عندما تستعمل أي واحدة من القطع – tiles، فدائما يوجد 8 خانات تجاورها، قد تكون بتلك الخانات قطع اخرى – مثل الحالة اليمنى في الصورة التالية – أو قد يجاورها من بعض الجوانب فقط، أو أنها خانات فارغة ولا تحتوى على شيئ.
وفي أسفل كل حالة من تلك الحالات (في الصورة)، ستجد شبكة من 9 خانات، وضعت فيها الاماكن المُستخدمة لتلك الحالة، على اليسار مثلا تجد انه القطعة لا يجاورها أي شئ، بالتالي في الشبكة السفلية وضعت فقط نقطة واحدة.
الشبكة الصغيرة تلك هي ما يحتاجها المحرك، وبها يمكن له التعرف على تلك القطع ويعرف متى يستخدمها. أن وضعت قطعة ما في مكان لا يجاوره اي شئ، سيضع بنفسه القطعة التي توافي ذلك الشرط.
أن وضعت بجانبها قطعة أخرى، سيرجع ويحاول أيجاد القطعة التي توافي ذلك الشرط ويستخدمها، وطبعا يغير القطعة القديمة لتتناسب مع الحالة الجديدة، وكلما حددت حالات أكثر، كلما استطاع المحرك بناء “تضاريس” أفضل.
تجهيز تقنية Auto Tiling في غودو
تحدثت في تجهيز عقدة خريطة القطع – tilemap عن كيفية انشاء “التضاريس” terrain، ولكن أعيد هنا ثانية على كيفية تجهيزها، وبعدها أنتقل لطريقة تحديد الحالات المختلفة لكل القطع.
فاولا وفي لوحة الخصائص Inspector الخاصة بخريطة القطع TileMap، أضغط على TileSet، والذي منها تظهر عدة خيارات، ثم اضغط على (مجموعة تضاريس Terrain Sets)، لتحديد التضاريس وأنواعها المختلفة التي تود استخدامها.
ثم أضغط على إضافة عنصر Add Element، وستجد (تضاريس – Terrains)، ومجددا أضغط على إضافة عنصر Add Element، وسمه ما تشاء وحدد اللون الذي تريد.
هكذا تم تكوين مجموعة تضاريس قابلة للاستعمال، تستطيع الان استعمالها على الصورة التي تشاء وتحديد بها الحالات الخاصة بكل قطعة من تلك الصورة، لذا ما يتوجب فعله تاليا هو ربط تلك المجموعة بالصورة المطلوبة.
بعد التأكد من استخدام الصورة المناسبة في خريطة القطع TileMap، وفي أسفل المحرك، ستجد تبويب (TileSet) والذي منه تجد على اليسار كل الصور المضافة من قِبلك. لذا أولا أضغط على الصورة المطلوب التعامل معها.
ثم اضغط على اداة الرسم Paint، والتي من شأنها تطبيق عدة أمور مثل الفيزياء والتضاريس والملاحة وغيرها، وعندما تفتح لوحة الرسم، اضغط على select property editor، لتظهر قائمة بها جميع الخصائص التي يمكن تعديلها.
فاختر منها Terrains
بعد اختيارها، حدد مجموعة التضاريس المطلوبة، ثم اسم التضاريس الذي وضعته، في حالتي كان بأسم “Terrain 0″، وهكذا تبقى بدء تحديد القطع المطلوب التعامل معها، ثم رسم تحديد أسلوبها.
وكما ذكرت في “مبدأ البناء التلقائي” فالان لكل قطعة من القطع شبكة من 9 خانات، وعليك تحديد متى سيتم استعمال كل قطعة منهم. (في العنوان التالي اشرح اكثر هذه النقطة بالتفصيل).
بعدما تنتهي من تحديد كل الحالات، واختيار كل القطع المناسبة، يأتي وقت استخدام تلك التضاريس للبناء التلقائي، لذا في أسفل المحرك اضغط على تبويب TileMap، ومنه انتقل إلى تبويب التضاريس Terrains، واختر اسم التضاريس خاصتك، وابدء البناء.
ابني بأي أداة تريد، سواء بناء عن طريق المستطيل، أو الخط أو بالنقطة، وكما هو الحال العادي، تستطيع البناء بزر الفارة الايسر، والحذف بالزر الأيمن.
أنواع مُختلفة
أن لاحظت في لوحة الخصائص في خانة terrain set، ستجد ما يسمى بالوضع أو الـmode، والذي به مجموعة أوضاع مختلفة كالتالي :
- Match Corners & Sides : تناسق الزوايا والجوانب
- Match Corners : تناسق الزوايا
- Match Sides : تناسق الجوانب
وهذا الوضع هو أسلوب الشبكة، أي بدلا من شبكة 3*3 ستظهر نوع شبكة اخرى، فبتغير هذا الوضع يتغير هذا الأسلوب هكذا:
لكل منها استخدامه الخاص، وهي كالتالي:
Match Corners & Sides : تناسق الزوايا والجوانب
في هذا النوع يطلب منك المحرك تحديد 9 اماكن، وعلى أساسها يتعرف على القطع الموجودة على الجوانب (أعلى – أسفل- يمين – يسار)، ويتعرف على الزوايا الموجودة في كل طرف، وفي هذا النوع يوجد على الأقل 48 أحتمال.
وفي الاغلب هذا النوع يكون الألعاب المعقدة، لما تحتويه على من احتمالات البناء المختلفة
Match Sides : تناسق الجوانب
هذا النوع يطلب منك المحرك تحديد الجوانب الاساسية فقط (يمين – يسار – أعلى – أسفل)، وذلك مناسب جدا للطرقات الكبيرة، أو للاماكن التي ليس بها الكثير من التفاصيل
Match Corners : تناسق الزوايا
تناسق الزوايا يعني أن تحدد فقط الزوايا الاساسية التي ستستعملها، في العادة يمكن استعمال هذا النمط للطرقات الكبيرة أو في أي نوع من الصور التي لن تكون على مستوى واحد، بل 2*2 على الأقل.
استخدامات أكثر
تُعتبر تقنية البناء التلقائية في عقدة خريطة القطع – TileMap بمحرك غودو أداة قوية لإنشاء عوالم افتراضية غنية بالتفاصيل وبسرعة وكفاءة.
بدلاً من وضع كل قطعة يدويًا، تُتيح لك هذه التقنية إنشاء جدران وأرضيات متماسكة تلقائيًا، مما يوفر الوقت والجهد بشكل كبير، خاصةً للمشاريع الكبيرة.
وتوفر مرونة إبداعية كبيرة لتصميم المستويات، حيث يمكنك تجربة مجموعات مختلفة من القطع والأنماط لإنشاء مظهر فريد للعالم الخاص بك.
بالإضافة إلى ذلك، يمكن استخدام وظيفة AutoTiling لإنشاء مستويات ديناميكية تتغير بناءً على أفعال اللاعب أو أحداث اللعبة، وتُساعد أيضًا في تحسين أداء اللعبة من خلال تقليل عدد البلاطات الفردية التي يجب تقديمها.
ملاحظة: تقنية البناء التلقائي ليست مناسبة لجميع أنواع الخرائط. إذا كنت بحاجة إلى تحكم دقيق في كل قطعة، فقد يكون من الأفضل وضعها يدويًا.
بشكل عام، تُعد وظيفة AutoTiling أداة قيمة لأي مطور ألعاب يعمل مع محرك Godot ويرغب في إنشاء عوالم افتراضية جميلة وفعالة.