একা খেললে চারটি দুর্গের তিনটিই রক্ষা করে যন্ত্র। প্রতিটি কম্পিউটার-যুদ্ধবাজ একই ছোট চক্র চালায়—ভয় পাওয়ার মতো বলটি খুঁজে বের করো, আন্দাজ করো সেটি তোমার দেয়াল কোথায় পেরোবে, তাকে ধরতে সরে যাও—আর একজন অপদার্থ আর একজন বিভীষিকার মধ্যে ফারাকটা দাঁড়ায় চারটি সংখ্যায়।
ইংরেজিতে লেখা ও সম্পাদিত। এই বাংলা সংস্করণটি যন্ত্রানুবাদের মাধ্যমে তৈরি; যেখানে নির্ভুলতা গুরুত্বপূর্ণ, সেখানে ইংরেজি মূলটিই প্রামাণ্য। ইংরেজিতে মূল লেখাটি পড়ুন →
একজন যুদ্ধবাজের প্রথম কাজ, সেকেন্ডে একশো কুড়ি বার, হলো বাছাই। আখড়ায় সর্বোচ্চ দুটি বল ছাড়া থাকতে পারে, আর AI-কে ঠিক করতে হয় কোনটি তার ঢাল পাওয়ার যোগ্য। সে প্রতিটি সক্রিয়, না-ধরা বলকে নিজের রাজা থেকে দূরত্ব অনুযায়ী নম্বর দেয়, তারপর যে বল সত্যিই কোণের দিকে আসছে তার নম্বর থেকে 250 এককের একটি নির্দিষ্ট ছাড় বাদ দেয়—অর্থাৎ দূরে সরে যাওয়া একটি বলকে এমনভাবে দেখা হয় যেন সে আসলে যতটা দূরে, তার চেয়ে 250 একক বেশি দূরে। 1 সবচেয়ে কম নম্বর যার, ঢালের মনোযোগ তারই।
ফল দাঁড়ায় এমন এক রক্ষক, যে নিরীহভাবে পাশ কাটিয়ে যাওয়া বল নিয়ে আতঙ্কিত হয় না, অথচ যে বল কাছে এবং ভেতরমুখী, তার উপর ঝাঁপিয়ে পড়ে। মানুষ না ভেবেই যা করে, এটি তারই একটি কাঁচা মডেল: যা তোমার দিকে আসছে তার দিকে তাকাও, যা চলে যাচ্ছে তাকে অগ্রাহ্য করো। গোটা বিচারটাই বলের বেগ আর রাজার দিকের মধ্যে একটিমাত্র ডট গুণফল—ধনাত্মক মানে “আমার দিকেই তাক করা”, আর ততটুকুই যথেষ্ট।
বিপদটি বেছে নেওয়ার পর যুদ্ধবাজকে ঠিক করতে হয় নিজের কোনাকুনি রেলের কোথায় থাকবে। সে পুরো বাউন্স-পথের হিসাব কষে না—কোনো প্রতিফলন-অনুসরণ নেই, দেয়ালে লেগে ফেরার কোনো পূর্বাভাস নেই। সে বলের অবস্থান নেয়, তাকে তার বর্তমান বেগ বরাবর একটুখানি সামনে ঠেলে দেয় (0.12 সেকেন্ডের আগাম), আর সেই ভবিষ্যৎ বিন্দুটিকে সোজা রেলের উপর প্রক্ষেপ করে 0 আর 1-এর মধ্যে একটি লক্ষ্য-ভগ্নাংশ পায়। 1
এই পূর্বাভাস ইচ্ছে করেই অগভীর, আর এই কারণেই AI-কে হারানো যায়। যেহেতু সে মোটে এক-অষ্টমাংশ সেকেন্ড আগে তাকায় আর দেয়ালে লেগে ফেরার কথা কখনও ভাবে না, দেয়ালে ধাক্কা খেয়ে আসা একটি বল তাকে বোকা বানায়; সে বল এখন যেদিকে তাক করা, সেখানেই নিজেকে সঁপে দেয়। যে মানুষ আখড়ার কিনারায় বল ঠুকে শট নেয়, সে ঠিক এই অন্ধ জায়গাটিকেই কাজে লাগায়। যন্ত্রটি এক চুল দূরদৃষ্টি নিয়ে বর্তমানের প্রতিক্রিয়া দেয়; সে পরিকল্পনা করে না।
কম্পিউটার বলের ভবিষ্যৎ হিসাব করে না। সে এক-অষ্টমাংশ সেকেন্ড সামনে ঝুঁকে পড়ে, কিছুই বাধা না দিলে বল যেখানে থাকত সেদিকে ঢাল তাক করে, আর যা কিছু বাধা দেয়, তার সবটুকুকেই আপনার সুযোগ হতে দেয়।
তিনটি কাঠিন্যই একই অভিন্ন কোড-দেহ ভাগ করে নেয়। সহজ, মাঝারি আর কঠিনের মধ্যে যা বদলায় তা হলো চারটি সুর-নিয়ন্ত্রক সংখ্যার একটি সারি। 1 কম্পন ঢালের লক্ষ্যে এলোমেলো ত্রুটি যোগ করে, ফলে একজন সহজ যুদ্ধবাজের নিশানা তার রেলের প্রায় পাঁচ ভাগের এক ভাগ এদিক-ওদিক ঘোরে, আর একজন কঠিন যুদ্ধবাজ প্রায় নিখুঁত। প্রতিক্রিয়া-দূরত্ব ঠিক করে একটি বলকে কতটা কাছে আসতে হবে তার আগে যুদ্ধবাজ তাকে অনুসরণ করার পরিশ্রমটুকু করবে: একজন সহজ যুদ্ধবাজ তার রাজা থেকে 420 এককের বেশি দূরের কিছুই গ্রাহ্য করে না, যা বোর্ডের চওড়ার অর্ধেকের সামান্য কম; একজন কঠিন যুদ্ধবাজ গোটা আখড়া জুড়ে অনুসরণ করে। ধরার সম্ভাবনা হলো, ঢালের যথেষ্ট কাছে আসা একটি বলকে সে ধরে ফেলার সম্ভাবনা কতটুকু। আর প্রতিদ্বন্দ্বী-নিশানা একটিমাত্র সুইচ, যা ঠিক করে যুদ্ধবাজ আদৌ আক্রমণ খেলবে কি না।
| কাঁটা | সহজ | মাঝারি | কঠিন |
|---|---|---|---|
| নিশানার কম্পন (রেল-ভগ্নাংশ) | 0.18 | 0.07 | 0.015 |
| প্রতিক্রিয়া-দূরত্ব (একক) | 420 | 700 | 2,000 |
| ধরার সম্ভাবনা | 0% | 25% | 55% |
| প্রতিদ্বন্দ্বীদের নিশানা করে? | না | না | হ্যাঁ |
চারটি মানই আসে Bulwark গেম-ইঞ্জিনের ভেতরকার একটিমাত্র ছোট সুর-ছক থেকে, প্রতি স্তরে এক সারি। কঠিনে প্রতিক্রিয়া-দূরত্ব লেখা আছে আখড়ার চওড়ার দ্বিগুণ হিসেবে, আর আখড়াটি 1,000 একক বর্গাকার, তাই 2,000 একক মানে “সবসময়ই অনুসরণ করছে”। 1
সহজ বা মাঝারি যুদ্ধবাজ কখনও আঘাত হানার অভিপ্রায়ে বল ধরে না। সহজ স্তরেরটি আদৌ কখনও বল ধরে না, আর মাঝারি স্তরেরটি ধরে কেবল মাঝেমধ্যে—বল একবার হাতে এলে তা নিয়ে কী করবে, সেই পরিকল্পনা ছাড়াই। প্রতিদ্বন্দ্বী-নিশানার সুইচটি উল্টে দিন—যা কেবল কঠিন স্তরই করে—আর AI আর নিছক প্রতিক্রিয়াশীল থাকে না। বল হাতে থাকলে সে বোর্ডের ওপারে তাকায়, সবচেয়ে বেশি আহত প্রতিদ্বন্দ্বীকে (যার ইট সবচেয়ে কম বাকি) বেছে নেয়, আর সেদিকেই তাক করে। 1
আর এ কাজ সে করে কোনো পথ-সন্ধান ছাড়াই। সে নিজের রেল বরাবর এগারোটি সম্ভাব্য অবস্থান নমুনা হিসেবে নেয়, আর প্রত্যেকটির জন্য ইঞ্জিনের ছাড়ার অঙ্কটি নতুন করে কষে দেখে ওই শটটি কোন দিকে উড়ে যাবে, তারপর সেই অবস্থানটিই রেখে দেয় যার বহির্মুখী ভেক্টর বেছে নেওয়া শিকারের দিকে সবচেয়ে সোজাসুজি তাক করা। 1 এটি চাতুর্য নয়, গুটিকয় বিকল্পের উপর নিছক গায়ের জোর, কিন্তু সে এ ব্যাপারে ধৈর্যশীল: জায়গা বেছে নেওয়ার পর যুদ্ধবাজ বলটি ধরে রাখে যতক্ষণ না ঢালটি সত্যিই সেখানে পৌঁছায়, আর ছাড়ে কেবল তখনই যখন সে পৌঁছে গেছে, নয়তো এতক্ষণ ধরে রেখেছে যে আরও অপেক্ষা করলে শটটির দামের চেয়ে খরচ বেশি পড়বে। অভিপ্রায়টি স্পষ্টতই কৌশলগত—ঠিক যা একজন মানুষ সহজ শিকার খুঁজতে গিয়ে করত। “সবচেয়ে কম ইট” দেখে লক্ষ্য বাছাই করার মানে, যে ইতিমধ্যেই হারছে, তিনজন স্বাধীন রক্ষকই তার দিকে তাক করে।
একজন যুদ্ধবাজ যা কিছু “এলোমেলো” করে—তার নিশানার কম্পন, ধরবে কি ধরবে না তার টস—সবই আসে একটি বীজ-ভিত্তিক জেনারেটর থেকে, mulberry32 নামে পরিচিত একটি ছিমছাম রুটিন, যা একটিমাত্র সূচনা-সংখ্যাকে ছদ্ম-এলোমেলো মানের এক দীর্ঘ, পুনরাবৃত্তিযোগ্য ধারায় বদলে দেয়। 2 তাকে একই বীজ দিন, সে চিরকাল একই ক্রমই তৈরি করবে। সরাসরি খেলা একটি ম্যাচ তার বীজ নেয় ঘড়ি থেকে, তাই কোনো দুটি খেলা একইভাবে শুরু হয় না; কিন্তু সেই একই বীজ ফিরিয়ে দিন, আর ম্যাচটি হুবহু আবার চলবে: একই উৎক্ষেপণ-কোণ, একই টলমল, একই ধরা।
এই নিয়তি-নির্ধারণ কোনো সাজসজ্জার খুঁটিনাটি নয়। এটিই গেমটিকে পরীক্ষাযোগ্য করে তোলে—তার পরীক্ষা-সুইট একটি নির্দিষ্ট বীজ থেকে গোটা কম্পিউটার-বনাম-কম্পিউটার ম্যাচ খেলে আর প্রতিবার একই ফল আশা করে—আর এটিই গোটা সিমুলেশনকে, জেনারেটরের কার্সর সমেত, JSON-এ গুছিয়ে ভরে আবার গড়ে তোলা সম্ভব করে, যাতে অনলাইনে হোস্ট তার অবস্থা স্ট্রিম করতে পারে আর বাকি প্রত্যেক খেলোয়াড় হুবহু একই বোর্ড আবার গড়ে নেয়। যুদ্ধবাজদের জীবন্ত মনে হয় কারণ তাদের ভুলগুলো মানুষের মতো দেখায়; ভেতরে তাদের “সহজাত প্রবৃত্তি” আসলে একটি ছোট গাণিতিক পুনরাবৃত্তি, যাকে যে কেউ গোড়ায় ফিরিয়ে নিতে পারে। একটি দুর্গ পাহারা দেওয়া যন্ত্রের, দেখা যাচ্ছে, দরকার কেবল গুটিকয় সংখ্যা আর পুনরুৎপাদনযোগ্য ভাগ্যের একটি ধারা। 2