Skip to content
devlog

كيف يتولّد عالم Atherion

نظرة على خط أنابيب توليد العالم الإجرائي في Atherion باستخدام WorldGenPro

فريق أثيريون
خريطة بيئات حيوية مولّدة إجرائيًا في عالم أثيريون

كيف يتولّد عالم Atherion

رقم seed واحد هو كل ما نحتاجه لتوليد عالم كامل. يمر هذا الرقم عبر خمس مراحل متتابعة داخل محرك WorldGenPro الذي بنيناه خصيصًا لهذا المشروع، وفي نهاية السلسلة يخرج عالم جاهز بتضاريسه وأنهاره وبيئاته الحيوية.


المرحلة الأولى: الصفائح التكتونية

نبدأ بتوزيع مراكز الصفائح عشوائيًا على الخريطة باستخدام خوارزمية Blue Noise، وهي طريقة تضمن أن النقاط متباعدة بانتظام دون أن تكون منتظمة بشكل ميكانيكي. بعد ذلك نقسّم الخريطة بتقنية Voronoi: كل خلية تنتمي لأقرب مركز صفيحة، فتتشكّل مناطق تشبه الفسيفساء.

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

أخيرًا، نطبّق Radial Clamp يدفع حواف الخريطة للأسفل، مما يضمن أن العالم يأخذ شكل جزيرة محاطة بالمحيط.

خريطة حدود الصفائح التكتونية

خريطة الارتفاع الناتجة من حدود الصفائح


المرحلة الثانية: تفاصيل خريطة الارتفاع

الخريطة التكتونية تعطينا الأشكال الكبرى — قارات ومحيطات وسلاسل جبلية — لكنها تفتقر للتفاصيل الدقيقة. هنا نضيف طبقات من FBM Noise (Fractal Brownian Motion)، وهو تضخيم لعدة طبقات من Perlin Noise بترددات مختلفة.

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

خريطة الارتفاع التفصيلية النهائية


المرحلة الثالثة: التعرية

التضاريس الخارجة من المرحلة السابقة تبدو “رقمية” أكثر من اللازم. محاكاة التعرية هي ما يمنحها مظهرًا طبيعيًا.

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

التعرية الحرارية تتعامل مع المنحدرات الحادة: إذا كان الانحدار أعلى من حد معين، تنزلق المواد للأسفل، مما يُنعّم المنحدرات الصخرية ويُشكّل تراكمات حصوية عند قاعدتها.

النتيجة المشتركة: تضاريس تبدو وكأنها تشكّلت عبر ملايين السنين بدلاً من كونها مجرد ضوضاء رياضية.

أنماط تصريف المياه بعد التعرية


المرحلة الرابعة: المناخ والهيدرولوجيا

هذه المرحلة مقسّمة إلى جزأين مترابطين.

المناخ الأوّلي

قبل الأنهار والبحيرات، نحتاج تصنيفًا مناخيًا أوّليًا. نحسب درجة الحرارة لكل خلية بناءً على موقعها (خط العرض) وارتفاعها — المناطق المرتفعة أبرد، والقريبة من الساحل أكثر اعتدالًا. ثم نحسب الرطوبة الأولية من المسافة عن الساحل والارتفاع.

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

خريطة التصنيف المناخي الأوّلي

الأنهار والبحيرات

الآن نحاكي تدفق المياه بشكل تفصيلي. كل خلية في الخريطة تشير إلى جارتها الأكثر انخفاضًا (D8 Flow Direction)، فنحصل على شبكة تصريف كاملة. من خلال تجميع التدفق (Flow Accumulation) نعرف كمية المياه المارّة بكل نقطة.

لتصنيف الأنهار نستخدم ترتيب Strahler: الجدول الصغير يحمل رتبة 1، وحين يلتقي جدولان من نفس الرتبة تزداد الرتبة. هكذا نحصل على تسلسل هرمي طبيعي من الجداول الصغيرة إلى الأنهار العريضة. مسارات الأنهار تُنعَّم وتُمنح تعرّجات طبيعية، وعرض كل نهر يُحسب من حجم حوض تصريفه.

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

أخيرًا، الأنهار والبحيرات تنشر الرطوبة حولها، مما يُغني خريطة الرطوبة النهائية التي ستُستخدم في المرحلة التالية.


المرحلة الخامسة: تصنيف البيئات الحيوية

الآن نملك كل المعطيات: درجة الحرارة، والرطوبة (بما فيها تأثير الأنهار والبحيرات)، والارتفاع. نجمعها معًا لتصنيف كل خلية إلى بيئة حيوية.

قبل التصنيف النهائي، نحسب تأثير ظل المطر (Rain Shadow): الجبال تحجب الرطوبة عن الجانب المقابل، فتتشكل مناطق جافة خلف السلاسل الجبلية.

البيئات الحيوية في Atherion ثلاث رئيسية: غابات، صحراء، وثلوج. كل بيئة تنقسم إلى ثلاث بيئات فرعية باستخدام طبقة ضوضاء إضافية — الغابات تتدرّج بين Woodland وDense Forest وJungle، والصحراء بين Scrubland وDunes وBadlands، والثلوج بين Tundra وTaiga وFrozen Waste. الانتقال بين البيئات الرئيسية ليس حادًا — نستخدم أوزان مزج ناعمة (Smooth Blending Weights) تعتمد على المسافة من عتبات الحرارة والرطوبة، فتتدرج البيئات بشكل طبيعي دون حدود مصطنعة.

خريطة العالم النهائية


الخطوات القادمة

خط الأنابيب الحالي يُنتج عالمًا جغرافيًا متكاملاً، لكن هناك مراحل إضافية مخططة:

  • تصنيف المناطق (Zone Classification): كل قارّة في العالم تحمل مستوى صعوبة (Tier). قارّات T1 تحتوي فقط على مناطق آمنة، قارّات T2 تمزج بين مناطق T1 وT2، أما قارّات T3 فتحتوي على خليط من المستويات الثلاثة مع غلبة واضحة لـ T3 ونسبة أقل من T2 وأقل بكثير من T1 — والتضاريس الطبيعية كالجبال والأنهار تعمل كحدود فاصلة بين المناطق.
  • تقطيع وتجهيز القطع (Chunk Slicing & Blob Baking): تحويل الخريطة الكبيرة إلى قطع صغيرة للتحميل التدريجي أثناء اللعب.
  • تحليل وتحقق (Analysis & Validation): فحوصات آلية لضمان جودة العالم المولّد — توزيع البيئات، اتصال الأنهار، ومعقولية التضاريس.