رفتن به محتوای اصلی
بررسی عمیق کوهستانتولید رویه‌ایمقایسه الگوریتم۱۱ شهریور ۱۴۰۵، ۱:۲۲· 5 دقیقه مطالعه

مکانیک تولید رویه‌ای: مقایسه نویز پرلین، اتوماتای سلولی و سیستم‌های ال برای خلق جهان‌های مجازی

پشت هر جهان مجازی بی‌نهایت، یک موتور ریاضیاتی پنهان شده است که تصمیم می‌گیرد کوه‌ها، غارها و جنگل‌ها کجا قرار گیرند. ما سه الگوریتم بنیادی تولید رویه‌ای را بررسی می‌کنیم و هزینه‌های محاسباتی، موارد استفاده ایده‌آل و بده‌بستان‌های ساختاری آن‌ها را مقایسه می‌کنیم.

به قلم نادر غفاری

معماران زمین 40%حکاکان سیاه‌چال 35%تولیدکنندگان پوشش گیاهی 25%
معماران زمین
تمرکز بر ساخت جهان در مقیاس کلان، اولویت دادن به تولید بی‌نهایت و یکپارچه نسبت به جزئیات محلی.
حکاکان سیاه‌چال
اولویت دادن به طراحی سطح محلی و بسته که برای گیم‌پلی ارگانیک و قابل پیمایش باشد.
تولیدکنندگان پوشش گیاهی
تمرکز بر پیچیدگی مقیاس خرد رشد بیولوژیکی و ساختارهای شاخه‌ای.

نکات کلیدی

  • نویز پرلین گرادیان‌های هموار و پیوسته‌ای تولید می‌کند که برای زمین‌های بی‌نهایت و نقشه‌های ارتفاعی ایده‌آل هستند.
  • اتوماتای سلولی از قوانین شبکه‌ای آگاه به همسایه برای حکاکی سیستم‌های غار ارگانیک و به هم پیوسته استفاده می‌کند.
  • سیستم‌های ال از بازنویسی رشته‌ای بازگشتی برای تولید ساختارهای شاخه‌ای پیچیده مانند درختان و رودخانه‌ها بهره می‌برند.
  • در حالی که نویز پرلین به طور قابل پیش‌بینی مقیاس می‌یابد، سیستم‌های ال در صورت نامحدود بودن عمق بازگشت، می‌توانند باعث گلوگاه‌های نمایی در CPU شوند.
  • موتورهای بازی مدرن به ندرت به یک الگوریتم واحد متکی هستند، بلکه آن‌ها را لایه‌بندی می‌کنند تا نیازهای مختلف زیست‌بوم‌ها را مدیریت کنند.

هر بار که وارد یک بذر (Seed) بقای تازه تولید شده می‌شوید یا به سیاره‌ای کشف نشده در یک حماسه اکتشاف فضایی سفر می‌کنید، در واقع به یک فرمول ریاضی اعتماد کرده‌اید تا جهانی منطقی بسازد. ریسک بسیار بالاست: اگر درست انجام شود، یک زمین بازی بی‌نهایت و شگفت‌انگیز به بازیکن می‌دهید که ارگانیک و زنده به نظر می‌رسد. اگر اشتباه کنید، درختان شناور، زمین‌های ناهموار غیرقابل عبور و یک موتور بازی تحویل می‌دهید که زیر بار محاسباتی خود از کار می‌افتد.[6]

راز این جهان‌های بی‌نهایت، تصادفی بودن واقعی نیست. تصادفی بودن واقعی آشفته، پر از نویز و اساساً غیرقابل بازی است—نتیجه آن یک صفحه تلویزیون پر از برفک است، نه یک رشته کوه مواج. تولید رویه‌ای هنر تصادفی بودن کنترل‌شده است که از الگوریتم‌های خاصی برای محدود کردن آشفتگی به ساختارهای قابل تشخیص و قابل پیمایش استفاده می‌کند.[2][6]

در بنیان توسعه بازی‌های مدرن، سه غول بزرگ قرار دارند: نویز پرلین (Perlin Noise)، اتوماتای سلولی (Cellular Automata) و سیستم‌های ال (L-Systems). هر کدام برای حل یک مسئله ریاضی کاملاً متفاوت طراحی شده‌اند و هر یک مجموعه‌ای متمایز از بده‌بستان‌ها را در مورد عملکرد، قابلیت پیش‌بینی و خروجی بصری به همراه دارند. درک نحوه مقایسه آن‌ها برای هر کسی که به دنبال ساخت یک جهان مجازی است، ضروری است.[2][3]

نویز پرلین پادشاه بلامنازع جهان‌های روی سطح است. این الگوریتم که در اصل توسط کن پرلین در اوایل دهه ۱۹۸۰ برای تولید بافت‌های واقع‌گرایانه برای فیلم «ترون» توسعه یافت، از آن زمان به سنگ بنای تولید زمین‌های سه‌بعدی تبدیل شده است. برخلاف نویز سفید خالص که به طور وحشیانه‌ای از یک مقدار به مقدار دیگر می‌پرد، نویز پرلین گرادیان‌های شبه‌تصادفی تولید می‌کند که به نرمی درون‌یابی می‌شوند.[1][5]

مکانیک‌های اصلی و پارامترهای بهینه برای سه الگوریتم اصلی تولید.

این درون‌یابی هموار همان چیزی است که تپه‌های مواج و دره‌های گسترده را ایجاد می‌کند. با لایه‌بندی فرکانس‌های متعدد نویز پرلین روی یکدیگر—تکنیکی که به عنوان حرکت براونی فراکتالی شناخته می‌شود—توسعه‌دهندگان می‌توانند قله‌های کوهستانی دندانه‌دار را به قاره‌های گسترده و فراگیر اضافه کنند. این روش از نظر محاسباتی ارزان و به طور نامحدود مقیاس‌پذیر است، و آن را به انتخاب پیش‌فرض برای تولید افق‌های بی‌پایان تبدیل می‌کند.[4][5]

با این حال، نویز پرلین با فضاهای بسته مشکل دارد. اگر بخواهید یک سیستم غار زیرزمینی گسترده و به هم پیوسته بسازید، گرادیان‌های هموار اغلب به جای تونل‌های قابل پیمایش، جیب‌های هوای جدا از هم برای شما باقی می‌گذارند. اینجاست که اتوماتای سلولی وارد میدان می‌شود.[2][6]

اتوماتای سلولی بر روی یک شبکه عمل می‌کند و هر سلول را بر اساس وضعیت همسایگان بلافصلش ارزیابی می‌کند. با الهام از بازی زندگی کانوی (Conway's Game of Life)، این الگوریتم با پر کردن شبکه با نویز تصادفی شروع می‌کند—مثلاً ۴۵٪ سنگ جامد و ۵۵٪ فضای خالی. سپس، یک قانون ساده اعمال می‌کند: اگر یک سلول سنگی توسط فضای خالی احاطه شده باشد، فرسایش یافته و به فضای خالی تبدیل می‌شود. اگر یک فضای خالی توسط سنگ احاطه شده باشد، پر می‌شود.[2]

اتوماتای سلولی بر روی یک شبکه عمل می‌کند و هر سلول را بر اساس وضعیت همسایگان بلافصلش ارزیابی می‌کند.

این شبیه‌سازی را در چهار یا پنج تکرار اجرا کنید، و آن برفک آشفته به غارهای زیبا و ارگانیک با ستون‌های متمایز و اتاق‌های باز تبدیل می‌شود. این ابزار فوق‌العاده‌ای برای تولید سیاه‌چال‌ها (Dungeons) است و تضمین می‌کند که فضاها به جای اینکه به صورت ریاضی ترسیم شده باشند، به طور طبیعی حکاکی شده به نظر برسند.[2][6]

اما اتوماتای سلولی با یک هزینه عملکردی سنگین همراه است. از آنجایی که نیاز به ارزیابی تک تک سلول‌ها در برابر همسایگانشان برای چندین بار دارد، هزینه محاسباتی آن به طور چشمگیری با اندازه شبکه افزایش می‌یابد. این الگوریتم نمی‌تواند بدون تقسیم‌بندی تهاجمی (Chunking) و مدیریت حافظه، زمین‌های بی‌نهایت را به صورت لحظه‌ای تولید کند، که آن را به انتخابی ضعیف برای جهان‌های روی سطح عظیم و یکپارچه تبدیل می‌کند.[2][6]

در نهایت، سیستم ال (L-System) یا سیستم لیندنمایر وجود دارد. این سیستم که در سال ۱۹۶۸ توسط یک گیاه‌شناس نظری توسعه یافت، از قوانین بازنویسی رشته‌ای بازگشتی برای مدل‌سازی فرآیندهای رشد گیاهان استفاده می‌کند. شما با یک اصل ساده (مانند حرف 'A') شروع می‌کنید و یک قانون اعمال می‌کنید (هر 'A' تبدیل به 'AB' می‌شود، هر 'B' تبدیل به 'A' می‌شود).[3]

مقیاس‌پذیری محاسباتی: چرا الگوریتم‌های بازگشتی برای جلوگیری از گلوگاه‌های CPU به محدودیت‌های عمق سخت‌گیرانه نیاز دارند.

هنگامی که این قوانین ساده به دستورالعمل‌های گرافیکی ترجمه می‌شوند—یک خط بکش، ۴۵ درجه بچرخ، یک خط دیگر بکش—به فراکتال‌های پیچیده و شاخه‌دار تبدیل می‌شوند. سیستم‌های ال استاندارد صنعتی برای تولید درختان، پوشش گیاهی بیگانه، و حتی طرح‌بندی شاخه‌ای خیابان‌های شهر و شبکه‌های رودخانه‌ای هستند.[3][6]

خطر سیستم‌های ال در رشد نمایی آن‌ها نهفته است. از آنجایی که رشته به صورت بازگشتی خود را بازنویسی می‌کند، افزایش عمق تکرار تنها با یک یا دو مرحله می‌تواند پیچیدگی هندسی را چندین مرتبه افزایش دهد. یک سیستم ال که به درستی بهینه‌سازی نشده باشد، می‌تواند فوراً باعث گلوگاه شدن CPU شود و میلیون‌ها چندضلعی (Polygon) را برای یک درخت بلوط واحد تولید کند.[3][6]

هنگامی که مقیاس‌بندی محاسباتی این سه الگوریتم را در یک شبکه استاندارد ۱۰۲۴x۱۰۲۴ نرمال‌سازی و مقایسه می‌کنیم، تفاوت‌ها آشکار می‌شوند. نویز پرلین به صورت خطی با تعداد پیکسل‌ها مقیاس می‌یابد و بودجه رندر قابل پیش‌بینی را حفظ می‌کند. اتوماتای سلولی آن هزینه را در تعداد تکرارهای خود ضرب می‌کند، در حالی که سیستم‌های ال بر اساس عمق بازگشت به صورت نمایی مقیاس می‌یابند.[6]

موتورهای مدرن چندین الگوریتم را روی هم قرار می‌دهند؛ از نویز برای زمین و از فراکتال‌ها برای پوشش گیاهی استفاده می‌کنند.

در نهایت، هیچ بازی AAA مدرنی تنها به یکی از این الگوریتم‌ها متکی نیست. راز یک جهان باورپذیر، دانستن نحوه لایه‌بندی آن‌هاست. یک کارشناس تولید رویه‌ای از نویز پرلین برای تعریف نقشه ارتفاع قاره‌ای، از اتوماتای سلولی برای حکاکی شبکه‌های غار زیرزمینی در زیر سطح، و از سیستم‌های ال برای پر کردن زیست‌بوم‌های حاصل با پوشش گیاهی متراکم و متنوع استفاده می‌کند.[2][6]

همانطور که صنعت به سمت محیط‌های مجازی بزرگ‌تر پیش می‌رود، مکانیک‌های تولید رویه‌ای حیاتی‌ترین ابزار در زرادخانه یک هنرمند فنی باقی می‌مانند. با ایجاد تعادل بین کارایی قابل پیش‌بینی توابع نویز و پیچیدگی ارگانیک اتوماتا و فراکتال‌ها، توسعه‌دهندگان می‌توانند به ساخت جهان‌های بی‌نهایتی ادامه دهند که احساس می‌شوند با دقت دست‌ساز ساخته شده‌اند.[6]

چرا مهم است

برای توسعه‌دهندگان، انتخاب الگوریتم تولید اشتباه، تفاوت بین یک جهان بی‌نهایت یکپارچه و یک آشفتگی پر از لگ و غیرقابل بازی است. برای بازیکنان، این انتخاب تعیین می‌کند که آیا دنیای بازی شبیه یک شاهکار دست‌ساز به نظر می‌رسد یا یک بیابان آشفته و تکراری.

O(N)
پیچیدگی زمانی نویز پرلین
4–5
تعداد بهینه تکرارهای هموارسازی اتوماتای سلولی
2^N
نرخ رشد رشته در سیستم‌های ال

بررسی عمیق دیدگاه‌ها

نویز پرلین

استاندارد صنعتی برای تولید زمین‌های پیوسته و بی‌نهایت.

مزایا: عملکرد بی‌نظیر در مقیاس. از آنجایی که الگوریتم مقادیر را بر اساس ورودی‌های مختصات و نه وضعیت همسایگان محاسبه می‌کند، می‌تواند زمین را به طور نامحدود در هر جهتی تولید کند بدون اینکه نیاز به ذخیره کل جهان در حافظه باشد. معایب: ذاتاً فاقد برآمدگی‌های ساختاری یا فضاهای بسته است. یک نقشه ارتفاعی پرلین ۲ بعدی خالص نمی‌تواند یک غار یا یک پل طبیعی ایجاد کند. شواهد: به عنوان لایه اصلی زمین در تقریباً تمام بازی‌های بزرگ وکسل و اکتشافی از اوایل دهه ۲۰۰۰ استفاده شده است. مناسب برای: تولید تپه‌های مواج، اقیانوس‌ها، ابرها و اشکال قاره‌ای در سطح کلان. نامناسب برای: طراحی چیدمان‌های سیاه‌چال تنگ و به هم پیوسته یا ساختارهای بیولوژیکی پیچیده.

اتوماتای سلولی

یک شبیه‌سازی مبتنی بر شبکه که برای حکاکی فضاهای بسته ارگانیک عالی است.

مزایا: فضاهای بسته بسیار باورپذیر و ارگانیک تولید می‌کند. با شبیه‌سازی فرسایش و رشد بر اساس سلول‌های همسایه، به طور طبیعی ستون‌ها، اتاق‌های وسیع و تونل‌های پرپیچ و خمی ایجاد می‌کند که احساس می‌شوند با دست حکاکی شده‌اند. معایب: از نظر محاسباتی سنگین و به شدت محدود است. نیاز به چندین بار تکرار بر روی مجموعه داده یکسان دارد، به این معنی که کل قطعه (Chunk) باید قبل از حل شدن شکل نهایی در حافظه بارگذاری شود. شواهد: الگوریتم اصلی مورد استفاده برای تولید زیست‌بوم‌های زیرزمینی و چیدمان سیاه‌چال‌های روگ‌لایک. مناسب برای: تولید غارها، خرابه‌ها و سطوح زیرزمینی محدود که قابلیت پیمایش در آن‌ها کلیدی است. نامناسب برای: تولید جهان‌های روی سطح بی‌نهایت و یکپارچه به صورت لحظه‌ای، به دلیل هزینه‌های بالای حافظه و تکرار.

سیستم‌های ال

بازنویسی رشته‌ای بازگشتی طراحی شده برای رشد بیولوژیکی شاخه‌ای.

مزایا: پیچیدگی بصری باورنکردنی از قوانین فوق‌العاده ساده. یک مجموعه دستورالعمل سه خطی می‌تواند یک درخت بلوط کاملاً واقعی و از نظر ریاضی دقیق یا یک دلتای رودخانه گسترده تولید کند. معایب: ریسک محاسباتی نمایی. افزایش عمق بازگشت تنها با چند مرحله می‌تواند تعداد چندضلعی‌ها را هزاران برابر کند و فوراً باعث گلوگاه شدن CPU شود. شواهد: در اصل برای گیاه‌شناسی نظری توسعه یافته، اکنون ستون فقرات میان‌افزارهای پوشش گیاهی رویه‌ای است. مناسب برای: تولید درختان، گیاهان، شاخه‌های صاعقه، شبکه‌های جاده‌ای و هر چیزی که نیاز به ساختار شاخه‌ای فراکتالی دارد. نامناسب برای: تولید زمین پایه یا محیط‌هایی که در آن‌ها محدودیت‌های هندسی سخت‌گیرانه لازم است.

منابع

پوشش منابع

6 منبع

3 دیدگاه شناسایی‌شده

معماران زمین 40%حکاکان سیاه‌چال 35%تولیدکنندگان پوشش گیاهی 25%
  1. [1]ACM Siggraphمعماران زمین

    An Image Synthesizer

    مطالعه در ACM Siggraph
  2. [2]Generalist Programmerحکاکان سیاه‌چال

    Procedural Generation in Games: Algorithms & Examples (2026)

    مطالعه در Generalist Programmer
  3. [3]Stewart L. McCreadyتولیدکنندگان پوشش گیاهی

    Procedural Generation

    مطالعه در Stewart L. McCready
  4. [4]IJIRTمعماران زمین

    Procedural Terrain Generation Using Perlin Noise

    مطالعه در IJIRT
  5. [5]Wikipediaمعماران زمین

    Perlin noise

    مطالعه در Wikipedia
  6. [6]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت بازی و ورزش‌های الکترونیک اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.