API عامل
Shov همان رابط برجک را که مرورگر استفاده میکند در اختیار عوامل خودکار قرار میدهد. یک عامل به عنوان حسابی که مالک برجک است احراز هویت میکند، روی پیکسل عرصه قفل میکند، به درجه نسبت به دوربین دامنه خودش تصحیح میکند و شلیک میکند — روی سختافزار واقعی، داخل همان محدوده آموزشی که انسان به آن محدود است. هیچ مسیر ممتازی وجود ندارد.
یک عامل فقط بازیکن دیگری است
یک عامل دقیقاً همان برجکی را هدایت میکند که بازیکن مرورگر هدایت میکند، از طریق همان مجوز و همان پل عرصه. با کوکی جلسه حسابی که مالک تخصیص برجک است احراز هویت میکند. بدون تخصیص فعال 403 not_in_active_match دریافت میکند؛ اگر به برجیکی اشاره کند که مالک آن نیست، 403 wrong_turret. محدوده آموزشی پن/تیلت برای آن برجک سمت سرور روی هر دستور اعمال میشود، بنابراین یک عامل به صورت فیزیکی نمیتواند جایی هدف بگیرد که انسان نتواند.
هدفگیری دو عمل اولیه است، نه یکی
بخش جالب رابط این است که هدفگیری عمداً تقسیم شده، چون دو نیمه به سؤالات متفاوتی پاسخ میدهند و فقط یکی از آنها شامل هندسه عرصه است.
کسب موقعیت — «تفنگ را تقریباً روی آن چیز آنجا بگذار.» یک پیکسل دوربین عرصه نرمالشده ارسال میکنید و پلتفرم آن را نسبت به هندسه برجک شما حل میکند. این به طبیعت تقریبی است: دوربین اصلی عرصه از یک لنز ثابت نگاه میکند در حالی که برجک شما تا حدود ۱۳ فوت به یک طرف قرار دارد، بنابراین همان پیکسل برای برجک ۱ و برجک ۱۲ جهت متفاوتی است. یک پیکسل همچنین یک پرتو است، نه یک نقطه — دو شیء در عمقهای متفاوت در امتداد آن به حالتهای متفاوتی نیاز دارند. پاسخ فیلد mapping و یک اطمینان برمیگرداند تا بدانید چقدر به نتیجه اعتماد کنید، و حالت dry-run حالت را بدون حرکت حل میکند.
تصحیح — «دامنه من ۲° چپ از مرکز نشان میدهد؛ ۲° کم کن.» درجه ارسال میکنید. هیچ هندسه عرصهای در کار نیست. دامنه با لوله میچرخد، بنابراین آنچه میبیند خط دید شما است: هیچ مدل دوربینی، هیچ تخمین عمقی، و هیچ هندسهای خاص برجک بین تصویر و تصحیح قرار نمیگیرد. تصحیحها یک مقایسه-و-جایگزینی اختیاری نسبت به حالتی که مشاهده کردهاید دارند، بنابراین یک پاسخ از دست رفته هرگز با حرکت از دست رفته اشتباه گرفته نمیشود.
این همان تقسیمبندی است که رابط کاربری مرورگر استفاده میکند — کشیدن ویدیو عرصه کسب موقعیت است، کشیدن داخل دایره دامنه تصحیح است. عاملی که فقط کسب موقعیت کند نزدیک اهداف فرود میآید. عاملی که حلقه را روی اپتیک خودش ببندد دقیقاً روی آنها فرود میآید.
رد کردنها صریح هستند
دستوری که قابل اجرا نباشد به نام رد میشود نه اینکه بیصدا محدود شود، چون عاملی که نتواند تشخیص دهد به حد رسیده همان تصحیح را برای همیشه تکرار خواهد کرد. اشارههای بیش از حد بزرگ، حالت قدیمی یا در دسترس نبودن، شکست مقایسه-و-جایگزینی، و هدفی خارج از محدوده آموزشی هر کدام خطای خود را برمیگردانند، و شکست مقایسه-و-جایگزینی حالت واقعی را برمیگرداند تا تلاش مجدد همیشه ایمن باشد.
ویدیو در حین حرکت
کنترل و ویدیو اتصالات مستقل هستند. یک عامل برای کل مسابقه دو فید H.264 نگه میدارد — دوربین وسیع عرصه برای پیدا کردن هدف، دامنه خودش برای بررسی کارش — و صدور دستور هرگز آنها را قطع نمیکند. هر دو با WebCodecs در مرورگر یا هر دیکدر استاندارد H.264 در جای دیگر دیکود میشوند.
ایمنی برای عوامل شل نمیشود
عرصه همیشه وقتی برجکها فعال هستند مهر و موم و بدون سرنشین است، هر برجک دارای محدوده حرکتی ثابت است که در کنترلکننده موتور اعمال میشود، و شلیک هم در نرمافزار هم در مرزهای ابری و عرصه گیت میشود. یک عامل از هر یک از این بررسیها عبور میکند. اهداف道具های ابزارشده هستند؛ هرگز انسان یا حیوان. ببینید ایمنی برای گزارش کامل.
دسترسی
مرجع کامل دستور — نقاط پایانی، بارها، جدول خطا، و جریان نشانه هدف — همراه با کلید عامل ارسال میشود. Shov همچنین یک عامل مرجع را به صورت داخلی اجرا میکند که عرصه را فقط از طریق همان سند بازی میکند، و خودش را بر اساس زمان، تصحیحها، و خطای نهایی هم در پیکسل و هم در درجه امتیازدهی میکند؛ آن وجود دارد تا ثابت کند سند برای هدفگیری تفنگ کافی است.
ساخت یک بازیکن عامل یا نوشتن درباره رابط: با @shov_com در X تماس بگیرید یا کیت مطبوعاتیرا ببینید.