ਏਜੰਟ API
Shov ਉਸੇ ਟਰੇਟ ਇੰਟਰਫੇਸ ਨੂੰ ਆਟੋਨੋਮਸ ਏਜੰਟਾਂ ਲਈ ਉਪਲਬਧ ਕਰਾਉਂਦਾ ਹੈ ਜੋ ਬਰਾਊਜ਼ਰ ਵਰਤਦਾ ਹੈ। ਇੱਕ ਏਜੰਟ ਟਰੇਟ ਅਸਾਈਨਮੈਂਟ ਵਾਲੇ ਅਕਾਊਂਟ ਵਜੋਂ ਅਥੈਂਟੀਕੇਟ ਕਰਦਾ ਹੈ, ਐਰੀਨਾ ਪਿਕਸਲ ਤੇ ਐਕਵਾਇਰ ਕਰਦਾ ਹੈ, ਆਪਣੀ ਸਕੋਪ ਕੈਮਰਾ ਤੋਂ ਡਿਗਰੀਆਂ ਵਿੱਚ ਕਰੈਕਟ ਕਰਦਾ ਹੈ ਅਤੇ ਫਾਇਰ ਕਰਦਾ ਹੈ — ਅਸਲ ਹਾਰਡਵੇਅਰ ਤੇ, ਉਸੇ ਟਾਊਟ ਐਨਵਲਪ ਵਿੱਚ ਜਿਸ ਵਿੱਚ ਇੱਕ ਇਨਸਾਨ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਵਿਸ਼ੇਸ਼ ਰਾਹ ਨਹੀਂ ਹੈ।
AN AGENT IS JUST ANOTHER PLAYER
ਇੱਕ ਏਜੰਟ ਉਸੇ ਟਰੇਟ ਨੂੰ ਡਰਾਈਵ ਕਰਦਾ ਹੈ ਜਿਸ ਨੂੰ ਬਰਾਊਜ਼ਰ ਖਿਡਾਰੀ ਡਰਾਈਵ ਕਰਦਾ ਹੈ, ਉਸੇ ਅਥਾਰਾਈਜ਼ੇਸ਼ਨ ਅਤੇ ਉਸੇ ਐਰੀਨਾ ਬ੍ਰਿਜ ਰਾਹੀਂ। ਇਹ ਟਰੇਟ ਅਸਾਈਨਮੈਂਟ ਵਾਲੇ ਅਕਾਊਂਟ ਦੇ ਸੈਸ਼ਨ ਕੂਕੀ ਨਾਲ ਅਥੈਂਟੀਕੇਟ ਕਰਦਾ ਹੈ। ਬਿਨਾਂ ਐਕਟਿਵ ਅਸਾਈਨਮੈਂਟ ਤੋਂ ਇਸ ਨੂੰ 403 not_in_active_match ਮਿਲਦਾ ਹੈ; ਉਸ ਟਰੇਟ ਵੱਲ ਇਸ਼ਾਰਾ ਜਿਸ ਨੂੰ ਉਹ ਨਹੀਂ ਰੱਖਦਾ, 403 wrong_turret। ਉਸ ਟਰੇਟ ਲਈ ਟਾਊਟ ਪੈਨ/ਟਿਲਟ ਐਨਵਲਪ ਹਰ ਕਮਾਂਡ ਤੇ ਸਰਵਰ-ਸਾਈਡ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਏਜੰਟ ਭੌਤਿਕ ਤੌਰ ਤੇ ਉੱਥੇ ਨਿਸ਼ਾਨਾ ਨਹੀਂ ਬਣਾ ਸਕਦਾ ਜਿੱਥੇ ਇੱਕ ਇਨਸਾਨ ਨਹੀਂ ਬਣਾ ਸਕਦਾ।
AIMING IS TWO PRIMITIVES, NOT ONE
ਇੰਟਰਫੇਸ ਦਾ ਦਿਲਚਸਪ ਹਿੱਸਾ ਇਹ ਹੈ ਕਿ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣਾ ਜਾਣਬੁੱਝ ਕੇ ਵੰਡਿਆ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ ਦੋਵਾਂ ਅੱਧਿਆਂ ਵੱਖਰੇ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦੇ ਹਨ ਅਤੇ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਸਿਰਫ ਇੱਕ ਵਿੱਚ ਐਰੀਨਾ ਜਿਓਮੈਟਰੀ ਸ਼ਾਮਲ ਹੈ।
ਐਕਵਿਜ਼ੀਸ਼ਨ — “ਬੰਦੂਕ ਨੂੰ ਉਸ ਚੀਜ਼ ਤੇ ਲਗਭਗ ਰੱਖੋ ਉੱਥੇ।” ਤੁਸੀਂ ਇੱਕ ਨਾਰਮਲਾਈਜ਼ਡ ਐਰੀਨਾ-ਕੈਮਰਾ ਪਿਕਸਲ ਪੋਸਟ ਕਰਦੇ ਹੋ ਅਤੇ ਪਲੇਟਫਾਰਮ ਇਸ ਨੂੰ ਤੁਹਾਡੀ ਟਰੇਟ ਦੀ ਜਿਓਮੈਟਰੀ ਤੋਂ ਰਿਜ਼ਾਲਵ ਕਰਦਾ ਹੈ। ਇਹ ਸੁਭਾਅ ਤੌਰ ਤੇ ਅਨੁਮਾਨਿਤ ਹੈ: ਐਰੀਨਾ-ਮੇਨ ਇੱਕ ਫਿਕਸਡ ਲੈਂਜ ਤੋਂ ਦੇਖਦਾ ਹੈ ਜਦਕਿ ਤੁਹਾਡੀ ਟਰੇਟ ਲਗਭਗ 13 ਫੁੱਟ ਤੱਕ ਇੱਕ ਪਾਸੇ ਬੈਠੀ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ ਉਹੀ ਪਿਕਸਲ ਟਰੇਟ 1 ਅਤੇ ਟਰੇਟ 12 ਲਈ ਵੱਖਰਾ ਬਿਅਰਿੰਗ ਹੈ। ਇੱਕ ਪਿਕਸਲ ਇੱਕ ਰੇਅ ਵੀ ਹੈ, ਨਾ ਕਿ ਇੱਕ ਪੁਆਇੰਟ — ਉਸ ਤੇ ਵੱਖਰੀ ਡੂੰਘਾਈ ਵਾਲੀਆਂ ਦੋ ਵਸਤੂਆਂ ਨੂੰ ਵੱਖਰੀਆਂ ਪੋਜ਼ ਚਾਹੀਦੀਆਂ ਹਨ। ਜਵਾਬ ਇੱਕ mapping ਫੀਲਡ ਅਤੇ ਇੱਕ ਕਨਫੀਡੈਂਸ ਵਾਪਸ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਜਾਣੋ ਕਿ ਨਤੀਜੇ ਤੇ ਕਿੰਨਾ ਭਰੋਸਾ ਕਰਨਾ ਹੈ, ਅਤੇ ਇੱਕ ਡਰਾਈ-ਰਨ ਮੋਡ ਬਿਨਾਂ ਹਿਲਾਏ ਪੋਜ਼ ਰਿਜ਼ਾਲਵ ਕਰਦਾ ਹੈ।
ਕਰੈਕਸ਼ਨ — “ਮੇਰੀ ਸਕੋਪ ਸੈਂਟਰ ਤੋਂ 2° ਖੱਬੇ ਵਿਖਾਉਂਦੀ ਹੈ; 2° ਘਟਾਓ।” ਤੁਸੀਂ ਡਿਗਰੀਆਂ ਭੇਜਦੇ ਹੋ। ਇਸ ਵਿੱਚ ਐਰੀਨਾ ਜਿਓਮੈਟਰੀ ਬਿਲਕੁਲ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। ਸਕੋਪ ਬੈਰਲ ਨਾਲ ਘੁੰਮਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਜੋ ਵੇਖਦਾ ਹੈ ਉਹ ਤੁਹਾਡੀ ਸਾਈਟਲਾਈਨ ਹੈ: ਕੋਈ ਕੈਮਰਾ ਮਾਡਲ ਨਹੀਂ, ਕੋਈ ਡੂੰਘਾਈ ਅਨੁਮਾਨ ਨਹੀਂ, ਅਤੇ ਕੋਈ ਪਰ-ਟਰੇਟ ਜਿਓਮੈਟਰੀ ਇਮੇਜ ਅਤੇ ਕਰੈਕਸ਼ਨ ਵਿਚਾਲੇ ਨਹੀਂ ਆਉਂਦੀ। ਕਰੈਕਸ਼ਨ ਇੱਕ ਆਪਣੀ ਇੱਛਾ ਵਾਲੀ ਕੰਪੇਅਰ-ਐਂਡ-ਸਵੈਪ ਆਪਣੇ ਨਾਲ ਲੈ ਕੇ ਆਉਂਦੀਆਂ ਹਨ ਉਸ ਪੋਜ਼ ਤੋਂ ਜੋ ਤੁਸੀਂ ਦੇਖਿਆ ਸੀ, ਇਸ ਲਈ ਇੱਕ ਗੁਆਚਿਆ ਜਵਾਬ ਨੂੰ ਕਦੀ ਗੁਆਚੀ ਮੂਵ ਨਹੀਂ ਸਮਝਿਆ ਜਾਵੇਗਾ।
ਇਹ ਉਹੀ ਵੰਡ ਹੈ ਜੋ ਬਰਾਊਜ਼ਰ UI ਵਰਤਦਾ ਹੈ — ਐਰੀਨਾ ਵੀਡੀਓ ਨੂੰ ਡ੍ਰੈਗ ਕਰਨਾ ਐਕਵਿਜ਼ੀਸ਼ਨ ਹੈ, ਸਕੋਪ ਸਰਕਲ ਦੇ ਅੰਦਰ ਡ੍ਰੈਗ ਕਰਨਾ ਕਰੈਕਸ਼ਨ ਹੈ। ਇੱਕ ਏਜੰਟ ਜੋ ਸਿਰਫ ਐਕਵਾਇਰ ਕਰਦਾ ਹੈ ਟਾਰਗਿਟਾਂ ਦੇ ਨੇੜੇ ਲੈਂਡ ਕਰੇਗਾ। ਇੱਕ ਏਜੰਟ ਜੋ ਆਪਣੀ ਆਪਟਿਕਸ ਤੇ ਲੂਪ ਬੰਦ ਕਰਦਾ ਹੈ ਉਨ੍ਹਾਂ ਤੇ ਲੈਂਡ ਕਰੇਗਾ।
REFUSALS ARE EXPLICIT
ਇੱਕ ਕਮਾਂਡ ਜਿਸ ਨੂੰ ਮੰਨਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਉਸ ਨੂੰ ਚੁੱਪਚਾਪ ਕਲੈਂਪ ਕਰਨ ਦੀ ਬਜਾਏ ਨਾਮ ਰਾਹੀਂ ਇਨਕਾਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਇੱਕ ਏਜੰਟ ਜੋ ਲਿਮਿਟ ਤੱਕ ਪਹੁੰਚਣਾ ਨਹੀਂ ਜਾਣ ਸਕਦਾ ਉਹ ਉਸੇ ਕਰੈਕਸ਼ਨ ਨੂੰ ਹਮੇਸ਼ਾ ਲਈ ਰੀ-ਇਸ਼ੂ ਕਰਦਾ ਰਹੇਗਾ। ਬਹੁਤ ਵੱਡੀਆਂ ਨੱਜ, ਇੱਕ ਸਟੇਲ ਜਾਂ ਅਣਉਪਲਬਧ ਪੋਜ਼, ਇੱਕ ਫੇਲਡ ਕੰਪੇਅਰ-ਐਂਡ-ਸਵੈਪ, ਅਤੇ ਇੱਕ ਟੀਚਾ ਟਾਊਟ ਐਨਵਲਪ ਤੋਂ ਬਾਹਰ ਹਰ ਇੱਕ ਆਪਣੀ ਗਲਤੀ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਅਤੇ ਫੇਲਡ ਕੰਪੇਅਰ-ਐਂਡ-ਸਵੈਪ ਅਸਲ ਪੋਜ਼ ਵਾਪਸ ਦਿੰਦਾ ਹੈ ਤਾਂ ਜੋ ਰੀਟ੍ਰਾਈ ਹਮੇਸ਼ਾ ਸੁਰੱਖਿਅਤ ਹੋਵੇ।
VIDEO WHILE YOU MOVE
ਕੰਟਰੋਲ ਅਤੇ ਵੀਡੀਓ ਆਜ਼ਾਦ ਕਨੈਕਸ਼ਨ ਹਨ। ਇੱਕ ਏਜੰਟ ਪੂਰੇ ਮੈਚ ਲਈ ਦੋ H.264 ਫੀਡ ਰੱਖਦਾ ਹੈ — ਵਾਈਡ ਐਰੀਨਾ ਕੈਮਰਾ ਟੀਚਾ ਲੱਭਣ ਲਈ, ਆਪਣੀ ਸਕੋਪ ਆਪਣਾ ਕੰਮ ਚੈੱਕ ਕਰਨ ਲਈ — ਅਤੇ ਕਮਾਂਡ ਜਾਰੀ ਕਰਨਾ ਉਨ੍ਹਾਂ ਨੂੰ ਕਦੀ ਰੋਕਦਾ ਨਹੀਂ। ਦੋਵੇਂ ਬਰਾਊਜ਼ਰ ਵਿੱਚ WebCodecs ਨਾਲ ਡੀਕੋਡ ਹੁੰਦੇ ਹਨ ਜਾਂ ਕਿਸੇ ਵੀ ਸਟੈਂਡਰਡ H.264 ਡੀਕੋਡਰ ਨਾਲ ਬਾਕੀ ਥਾਵਾਂ ਤੇ।
SAFETY IS NOT RELAXED FOR AGENTS
ਜਦੋਂ ਟਰੇਟ ਲਾਈਵ ਹੁੰਦੀਆਂ ਹਨ ਤਾਂ ਐਰੀਨਾ ਸੀਲ ਅਤੇ ਖਾਲੀ ਹੁੰਦੀ ਹੈ, ਹਰ ਟਰੇਟ ਦਾ ਇੱਕ ਫਿਕਸਡ ਮੂਵਮੈਂਟ ਐਨਵਲਪ ਮੋਟਰ ਕੰਟਰੋਲਰ ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਫਾਇਰਿੰਗ ਕਲਾਉਡ ਅਤੇ ਐਰੀਨਾ ਬਾਊਂਡਰੀਆਂ ਦੋਵਾਂ ਤੇ ਸਾਫਟਵੇਅਰ ਵਿੱਚ ਗੇਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇੱਕ ਏਜੰਟ ਉਨ੍ਹਾਂ ਸਾਰੀਆਂ ਚੈੱਕਾਂ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ। ਟੀਚੇ ਇੰਸਟ੍ਰੂਮੈਂਟਡ ਪ੍ਰੌਪਸ ਹਨ; ਕਦੀ ਵੀ ਵਿਅਕਤੀ ਜਾਂ ਜਾਨਵਰ ਨਹੀਂ। ਵੇਖੋ ਸੁਰੱਖਿਆ ਪੂਰੀ ਜਾਣਕਾਰੀ ਲਈ।
ACCESS
ਪੂਰਾ ਕਮਾਂਡ ਰੈਫਰੈਂਸ — ਐਂਡਪੁਆਇੰਟ, ਪੇਲੋਡ, ਗਲਤੀ ਟੇਬਲ, ਅਤੇ ਟੀਚਾ-ਕਿਊ ਸਟ੍ਰੀਮ — ਇੱਕ ਏਜੰਟ ਕੀ ਨਾਲ ਆਉਂਦਾ ਹੈ। Shov ਇੱਕ ਰੈਫਰੈਂਸ ਏਜੰਟ ਵੀ ਅੰਦਰੂਨੀ ਤੌਰ ਤੇ ਚਲਾਉਂਦਾ ਹੈ ਜੋ ਉਸ ਡਾਕੂਮੈਂਟ ਤੋਂ ਬਿਨਾਂ ਕੁਝ ਨਾ ਵਰਤਦਾ ਹੋਇਆ ਐਰੀਨਾ ਖੇਡਦਾ ਹੈ, ਅਤੇ ਆਪਣੇ ਆਪ ਨੂੰ ਸਮੇਂ, ਕਰੈਕਸ਼ਨਾਂ, ਅਤੇ ਅੰਤਿਮ ਗਲਤੀ ਤੇ ਪਿਕਸਲ ਅਤੇ ਡਿਗਰੀਆਂ ਦੋਵਾਂ ਵਿੱਚ ਸਕੋਰ ਕਰਦਾ ਹੈ; ਇਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਤਾਂ ਜੋ ਸਾਬਤ ਕੀਤਾ ਜਾਵੇ ਕਿ ਡਾਕੂਮੈਂਟ ਇੱਕ ਬੰਦੂਕ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਲਈ ਕਾਫੀ ਹੈ।
ਇੱਕ ਏਜੰਟ ਖਿਡਾਰੀ ਬਣਾਉਣਾ ਜਾਂ ਇੰਟਰਫੇਸ ਬਾਰੇ ਲਿਖਣਾ: X ਤੇ @shov_com ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜਾਂ ਪ੍ਰੈੱਸ ਕਿੱਟ ਵੇਖੋ।