PlayPendium
Bulwark · विचार के लिए भोजन

सरदार कैसे सोचता है

अकेले खेलिए तो चार में से तीन किलों की रक्षा एक मशीन करती है। हर कंप्यूटर सरदार वही छोटा-सा चक्र चलाता है, यानी डरने लायक गेंद पहचानो, अंदाज़ा लगाओ कि वह तुम्हारी दीवार कहाँ पार करेगी, और उससे मिलने के लिए सरक जाओ, और एक लचर तथा एक ख़तरनाक बचाव के बीच का फ़र्क़ चार संख्याओं पर आकर टिकता है।

आसान · निशाने की डगमगाहट 0.18 त्रुटि, रेल-भिन्नों में
बनाम
कठिन · निशाने की डगमगाहट 0.015 लगभग सटीक निशाना

अंग्रेज़ी में लिखा और संपादित। यह हिन्दी संस्करण मशीनी अनुवाद से तैयार किया गया है; जहाँ सटीकता महत्वपूर्ण हो, वहाँ अंग्रेज़ी मूल ही प्रामाणिक है। मूल अंग्रेज़ी में पढ़ें →

01 · किससे डरना है, यह चुनना

हर गेंद ख़तरा नहीं होती

सरदार का पहला काम, सेकंड में एक सौ बीस बार, छँटाई करना है। अखाड़े में एक साथ दो गेंदें तक खुली हो सकती हैं, और AI को तय करना होता है कि उसकी ढाल किसकी हक़दार है। वह हर सक्रिय, बिना पकड़ी गेंद को अपने राजा से दूरी के हिसाब से अंक देता है, फिर हर उस गेंद के अंक में से 250 यूनिट की एक तय छूट घटा देता है जो सचमुच उस कोने की ओर बढ़ रही हो, यानी दूर जाती गेंद के साथ ऐसा बर्ताव होता है मानो वह असल से 250 यूनिट और दूर हो। 1 सबसे कम अंक वाली गेंद ढाल का ध्यान जीत लेती है।

इसका नतीजा ऐसा रक्षक है जो पास से हानिरहित गुज़रती गेंद पर घबराता नहीं, फिर भी उस गेंद पर झट से टिक जाता है जो नज़दीक भी है और भीतर की ओर आ भी रही है। यह उसी चीज़ का भोंडा नमूना है जो कोई इंसान बिना सोचे कर लेता है: जो आपकी ओर आ रहा है उसे देखो, जो जा रहा है उसे छोड़ो। पूरा फ़ैसला गेंद के वेग और राजा की दिशा के बीच का एक अकेला डॉट गुणनफल है, धनात्मक का मतलब “मेरी ओर तना हुआ”, और इतना ही काफ़ी है।

02 · अंदाज़ा कि वह कहाँ उतरेगी

गेंद से आगे बढ़कर रेल पर जगह लेना

ख़तरा चुन लेने के बाद सरदार को तय करना होता है कि उसे अपनी विकर्ण रेल पर कहाँ रहना है। वह उछाल का पूरा रास्ता हल नहीं करता, न परावर्तन का पीछा करता है, न दीवारों से होने वाली टक्करों का पूर्वानुमान लगाता है। वह गेंद की जगह लेता है, उसे उसके मौजूदा वेग की दिशा में एक छोटा-सा क़दम आगे खिसका देता है (0.12 सेकंड की अग्रिम छूट), और उस भावी बिंदु को सीधे रेल पर प्रक्षेपित करके 0 और 1 के बीच का एक लक्ष्य-भिन्न निकाल लेता है। 1

यह जान-बूझकर उथला पूर्वानुमान है, और इसी वजह से AI को हराया जा सकता है। चूँकि वह केवल सेकंड का आठवाँ हिस्सा भर आगे देखता है और किसी उछाल-टप्पे का अनुमान कभी नहीं लगाता, ऐसी गेंद जो दीवार से टकराकर पहुँचने वाली है उसे चकमा दे जाती है; वह वहीं टिक जाता है जिधर गेंद अभी तनी है। जो इंसान अखाड़े के किनारों से शॉट उछालकर खेलता है, वह ठीक इसी अंधे धब्बे का फ़ायदा उठा रहा होता है। मशीन एक ज़रा-सी दूरदर्शिता के साथ वर्तमान पर प्रतिक्रिया देती है; वह योजना नहीं बनाती।

कंप्यूटर गेंद के भविष्य की गणना नहीं करता। वह सेकंड के आठवें हिस्से भर आगे झुकता है, अपनी ढाल वहाँ ताकता है जहाँ गेंद तब होती अगर बीच में कुछ न आता, और बीच में आने वाली हर चीज़ को आपका मौक़ा बन जाने देता है।

03 · तीन श्रेणियाँ, चार घुंडियाँ

कठिनाई एक तालिका है, नया कोड नहीं

तीनों कठिनाइयाँ कोड का एक ही समान हिस्सा साझा करती हैं। आसान, मध्यम और कठिन के बीच जो बदलता है वह चार ट्यूनिंग संख्याओं की एक पंक्ति है। 1 डगमगाहट ढाल के लक्ष्य में यादृच्छिक त्रुटि जोड़ती है, इसलिए आसान सरदार का निशाना अपनी रेल के लगभग पाँचवें हिस्से जितना भटक जाता है, जबकि कठिन सरदार का निशाना लगभग सटीक रहता है। प्रतिक्रिया-दूरी तय करती है कि गेंद कितने पास आए तब सरदार उसका पीछा करने की ज़हमत उठाए, आसान सरदार अपने राजा से 420 यूनिट से ज़्यादा दूर की हर चीज़ अनदेखी कर देता है, जो बोर्ड की चौड़ाई के आधे से कुछ ही कम है; कठिन सरदार पूरे अखाड़े भर में पीछा करता है। पकड़ने की संभावना वह प्रायिकता है कि वह उस गेंद को लपक लेगा जो उसकी ढाल के इतने पास आ जाए कि पकड़ी जा सके। और प्रतिद्वंद्वियों पर निशाना एक अकेला स्विच है जो तय करता है कि सरदार आक्रमण करेगा भी या नहीं।

AI की ट्यूनिंग तालिका, श्रेणियों के बीच का पूरा फ़र्क़
घुंडीआसानमध्यमकठिन
निशाने की डगमगाहट (रेल-भिन्न)0.180.070.015
प्रतिक्रिया-दूरी (यूनिट)4207002,000
पकड़ने की संभावना0%25%55%
प्रतिद्वंद्वियों पर निशाना?नहींनहींहाँ

चारों मान Bulwark के गेम इंजन के भीतर की एक छोटी ट्यूनिंग तालिका से आते हैं, हर श्रेणी के लिए एक पंक्ति। कठिन पर प्रतिक्रिया-दूरी अखाड़े की चौड़ाई से दुगुनी लिखी गई है, और अखाड़ा 1,000 यूनिट का वर्ग है, इसलिए 2,000 यूनिट का मतलब है “हमेशा पीछा”। 1

04 · जब मशीन हमला करती है

वह एक स्विच जो कठिन सरदार को ख़तरनाक बना देता है

आसान या मध्यम सरदार कभी वार करने की नीयत से गेंद नहीं पकड़ता। आसान सरदार तो कभी गेंद पकड़ता ही नहीं, और मध्यम सरदार कभी-कभार ही पकड़ता है, बिना इस योजना के कि गेंद एक बार हाथ आ जाने पर उसका करना क्या है। प्रतिद्वंद्वियों-पर-निशाना वाला स्विच पलटिए, जो केवल कठिन श्रेणी करती है, और AI महज़ प्रतिक्रियात्मक नहीं रह जाता। जब वह गेंद थामे होता है, वह पूरे बोर्ड पर नज़र दौड़ाता है, सबसे घायल प्रतिद्वंद्वी को चुनता है (वह जिसकी सबसे कम ईंटें बची हैं), और उसी पर निशाना साधता है। 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