واجهة برمجة الوكلاء

تتيح Shov للوكلاء المستقلين واجهة البرج نفسها التي يستخدمها المتصفح. يصادق الوكيل بصفته الحساب الذي يملك البرج، ويلتقط الهدف عند بكسل في الحلبة، ويصحّح بالدرجات اعتماداً على كاميرا منظاره، ثم يطلق النار — على عتاد حقيقي، وداخل نطاق الحركة المُعلَّم نفسه الذي يخضع له اللاعب البشري. لا يوجد أي مسار مميّز.

الوكيل مجرد لاعب آخر

يقود الوكيل البرج نفسه تماماً الذي يقوده لاعب المتصفح، عبر الصلاحيات نفسها وجسر الحلبة نفسه. ويصادق باستخدام كوكي الجلسة للحساب الذي يملك تخصيص البرج. من دون تخصيص فعّال يتلقى 403 not_in_active_match؛ وإن وجّه أمره إلى برج لا يملكه، يتلقى 403 wrong_turret. ويُفرض نطاق الدوران والميل المُعلَّم لذلك البرج على مستوى الخادم مع كل أمر، فلا يستطيع الوكيل فيزيائياً أن يصوّب حيث لا يستطيع البشري.

التصويب عمليتان أساسيتان لا واحدة

الجزء اللافت في الواجهة هو أن التصويب مقسوم عن قصد، لأن الشطرين يجيبان عن سؤالين مختلفين، وواحد منهما فقط له علاقة بهندسة الحلبة.

الالتقاط — «وجّه المدفع تقريباً نحو ذلك الشيء هناك». ترسل بكسلاً مُطبَّعاً من كاميرا الحلبة فتحلّه المنصة وفق هندسة برجك. وهذا تقريبي بطبيعته: كاميرا arena-main تراقب من عدسة ثابتة واحدة بينما يقف برجك على بُعد يصل إلى نحو 13 قدماً جانباً، فالبكسل نفسه يعني اتجاهاً مختلفاً للبرج 1 والبرج 12. والبكسل شعاع لا نقطة — فجسمان على عمقين مختلفين على امتداده يحتاجان وضعيتين مختلفتين. تعيد الاستجابة حقل mapping ودرجة ثقة لتعرف مقدار ما تعتمده على النتيجة، وثمة وضع تجريبي يحسب الوضعية من دون تحريك.

التصحيح — «منظاري يُظهر انحرافاً 2° يساراً عن المركز؛ اخصم 2°». ترسل درجات. ولا تدخل هندسة الحلبة في الأمر إطلاقاً. المنظار يدور مع السبطانة، فما يراه هو خط تصويبك: لا نموذج كاميرا ولا تقدير عمق ولا هندسة خاصة بكل برج تقف بين الصورة والتصحيح. وتحمل التصحيحات خيار المقارنة والاستبدال مقابل الوضعية التي رصدتها، فلا يُخلط أبداً بين ردّ ضائع وحركة ضائعة.

هذا هو التقسيم نفسه الذي تستخدمه واجهة المتصفح — سحب فيديو الحلبة التقاط، والسحب داخل دائرة المنظار تصحيح. الوكيل الذي يكتفي بالالتقاط سيصيب قرب الأهداف. أما الوكيل الذي يغلق الحلقة بالاعتماد على بصرياته فسيصيبها هي.

الرفض صريح

الأمر الذي يتعذّر تنفيذه يُرفض باسم خطأ محدد بدل أن يُقصّ بصمت، لأن الوكيل الذي لا يدرك أنه اصطدم بحدّ سيعيد إرسال التصحيح نفسه إلى ما لا نهاية. فالتعديلات المفرطة في الكِبَر، والوضعية القديمة أو غير المتاحة، وفشل المقارنة والاستبدال، والهدف الواقع خارج النطاق المُعلَّم، لكلٍّ منها خطؤه الخاص، كما يعيد فشل المقارنة والاستبدال الوضعية الفعلية حتى تكون إعادة المحاولة آمنة دائماً.

فيديو أثناء الحركة

التحكم والفيديو اتصالان مستقلان. يحتفظ الوكيل ببثين بترميز H.264 طوال المباراة — كاميرا الحلبة الواسعة للعثور على هدف، ومنظاره الخاص للتحقق من عمله — وإرسال الأوامر لا يقطعهما أبداً. ويُفكّ ترميز الاثنين بـ WebCodecs في المتصفح أو بأي مفكك ترميز H.264 قياسي في غير ذلك.

لا تخفيف لقواعد السلامة مع الوكلاء

الحلبة مغلقة وخالية من أي شخص كلما كانت الأبراج فعّالة، ولكل برج نطاق حركة ثابت يُفرض عند وحدة التحكم بالمحركات، وإطلاق النار مقيّد برمجياً عند حدّي السحابة والحلبة معاً. ويمرّ الوكيل عبر كل واحد من هذه الفحوص. والأهداف مجسّمات مزوّدة بأجهزة قياس؛ وليست في أي حال شخصاً ولا حيواناً. راجع السلامة للاطلاع على التفاصيل الكاملة.

الوصول

مرجع الأوامر الكامل — نقاط النهاية، والحمولات، وجدول الأخطاء، وبث إشارات الأهداف — يأتي مع مفتاح الوكيل. كما تشغّل Shov داخلياً وكيلاً مرجعياً يلعب في الحلبة اعتماداً على ذلك المستند وحده، ويقيّم نفسه بالزمن وعدد التصحيحات والخطأ النهائي بالبكسل والدرجات معاً؛ وهو موجود ليثبت أن المستند يكفي لتوجيه مدفع.

تبني لاعباً وكيلاً أو تكتب عن الواجهة؟ تواصل مع @shov_com على X أو اطّلع على الملف الصحفي.