PlayPendium
Bulwark · خوراک اندیشه

یک جنگ‌سالار چگونه می‌اندیشد

تنها که بازی کنید، سه قلعه از چهار قلعه را ماشین دفاع می‌کند. هر جنگ‌سالارِ رایانه‌ای همان حلقهٔ کوتاه را اجرا می‌کند: توپی را که ارزش ترسیدن دارد بیاب، حدس بزن از کجا از دیوارت خواهد گذشت، بلغز تا به آن برسی؛ و فاصلهٔ میان یک حریفِ دست‌آموز و یک بلای جان، به چهار عدد ختم می‌شود.

آسان · لرزش نشانه‌گیری 0.18 خطا بر حسب کسری از ریل
در برابر
سخت · لرزش نشانه‌گیری 0.015 جای‌گذاری نزدیک به بی‌نقص

به انگلیسی نوشته و ویرایش شده است. این نسخهٔ فارسی با ترجمهٔ ماشینی تهیه شده است؛ هر جا دقت اهمیت دارد، متن اصلی انگلیسی معتبر است. خواندن متن اصلی به انگلیسی ←

01 · انتخابِ آنچه باید از آن ترسید

هر توپی تهدید نیست

نخستین کار یک جنگ‌سالار، صد و بیست بار در ثانیه، غربالگری است. با وجود حداکثر دو توپِ رها در آوردگاه، هوش مصنوعی باید تصمیم بگیرد کدام‌یک سزاوار سپرش است. به هر توپِ فعال و در دستْ‌نگرفته بر پایهٔ فاصله تا شاه خودش امتیاز می‌دهد، سپس از امتیاز هر توپی که واقعاً به سوی آن گوشه در حرکت است پاداشی ثابت به اندازهٔ 250 واحد کم می‌کند؛ با توپی که دور می‌شود چنان رفتار می‌شود که انگار 250 واحد دورتر از آن است که واقعاً هست. 1 کمترین امتیاز، توجه سپر را از آنِ خود می‌کند.

نتیجه مدافعی است که بابت توپی که بی‌آزار از کنارش می‌گذرد هراسان نمی‌شود، اما به توپی که هم نزدیک‌تر است و هم رو به داخل می‌آید بی‌درنگ می‌چسبد. این مدلی خام است از کاری که یک انسان بی‌آنکه بیندیشد انجام می‌دهد: چیزی را که به سویت می‌آید بپا، و چیزی را که دور می‌شود نادیده بگیر. تمام این داوری یک ضرب داخلیِ ساده میان سرعت توپ و راستای رسیدن به شاه است؛ مثبت یعنی «به من نشانه رفته»، و همین کافی است.

02 · حدس زدنِ محل فرود

هدایت توپ بر روی ریل

جنگ‌سالار پس از برگزیدن تهدید باید تصمیم بگیرد کجای ریل مورّبش بایستد. او مسیر کامل کمانه را حل نمی‌کند: نه ردیابی بازتاب، نه پیش‌بینی برخورد با دیوارها. موقعیت توپ را می‌گیرد، آن را گامی کوتاه در امتداد سرعت کنونی‌اش به جلو هُل می‌دهد (پیش‌بینی 0.12 ثانیه‌ای) و آن نقطهٔ آینده را مستقیماً بر ریل تصویر می‌کند تا کسری هدف میان 0 و 1 به دست آید. 1

این پیش‌بینی عامدانه کم‌عمق است، و به همین دلیل است که می‌توان هوش مصنوعی را شکست داد. چون تنها یک‌هشتم ثانیه جلو را می‌بیند و هرگز کمانه را پیش‌بینی نمی‌کند، توپی که قرار است از راه برخورد به دیوار برسد فریبش می‌دهد؛ او به همان جایی متعهد می‌شود که توپ اکنون به سویش نشانه رفته است. انسانی که شوت‌هایش را از لبه‌های آوردگاه کمانه می‌دهد دقیقاً همین نقطهٔ کور را به کار می‌گیرد. ماشین با یک سرِ سوزن آینده‌نگری به اکنون واکنش نشان می‌دهد؛ او نقشه نمی‌کشد.

رایانه آیندهٔ توپ را محاسبه نمی‌کند. یک‌هشتم ثانیه به جلو خم می‌شود، سپرش را به جایی نشانه می‌رود که توپ در نبودِ هر مداخله‌ای آنجا می‌بود، و می‌گذارد هر چه مداخله می‌کند فرصت شما باشد.

03 · سه رده، چهار پیچ

دشواری یک جدول است، نه یک بازنویسی

هر سه درجهٔ دشواری یک بدنهٔ کد کاملاً یکسان دارند. آنچه میان آسان، متوسط و سخت تغییر می‌کند، سطری از چهار عدد تنظیمی است. 1 لرزش، خطایی تصادفی به هدف سپر می‌افزاید، چنان‌که نشانه‌گیری یک جنگ‌سالار آسان نزدیک به یک‌پنجم ریلش پرسه می‌زند حال آنکه جنگ‌سالار سخت تقریباً دقیق است. فاصلهٔ واکنش تعیین می‌کند توپ باید چقدر نزدیک شود تا جنگ‌سالار به خود زحمت ردیابی‌اش را بدهد؛ جنگ‌سالار آسان هر چیزی را که بیش از 420 واحد از شاهش دور باشد نادیده می‌گیرد، که اندکی کمتر از نصف پهنای تخته است؛ جنگ‌سالار سخت در سراسر آوردگاه ردیابی می‌کند. شانس گرفتن، احتمال آن است که توپی را که به اندازهٔ کافی به سپرش نزدیک شود بقاپد. و نشانه‌گیری به رقیبان یک کلید واحد است که تعیین می‌کند آیا جنگ‌سالار اصلاً حمله می‌کند یا نه.

جدول تنظیم هوش مصنوعی؛ تمام تفاوت میان رده‌ها
پیچ تنظیمآسانمتوسطسخت
لرزش نشانه‌گیری (کسری از ریل)0.180.070.015
فاصلهٔ واکنش (واحد)4207002,000
شانس گرفتن0%25%55%
رقیبان را نشانه می‌گیرد؟خیرخیربله

هر چهار مقدار از یک جدول تنظیم کوچک در دل موتور بازی Bulwark می‌آیند، یک سطر برای هر رده. فاصلهٔ واکنش در ردهٔ سخت برابر دو برابر پهنای آوردگاه نوشته شده است، و آوردگاه مربعی 1,000 واحدی است، پس 2,000 واحد یعنی «همیشه در حال ردیابی». 1

04 · وقتی ماشین حمله می‌کند

همان یک کلید که جنگ‌سالار سخت را خطرناک می‌کند

جنگ‌سالار آسان یا متوسط هرگز به قصد ضربه زدن توپ را نمی‌گیرد. جنگ‌سالار آسان اصلاً توپی نمی‌گیرد و جنگ‌سالار متوسط تنها گاه‌به‌گاه، آن هم بی‌آنکه نقشه‌ای داشته باشد که پس از به‌دست آوردن توپ با آن چه کند. کلید نشانه‌گیری به رقیبان را بزنید، همان چیزی که تنها ردهٔ سخت انجامش می‌دهد، و هوش مصنوعی دیگر صرفاً واکنشی نیست. وقتی توپ را در دست دارد، به آن‌سوی تخته نگاه می‌کند، زخمی‌ترین رقیب را برمی‌گزیند (آنکه کمترین آجر برایش مانده) و همان‌جا را نشانه می‌رود. 1

این کار را بدون هیچ مسیریابی انجام می‌دهد. یازده موقعیت نامزد را در امتداد ریل خودش نمونه‌برداری می‌کند و برای هر کدام ریاضیاتِ رهاسازیِ موتور بازی را بازتولید می‌کند تا ببیند آن شوت در چه راستایی پرواز می‌کرد، سپس موقعیتی را نگه می‌دارد که بردار خروجی‌اش مستقیم‌تر از همه به سوی قربانی برگزیده نشانه رفته باشد. 1 این زورِ خام بر روی مشتی گزینه است و نه زیرکی، اما در آن شکیباست: جنگ‌سالار پس از برگزیدن جا، توپ را نگه می‌دارد تا سپر واقعاً به آنجا بلغزد، و تنها وقتی رهایش می‌کند که رسیده باشد یا آن‌قدر نگهش داشته باشد که انتظار بیشتر از ارزش خودِ شوت گران‌تر تمام شود. این نیت به‌روشنی راهبردی است؛ درست همان کاری که انسانی در پی شکاری آسان می‌کرد. برگزیدن هدف بر پایهٔ «کمترین آجر»، سه مدافع مستقل را به سوی کسی نشانه می‌رود که پیشاپیش در حال باختن است.

05 · همان جنگ‌سالار، هر بار

تصادفی‌ای که می‌توان بازپخشش کرد

هر چیز «تصادفی»‌ای که یک جنگ‌سالار انجام می‌دهد، لرزش نشانه‌گیری‌اش، شیر یا خطِ گرفتن یا نگرفتن، از مولدی بذردار بیرون کشیده می‌شود؛ روالی فشرده به نام mulberry32 که یک عدد آغازین را به جریانی بلند و تکرارپذیر از مقادیر شبه‌تصادفی بدل می‌کند. 2 همان بذر را به آن بدهید و تا ابد همان دنباله را تولید می‌کند. یک مسابقهٔ زنده بذرش را از ساعت می‌گیرد، پس هیچ دو بازی‌ای یکسان آغاز نمی‌شوند؛ اما همان بذر را که بازگردانید، مسابقه دقیقاً دوباره اجرا می‌شود: همان زاویه‌های پرتاب، همان لرزش‌ها، همان گرفتن‌ها.

آن قطعیت جزئیاتی تزئینی نیست. همان است که بازی را آزمون‌پذیر می‌کند، مجموعهٔ آزمون‌های بازی مسابقه‌های کاملِ رایانه در برابر رایانه را از بذری ثابت اجرا می‌کند و هر بار همان نتیجه را انتظار دارد، و همان است که اجازه می‌دهد تمام شبیه‌سازی، از جمله مکان‌نمای مولد، در JSON بسته‌بندی و بازسازی شود، چنان‌که در بازی آنلاین میزبان می‌تواند وضعیتش را جاری کند و هر یک از بازیکنان دیگر تخته‌ای یکسان بازبسازد. جنگ‌سالارها زنده به نظر می‌رسند چون خطاهایشان انسانی می‌نماید؛ اما در زیرِ پوست، «غریزه»‌هایشان بازگشتی حسابی و کوتاه است که هر کسی می‌تواند تا آغازش به عقب بپیچد. معلوم می‌شود ماشینی که از یک قلعه نگهبانی می‌کند، تنها به چند عدد و جریانی از بختِ بازتولیدپذیر نیاز دارد. 2

Sources & notes
  1. Bulwark game engine: the warlord AI. Threat scoring (distance from a ball to the king, minus a 250-unit bonus for inbound balls), the 0.12-second lead used to project the intercept point, the tuning table that holds jitter, react distance, catch chance and the aim-at-rivals switch for each tier, the “most wounded rival” target selection, and the eleven-sample search over release positions. Read from the game's own source.
  2. Bulwark game engine: the deterministic random generator, an implementation of mulberry32, the compact public-domain algorithm by Tommy Ettinger that maps a 32-bit seed to a repeatable stream. Its own comment notes that it seeds ball launches and AI jitter so that games are reproducible and testable, and it can save and restore its cursor so the state round-trips through JSON. Read from the game's own source.
    Algorithm origin: Tommy Ettinger, “Mulberry32 PRNG” (public domain).
Was this worth reading?
Play Bulwark
PlayPendium · About · Contact · Privacy · Terms · Cookies · Accessibility · Copyright · Browse all games · Classic arcade games · © 2026