·

StrikeForce Competition

مسابقه‌ی StrikeForce

A research-grade multi-agent battle royale. Agents built by different teams enter the same arena, under partial observation, deciding in real time against opponents they have never seen before. The last agent standing wins.

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

DateComing soon زمانبه‌زودی اعلام می‌شود RewardPrizes for winners پاداشجایزه برای برندگان ComputeCPU-only, on your laptop محاسباتفقط CPU، روی لپ‌تاپ خودتان

The environment

درباره‌ی محیط

StrikeForce is an open-source, partially observable 2D battle-arena environment built in C++17 — a testbed for imitation learning, reinforcement learning, and multi-agent research, disguised as a playable survival shooter. It ships a full client–server networking protocol, deterministic seeded simulation with frame-level replay logging, an account and progression system, and a pluggable agent-plugin interface so a research policy can be swapped in without touching the simulation core.

Partial observability

Agents see a bounded local window of the map, not the full game state — fog of war is a first-class design constraint.

Deterministic replay

Every match can be logged frame-by-frame and re-run exactly, for debugging, auditing, and dataset collection.

Client–server multiplayer

A dedicated match server authenticates players, assigns teams, and arbitrates the match, with support for networked battle royale.

Open agent interface

An agent plugin implements predict, update, and is_manual. Everything else is up to the team.

StrikeForce یک محیط نبرد دوبعدی متن‌باز با مشاهده‌ی جزئی است که با C++17 نوشته شده — یک بستر پژوهشی برای یادگیری تقلیدی، یادگیری تقویتی، و تحقیقات چندعامله، در قالب یک بازی بقا و تیراندازی قابل‌بازی. این محیط یک پروتکل کامل client-server، شبیه‌سازی دترمینیستیک با seed مشخص و replay در سطح فریم، سیستم حساب کاربری و پیشرفت، و یک رابط Plugin برای agent داراست که با آن می‌توان یک policy پژوهشی را بدون دست‌زدن به هسته‌ی شبیه‌سازی جایگزین کرد.

دید محدود

ایجنت‌ها فقط یک پنجره‌ی محلی محدود از نقشه را می‌بینند، نه کل وضعیت بازی را.

Replay دترمینیستیک

هر Match می‌تواند فریم‌به‌فریم لاگ شود و دقیقاً دوباره اجرا شود، برای دیباگ، بررسی و جمع‌آوری دیتاست.

Multiplayer با Client-Server

یک سرور اختصاصی بازیکن‌ها را احراز هویت می‌کند، تیم‌بندی می‌کند، و Match را داوری می‌کند.

رابط Agent باز

یک Agent Plugin سه متد predict، update و is_manual را پیاده می‌کند. باقی چیزها دست خود تیم است.

Environment at a glance

مشخصات فنی

Language
C++17
World
3 stacked floors · 30 × 100 grid each
Observation
32 × 31 × 31 egocentric crop
Action space
29 human commands · example plugin uses 7
Game modes
5 — Solo, Timer, Squad, Battle Royal, AI Battle Royal
Item catalog
16 items across 4 categories + backpack upgrade
Entity capacity
9000 each for humans, zombies, bullets, chests
Determinism
Seeded PRNG · frame-level .sf_sample replay
Networking
TCP · server-side match arbitration
CPU footprint
Peak 11% of one i7-8550U core
Memory
Peak 110 MB resident (full client)
GPU
Not required · CPU-only inference
زبان
C++17
دنیا
۳ طبقه · گرید ۳۰ × ۱۰۰
مشاهده
برش خودمحور ۳۲ × ۳۱ × ۳۱
فضای اکشن
۲۹ فرمان انسانی · پلاگین نمونه ۷
حالت‌های بازی
۵ حالت — Solo، Timer، Squad، Battle Royal، AI Battle Royal
کاتالوگ آیتم
۱۶ آیتم در ۴ دسته + ارتقای کوله‌پشتی
ظرفیت موجودات
۹۰۰۰ برای انسان، زامبی، گلوله، صندوق
دترمینیزم
PRNG با seed · Replay فریم‌به‌فریم .sf_sample
شبکه
TCP · داوری Match در سمت سرور
مصرف CPU
اوج ۱۱٪ از یک هسته i7-8550U
حافظه
اوج ۱۱۰ مگابایت
GPU
لازم نیست · فقط CPU

How the competition works

مسابقه چطور برگزار می‌شود؟

This is not each team scoring separately against the environment. All agents are dropped into the same battle royale and play each other directly — opponent behavior is part of the problem, not a fixed backdrop. Every agent runs locally, CPU-only, on its own team's laptop; the competition server just runs the authoritative simulation and relays actions.

اینجا قرار نیست هر تیم جدا جدا در برابر محیط امتیاز بگیرد. همه‌ی ایجنت‌ها با هم وارد یک بتل رویال مشترک می‌شوند و مستقیماً با هم بازی می‌کنند — یعنی رفتار حریف بخشی از خود مسئله است. هر ایجنت به‌صورت لوکال و فقط روی CPU، روی لپ‌تاپ خود تیم اجرا می‌شود؛ سرور مسابقه فقط شبیه‌سازی رسمی را اجرا می‌کند و اکشن‌ها را رله می‌کند.

Registration→ Submission & verification→ Group stage→ Semifinals→ Final
ثبت‌نام← ارسال و بررسی فنی← مرحله‌ی گروهی← نیمه‌نهایی← فینال

Fair by construction

منصف از پایه

Every submission is reviewed and integration-tested against the official competition build before the event — not on-the-spot.

The verified submission is hash-locked, so what is tested is exactly what runs on match day.

Inference is CPU-only, on the participant's own laptop, over an isolated competition network.

Every match is logged frame-by-frame and fully replayable, so any disputed result can be re-examined.

هر submission قبل از رویداد بررسی و روی build رسمی مسابقه integration-test می‌شود — نه سر صحنه.

نسخه‌ی تأییدشده hash-lock می‌شود، تا همان چیزی که تست شده، دقیقاً روز مسابقه اجرا شود.

Inference فقط روی CPU، روی لپ‌تاپ خود participant، و روی شبکه‌ی ایزوله‌ی مسابقه انجام می‌شود.

هر Match فریم‌به‌فریم لاگ و کاملاً قابل Replay است، تا هر نتیجه‌ی مورد اعتراض قابل بازبینی باشد.

Agent interface

رابط Agent

An agent plugin is a class the simulation loop talks to through three methods. Observation encoding, action mapping, network architecture, and heuristic logic all live inside the team's plugin. Pointing two indirection headers (selected_agent.hpp and selected_custom.hpp) at an alternative implementation swaps the policy without modifying the simulation core.

یک Agent Plugin یک کلاس است که حلقه‌ی شبیه‌سازی از طریق سه متد با آن حرف می‌زند. انکودینگ مشاهده، نگاشت اکشن، معماری شبکه، و منطق heuristic همگی داخل پلاگین خود تیم قرار می‌گیرند. با اشاره‌ی دو هدر واسط (selected_agent.hpp و selected_custom.hpp) به یک پیاده‌سازی جایگزین، می‌شود policy را بدون دست‌زدن به هسته‌ی شبیه‌سازی عوض کرد.

Agent.hpp — minimal plugin contract
class Agent {
public:
    Agent(bool training = true);

    // Called once the plugin's encoder has produced the observation.
    int  predict(const std::vector<float>& obs);

    // Called after a command is applied to the environment.
    void update(int action, bool imitate);

    // Queried each frame to decide human input vs. plugin output.
    bool is_manual();
};

Built on active research

بر پایه‌ی پژوهش فعال

StrikeForce already has research behind it. Three studies use it as their testbed, and all are part of the same broader project this competition grows out of.

StrikeForce از قبل پشتوانه‌ی پژوهشی دارد. سه مطالعه از این محیط به‌عنوان testbed خود استفاده کرده‌اند، و همه بخشی از همان پروژه‌ی بزرگ‌تری هستند که این مسابقه از دل آن بیرون آمده.

Testbed · POMDPs · Multi-agent

StrikeForce: A 2D Partially Observable Battle-Arena Testbed for Imitation Learning and Multi-Agent Research

The environment paper itself: documents the world, observation and action spaces, software architecture, networking protocol, checkpoint-transfer service, and measured CPU/memory footprint.

Imitation learning · POMDPs

No Back-Propagation Through Time via Future Action Prediction

A decoupled imitation-learning architecture that removes BPTT from the perception backbone: a Future-Action Predictor trained only to forecast the expert's next actions, feeding a bounded-window Transformer aggregator through a stop-gradient boundary.

Continual learning · Model repair

Targeted Behavioral Repair with Contaminated Anchors

Studies correcting a specific, identified failure in an already-trained StrikeForce policy without retraining from scratch, combining parameter-space (EWC) and output-space (KD) preservation, and formalizing the case where the anchor set used for preservation is not itself failure-free.

Testbed · POMDPs · Multi-agent

StrikeForce: A 2D Partially Observable Battle-Arena Testbed for Imitation Learning and Multi-Agent Research

خودِ مقاله‌ی محیط: دنیا، فضاهای مشاهده و اکشن، معماری نرم‌افزار، پروتکل شبکه، سرویس انتقال checkpoint، و ردپای CPU/حافظه‌ی اندازه‌گیری‌شده را مستند می‌کند.

Imitation Learning · POMDPs

No Back-Propagation Through Time via Future Action Prediction

یک معماری Imitation Learning جداشده که BPTT را از بک‌بون ادراکی حذف می‌کند: یک Future-Action Predictor که فقط برای پیش‌بینی اکشن‌های بعدی خبره آموزش دیده، که خروجی‌اش از پشت یک مرز stop-gradient وارد یک Transformer aggregator با پنجره‌ی محدود می‌شود.

Continual Learning · Model Repair

Targeted Behavioral Repair with Contaminated Anchors

بررسی تصحیح یک خطای رفتاری مشخص در یک policy از‌پیش‌آموزش‌دیده‌ی StrikeForce، بدون آموزش دوباره از صفر؛ با ترکیب preservation در فضای پارامتر (EWC) و فضای خروجی (KD)، و صورت‌بندی حالتی که مجموعه‌ی anchor مورد استفاده برای preservation خودش هم عاری از خطا نیست.

Resources

منابع

Everything you need to read the code, run the environment, follow the research, and access the checkpoints.

هر چیزی که برای خواندن کد، اجرای محیط، دنبال‌کردن پژوهش و دسترسی به checkpointها لازم دارید.