প্রকল্প সম্পর্কে
Generals.io Bots হলো generals.io কৌশলগত গেমের একটি উচ্চ-কর্মক্ষমতা সম্পন্ন সিমুলেটর, যা Python-এ JAX-এর উপর লেখা এবং রিইনফোর্সমেন্ট লার্নিং গবেষণার লক্ষ্যে তৈরি। এটি একটি দ্রুত, ফাংশনাল এনভায়রনমেন্ট প্রদান করে যেখানে এজেন্টদের প্রশিক্ষণ ও মূল্যায়ন করা যায়, সাথে লাইভ generals.io সার্ভারে এজেন্ট ডিপ্লয় করার টুলিংও রয়েছে।
প্রকল্পটি যে মূল বৈশিষ্ট্যগুলো বর্ণনা করে:
- সম্পূর্ণ JIT-কম্পাইলড JAX সিমুলেটর, বড় পরিসরে সমান্তরালতার জন্য ভেক্টরাইজড vmap সাপোর্ট সহ।
- অপরিবর্তনীয় স্টেট ও পুনরুৎপাদনযোগ্য ট্রাজেক্টরি সহ বিশুদ্ধ ফাংশনাল ডিজাইন।
- generals.io সার্ভারের জন্য লাইভ ডিপ্লয়মেন্ট সাপোর্ট।
- গেম ভিজুয়ালাইজ এবং এজেন্টের আচরণ ডিবাগ করার জন্য বিল্ট-ইন GUI।
ইনস্টলেশন করা হয় রিপোজিটরি ক্লোন করে এবং pip install -e . চালিয়ে। README-তে উল্লেখ আছে যে সিমুলেটরটি বর্তমান গেমের নিয়ম অনুসরণ করে, সাথে দাবি করা হয়েছে যে ১০,০০০ র্যাংকড গেম এটি দিয়ে রিপ্লে করার পর প্রতিটি টার্নের পর generals.io-এর নিজস্ব ইঞ্জিনের সাথে মিলেছে।
শুরু করা: GeneralsEnv ক্লাসটি গ্রিডের মাত্রা এবং একটি truncation limit নেয়। একটি reset কল একটি auto-reset pool এবং একটি প্রাথমিক স্টেট রিটার্ন করে। এজেন্টরা act(observation, key) ইন্টারফেস ইমপ্লিমেন্ট করে; README-তে উদাহরণ হিসেবে RandomAgent এবং ExpanderAgent দেখানো হয়েছে। গেম লুপ প্রতি প্লেয়ারের জন্য observation নেয়, অ্যাকশন স্ট্যাক করে, এবং এনভায়রনমেন্ট step করে, যা পূর্ব-উৎপন্ন pool থেকে auto-reset হয়। একটি ভেক্টরাইজড উদাহরণ jax.vmap দিয়ে অনেক এনভায়রনমেন্ট সমান্তরালে চালানো দেখায়, একটি শেয়ার্ড pool এবং ব্যাচড স্টেট ব্যবহার করে।
এনভায়রনমেন্টটি 1v1, N-প্লেয়ার ফ্রি-ফর-অল, এবং টিম গেম সাপোর্ট করে। টিমের ক্ষেত্রে, টিমমেটের সেলে মুভ করলে আর্মি পুল হয় এবং সেলটি ট্রান্সফার হয়; একটি general ক্যাপচার করলে ভিকটিমের সেলগুলো অর্ধেক আর্মি নিয়ে ট্রান্সফার হয় এবং সেই প্লেয়ার এলিমিনেট হয়; একটি টিম শুধুমাত্র তখনই হারে যখন তার সব general পড়ে যায়, এবং সর্বশেষ টিকে থাকা টিম জেতে। টিমের মধ্যে sight শেয়ার করা হয়, এবং observation-এ allied cell, allied land count, এবং allied army count অন্তর্ভুক্ত থাকে, যেখানে opponent ফিল্ডগুলো সব শত্রু টিমকে একসাথে কভার করে।
Observation-এ armies, generals, castles, mountains, owned/opponent/neutral/fog cell, fog-এ structure, land ও army count, timestep, এবং allied field-এর মতো ফিল্ড থাকে। as_tensor() হেল্পার প্রথম ১৪টি ফিল্ডকে একটি (14, H, W) টেনসরে স্ট্যাক করে, ঐচ্ছিকভাবে allied চ্যানেল যোগ করে। অ্যাকশন হলো পাঁচটি ইন্টিজারের অ্যারে: pass, row, col, direction, এবং split। একটি compute_valid_move_mask হেল্পার বৈধ মুভগুলোকে (H, W, 4) মাস্ক হিসেবে রিটার্ন করে।
ডিপ্লয়মেন্টে generals.remote.autopilot ব্যবহার করা হয় একটি এজেন্ট, user_id, এবং lobby_id সহ লাইভ generals.io সার্ভারে সংযোগ করতে। README-তে Matej Straka এবং Martin Schmid-এর ২০২৫ সালের arXiv পেপার "Artificial Generals Intelligence: Mastering Generals.io with Reinforcement Learning" শিরোনামের একটি BibTeX সাইটেশন রয়েছে।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.