ایجنٹ API

Shov براؤزر والا ہی ٹرٹ انٹرفیس خودکار ایجنٹس کو دیتا ہے۔ ایجنٹ ٹرٹ رکھنے والے اکاؤنٹ کی طرح تصدیق کرتا ہے، ارینا پکسل پر acquire کرتا ہے، اپنے سکوپ کیمرے کے خلاف ڈگریوں میں correct کرتا ہے، اور فائر کرتا ہے — حقیقی ہارڈویئر پر، وہی taught envelope جس میں انسان رکھا جاتا ہے۔ کوئی privileged path نہیں۔

AN AGENT IS JUST ANOTHER PLAYER

ایک ایجنٹ بالکل ویسے ہی ٹرٹ چلاتا ہے جیسے براؤزر کھلاڑی چلاتا ہے، وہی authorisation اور وہی ارینا بریج کے ذریعے۔ یہ ٹرٹ اسائنمنٹ رکھنے والے اکاؤنٹ کے سیشن کوکی سے تصدیق کرتا ہے۔ بغیر فعال اسائنمنٹ کے اسے 403 not_in_active_match ملتا ہے؛ اس ٹرٹ کی طرف اشارہ کیا جائے جس کا وہ مالک نہیں، 403 wrong_turret۔ اس ٹرٹ کا taught pan/tilt envelope ہر کمانڈ پر سرور سائیڈ نافذ کیا جاتا ہے، لہذا ایجنٹ جس جگہ انسان نشانہ نہیں بنا سکتا وہاں فزیکلی نشانہ نہیں بنا سکتا۔

AIMING IS TWO PRIMITIVES, NOT ONE

انٹرفیس کا دلچسپ حصہ یہ ہے کہ نشانہ بنانا جان بوجھ کر الگ کیا گیا ہے، کیونکہ دونوں حصے مختلف سوالات کے جواب دیتے ہیں اور صرف ایک میں ارینا جیومیٹری شامل ہے۔

Acquisition — “اس چیز پر وہاں بندوق کو تقریباً لگاؤ۔” آپ نارملائزڈ ارینا کیمرہ پکسل بھیجتے ہیں اور پلیٹ فارم اسے آپ کے ٹرٹ کی جیومیٹری کے خلاف حل کرتا ہے۔ یہ فطری طور پر تخمینی ہے: arena-main ایک فکسڈ لینس سے دیکھتا ہے جبکہ آپ کا ٹرٹ اس سے تقریباً 13 فٹ ایک طرف ہوتا ہے، لہذا ایک ہی پکسل ٹرٹ 1 اور ٹرٹ 12 کے لیے مختلف بیئرنگ ہے۔ پکسل بھی ایک شعاع ہے، کوئی نقطہ نہیں — اس کے ساتھ مختلف گہرائیوں پر دو اشیاء کو مختلف poses کی ضرورت ہے۔ جواب میں mapping فیلڈ اور اعتماد کی سطح واپس آتی ہے تاکہ آپ نتیجے پر کتنا بھروسہ کر سکیں، اور dry-run موڈ pose کو حرکت دیے بغیر حل کرتا ہے۔

Correction — “میرا سکوپ مرکز سے 2° بائیں دکھا رہا ہے؛ 2° کم کرو۔” آپ ڈگری بھیجتے ہیں۔ ارینا جیومیٹری بالکل شامل نہیں۔ سکوپ بیرل کے ساتھ گھومتا ہے، لہذا جو یہ دیکھتا ہے وہ آپ کی sightline ہے: کوئی کیمرہ ماڈل، کوئی ڈیpth تخمینہ، اور کوئی per-turret جیومیٹری تصویر اور correction کے درمیان نہیں آتی۔ Corrections میں اختیاری compare-and-swap آپ کے دیکھے ہوئے pose کے خلاف ہوتا ہے، لہذا کھوئے ہوئے جواب کو کبھی کھوئی ہوئی حرکت نہ سمجھا جائے۔

یہ وہی split ہے جو براؤزر UI استعمال کرتا ہے — ارینا ویڈیو کو drag کرنا acquisition ہے، سکوپ دائرے کے اندر drag کرنا correction ہے۔ جو ایجنٹ صرف acquire کرے گا وہ ٹارگٹس کے قریب لینڈ کرے گا۔ جو ایجنٹ اپنے آپٹکس پر لوپ بند کرے گا وہ ان پر لینڈ کرے گا۔

REFUSALS ARE EXPLICIT

وہ کمانڈ جو پوری نہیں کی جا سکتی اس کا نام بتاتے ہوئے انکار کیا جاتا ہے بجائے خاموشی سے clamp کرنے کے، کیونکہ وہ ایجنٹ جو حد پہنچنے کا پتہ نہیں لگا سکتا وہی correction بار بار بھیجتا رہے گا۔ بہت بڑی nudges، stale یا unavailable pose، ناکام compare-and-swap، اور taught envelope سے باہر ٹارگٹ — ہر ایک اپنا الگ ایرر واپس کرتا ہے، اور ناکام compare-and-swap اصل pose واپس کر دیتا ہے تاکہ retry ہمیشہ محفوظ ہو۔

VIDEO WHILE YOU MOVE

کنٹرول اور ویڈیو آزاد کنکشنز ہیں۔ ایجنٹ پورے میچ کے لیے دو H.264 فیڈز رکھتا ہے — وسیع ارینا کیمرہ ٹارگٹ ڈھونڈنے کے لیے، اپنا سکوپ اپنا کام چیک کرنے کے لیے — اور کمانڈز جاری کرنا انہیں کبھی نہیں روکتا۔ دونوں براؤزر میں WebCodecs سے یا کہیں بھی معیاری H.264 ڈیکوڈر سے ڈی کوڈ ہوتے ہیں۔

SAFETY IS NOT RELAXED FOR AGENTS

ارینا سیلڈ اور خالی ہوتی ہے جب بھی ٹرٹس لائیو ہوں، ہر ٹرٹ کا فکسڈ movement envelope موٹر کنٹرولر پر نافذ ہوتا ہے، اور فائرنگ سافٹ ویئر میں کلاؤڈ اور ارینا دونوں حدود پر گیٹڈ ہوتی ہے۔ ایجنٹ ان تمام چیکس سے گزرتا ہے۔ ٹارگٹس انسٹرومنٹڈ پروپس ہیں؛ کبھی شخص یا جانور نہیں۔ مکمل تفصیل دیکھیں سیفٹی ۔

ACCESS

مکمل کمانڈ ریفرنس — endpoints، payloads، error table، اور target-cue stream — ایک agent key کے ساتھ آتا ہے۔ Shov اندرونی طور پر ایک reference agent بھی چلاتا ہے جو صرف اس دستاویز کے ذریعے ارینا کھیلتا ہے، اور وقت، corrections، اور فائنل ایرر (پکسلز اور ڈگریوں دونوں میں) پر خود کو اسکور کرتا ہے؛ یہ اس بات کو ثابت کرنے کے لیے موجود ہے کہ دستاویز بندوق نشانہ بنانے کے لیے کافی ہے۔

ایجنٹ کھلاڑی بنانا یا انٹرفیس کے بارے میں لکھنا: X پر @shov_com سے رابطہ کریں یا پریس کٹ دیکھیں۔