Hacker News

Age of Empires: 25 سال مشکلات مسیریابی با C++ [ویدئو]

\u003ch2\u003eAge of Empires: 25 سال مشکلات مسیریابی با C++ [ویدئو]\u003c/h2\u003e \u003cp\u003eاین محتوای ویدیویی ارائه اطلاعات دیداری و شنیداری را ارائه می‌کند و راهی جذاب برای کشف موضوعات و مفاهیم پیچیده ارائه می‌کند.\u003c/p\u003e \u003ch3\u003e محتوای محتوا...

1 min read Via www.youtube.com

Mewayz Team

Editorial Team

Hacker News

عصر امپراتوری: 25 سال مشکلات مسیریابی با C++ [ویدئو]

Age of Empires بیش از دو دهه است که با یکی از سخت‌ترین چالش‌های محاسباتی بلادرنگ مبارزه کرده است: انتقال واحدها از نقطه A به نقطه B بدون اینکه کاملاً احمقانه به نظر برسند. مبارزه مداوم فرنچایز افسانه‌ای RTS با الگوریتم‌های مسیریابی C++ درس‌های عمیقی را در مورد مقیاس‌پذیری، بدهی‌های فنی و طراحی سیستم نشان می‌دهد که هر سازنده نرم‌افزار مدرن باید آن‌ها را درونی کند.

یک ویدیوی غواصی عمیق که اخیراً منتشر شده است، سیر تکامل مسیریابی در Age of Empires را طی می‌کند، از نسخه اولیه 1997 تا Age of Empires IV، و نشان می‌دهد که چگونه حتی تیم‌های مهندسی در کلاس جهانی در زمانی که سیستم‌ها باید مقیاس شوند، با پیچیدگی دست و پنجه نرم می‌کنند. برای هر کسی که نرم‌افزار تجاری می‌سازد، عملیات‌ها را مدیریت می‌کند یا جریان‌های کاری را معماری می‌کند، شباهت‌ها قابل توجه است.

چرا حل Pathfinding در Age of Empires بسیار سخت بوده است؟

مسیریابی در یک بازی استراتژیک بلادرنگ با مسیریابی یک جهت GPS یکسان نیست. Age of Empires باید مسیرهای حرکتی را برای صدها - گاهی هزاران - واحد به طور همزمان در سراسر زمین در حال تغییر محاسبه کند، در حالی که از برخورد با ساختمان ها، درختان، واحدهای دیگر و یکدیگر جلوگیری می کند. همه اینها باید در چند میلی ثانیه اتفاق بیفتد تا یک تجربه بازی روان حفظ شود.

عصر امپراتوری های اولیه از الگوریتم A* (ستاره A) اصلاح شده استفاده می کرد، استاندارد طلایی برای مسیریابی مبتنی بر شبکه. اما وقتی از تعداد انگشت شماری واحد به ارتش های بزرگی که نقشه های پیچیده را پیمایش می کنند، A* به تنهایی تحت فشار قرار می گیرد. Ensemble Studios، توسعه‌دهنده اصلی، سال‌ها را صرف وصله‌های لبه‌ها کرد: واحدهایی که به صورت دایره‌ای راه می‌رفتند، روی دیوارها گیر می‌کردند، خطوط کانگای عجیبی را در گذرگاه‌های باریک ایجاد می‌کردند، یا به سادگی از حرکت خودداری می‌کردند.

مشکل اصلی انفجار ترکیبی است. هر واحد اضافی روی نقشه هزینه محاسباتی را چند برابر می کند. هر ساختمانی که قرار می گیرد نمودار ناوبری را تغییر می دهد. هر فریم نیاز به محاسبه مجدد دارد. C++ به توسعه دهندگان کنترل سطح پایینی بر حافظه و عملکرد می دهد، اما حتی این مزیت زمانی که رویکرد الگوریتمی اساسی نتواند با مقیاس همگام شود، محدودیت هایی دارد.

توسعه دهندگان چه رویکردهای الگوریتمی را بیش از 25 سال امتحان کرده اند؟

این ویدئو سیر تکاملی شگفت انگیز استراتژی های مسیریابی را در سراسر فرنچایز شرح می دهد:

  • Basic A* Search (1997): اجرای اصلی گروه‌های کوچک را به خوبی مدیریت می‌کرد، اما با انتخاب‌هایی در اندازه ارتش به سرعت تنزل پیدا کرد و اشکال بدنام "روستای گیر" را که بازیکنان تا به امروز به یاد دارند، ایجاد کرد.
  • مسیریابی سلسله مراتبی: تکرارهای بعدی مش های ناوبری چند سطحی را معرفی کردند، نقشه ها را به بخش هایی تقسیم کردند تا واحدها بتوانند قبل از اصلاح حرکت به صورت محلی، مسیرها را در سطح بالایی برنامه ریزی کنند - محاسبات در هر فریم را به طور چشمگیری کاهش می دهد.
  • فیلدهای جریان: به جای محاسبه مسیرهای جداگانه برای هر واحد، الگوریتم‌های میدان جریان یک نقشه جهتی واحد را محاسبه می‌کنند که همه واحدهای یک گروه می‌توانند از آن پیروی کنند و یک مسئله O(n) را به چیزی نزدیک‌تر به O(1) در واحد تبدیل می‌کند.
  • رفتارهای فرمان و اجتناب محلی: این سیستم‌ها که در بالای مسیریابی جهانی لایه‌بندی شده‌اند، اجتناب از برخورد لحظه به لحظه را مدیریت می‌کنند تا واحدها از یکدیگر جدا نشوند یا روی کاشی‌های منفرد انباشته نشوند.
  • سیستم‌های ترکیبی در AoE IV: آخرین نسخه، تکنیک‌های متعدد - مش‌های ناوبری، میدان‌های جریان، و فرمان محلی - را در یک معماری لایه‌ای ترکیب می‌کند که مقیاس‌های مختلف حرکت را به زیرسیستم‌های مختلف واگذار می‌کند.

هر نسل از بازی اساساً سیستم حرکتی خود را از ابتدا بازسازی می‌کند و درس‌هایی را که به سختی به دست آمده در مورد آنچه در مقیاس بزرگ به دست می‌آید به پیش می‌برد.

تیم‌های نرم‌افزار کسب‌وکار چه چیزی می‌توانند از مسیریابی موتور بازی بیاموزند؟

حماسه مسیریابی عصر امپراتوری ها یک کلاس اصلی در مشکلی است که هر کسب و کار در حال رشدی با آن مواجه است: آنچه در مقیاس کوچک کار می کند در مقیاس بزرگ متلاشی می شود. یک فرآیند دستی که 10 مشتری را در هفته مدیریت می‌کند، در 500 نفر از بین می‌رود. صفحه‌گسترده‌ای که یک پروژه را ردیابی می‌کند، در 50 پروژه غیرقابل مدیریت می‌شود. یک گردش کار تأیید که برای یک تیم 5 نفره طراحی شده است، برای 50 نفر گلوگاه ایجاد می‌کند.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

"خطرناک ترین بدهی فنی سیستمی است که به خوبی کار می کند - تا زمانی که ناگهان کار نمی کند. مسیریابی Age of Empires برای 8 واحد بی عیب و نقص کار کرد. برای 80 واحد از هم پاشید. کسب و کارها هر بار که از آستانه فرآیند دستی عبور می کنند دقیقاً با همان صخره روبرو می شوند."

راه‌حلی که توسعه‌دهندگان AoE روی آن همگرا شده‌اند - سیستم‌های لایه‌ای و مدولار که در آن اجزای مختلف مقیاس‌های متفاوتی از مشکل را مدیریت می‌کنند - مستقیماً به نحوه طراحی سیستم‌های عامل تجاری مدرن نقشه می‌دهد. شما به مسیریابی استراتژیک سطح بالا (مدیریت پروژه، تخصیص منابع) همراه با اجرای سطح محلی (تکالیف وظایف، گردش کار روزانه، تأییدیه های خودکار) نیاز دارید.

چگونه طراحی سیستم مدولار از خرابی های مقیاس بندی جلوگیری می کند؟

پیشرفت در مسیریابی AoE IV یک الگوریتم بهتر نبود. معماری بود. با جدا کردن نگرانی‌ها - ناوبری جهانی، حرکت گروهی، فرمان فردی، وضوح برخورد - هر لایه می‌تواند به طور مستقل و بدون بی‌ثبات کردن لایه‌های دیگر بهینه شود.

دقیقاً به همین دلیل است که کسب‌وکارهایی که با ابزارهای قطع‌شده در حال اجرا هستند (یک CRM در اینجا، صفحه‌گسترده در آنجا، موضوعات ایمیل در همه جا) به همان دیوارهایی برخورد کردند که Age of Empires در سال 1997 وارد شد. وقتی خط لوله فروش، مدیریت پروژه، گردش‌های کار منابع انسانی، صورت‌حساب، و ارتباطات مشتری شما همگی در سیستم‌های ایزوله زندگی می‌کنند، هر کسب‌وکار دیگری در حال اجرا نیست. نتیجه معادل کسب و کار روستائیان است که در دایره راه می روند: تلاش مضاعف، تحویل از دست رفته، و هرج و مرج عملیاتی.

یک سیستم عامل کسب و کار یکپارچه - سیستمی که در آن ماژول ها یک لایه ناوبری مشترک دارند - این برخوردها را به همان روشی که یک فیلد جریان محاسبات اضافی در هر واحد را حذف می کند، حذف می کند.

سوالات متداول

Age of Empires به چه زبان برنامه نویسی نوشته شده است؟

فرنچایز Age of Empires اساساً در C++ ساخته شده است که مدیریت حافظه سطح پایین و عملکرد محاسباتی مورد نیاز برای محاسبات مسیریابی بلادرنگ در هزاران واحد همزمان را فراهم می‌کند. C++ همچنان زبان غالب برای سیستم‌های موتور بازی‌های حیاتی است.

چرا واحدهای بازی RTS هنوز در سال 2026 مشکلات مسیریابی دارند؟

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

چگونه مسیریابی با بهینه سازی فرآیند کسب و کار ارتباط دارد؟

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

کسب و کار شما سزاوار همان تکامل معماری است که Age of Empires 25 سال را به کمال رساند. Mewayz 207 ماژول یکپارچه - از مدیریت پروژه و CRM گرفته تا HR و صورتحساب - را در یک سیستم عامل واحد طراحی کرده است تا با شما مقیاس شود، نه علیه شما. مسیریابی عملیات خود را از طریق ابزارهای قطع شده متوقف کنید. دوره آزمایشی رایگان خود را در app.mewayz.com شروع کنید و به کسب و کار خود ارتقاء مسیریابی مورد نیاز خود را بدهید.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime