مرحبًا ، أنا كيفن لي ، مهندس برمجيات في فريق أنظمة ألعاب VALORANT. فريقنا مسؤول عن تطوير العديد من الأنظمة الأساسية التي تدعم طريقة لعب VALORANT ، بما في ذلك الحركة والقتال والإدخال. في هذا المنشور ، سأخوض في أحد الأنظمة الأساسية في لعبة FPS: اضغط على التسجيل.
في لعبة مثل VALORANT ، يمكن القول إن تسجيل الضربات هو أحد أهم الأنظمة بالنظر إلى أن الفرق بين الفوز أو الخسارة يمكن أن ينحصر في ضربة رأس واحدة. هدفنا كمطورين هو التأكد من أنه عندما يطلق اللاعب تسديدة ، تكون نتيجة التسديدة واضحة ، وتشعر بأنها صحيحة ، وقبل كل شيء ، صحيحة.
سنرى أحيانًا منشورات أو نتلقى رسائل من لاعبين بها مقاطع حيث يبدو أن الضربة reg معطلة. نحن نأخذ كل هذه التقارير على محمل الجد ، ونراجع كل مقطع فيديو إطارًا تلو الآخر للتحقق من أن النظام يعمل بالشكل المتوقع.
ومع ذلك ، نعتقد أن التسجيل الناجح في VALORANT في مكان جيد جدًا الآن. نعم ، ربما لا تزال هناك أخطاء في حالة الحافة وسنأخذها دائمًا على محمل الجد. نحن نتطلع باستمرار إلى تحسين جودة ووضوح جميع أنظمتنا.
الدقة مقابل الوضوح
في التصحيح بيتا 0.50، فقد شهدنا ارتفاعًا في عدد التقارير حول مشكلات تسجيل النتائج. بعد الاطلاع على تقارير المشغل ومقاطع الفيديو والاختبار الداخلي الممتد ، تمكنا من تحديد عدد قليل من أخطاء الحالة المتطورة مع تسجيل النتائج ، ولكن لم يكن أي منها شديدًا بما يكفي لشرح كمية التقارير التي تلقيناها. عند المراجعة الدقيقة ، كانت غالبية المقاطع لديها مشاكل ليس في صحتها ، ولكن مع الوضوح. تمت معالجة اللقطات بشكل صحيح ، لكن الملاحظات المرئية للكرة كانت تقدم نتيجة مضللة للاعب. يسلط هذا الضوء على تمييز مهم بين الدقة والوضوح.
في حين أن كلاهما مهم في ضمان "الإحساس" بالتصوير ...
- يشير الصواب إلى نتيجة خطأ في التسديدة (على سبيل المثال ، اصطدم الرصاص بالرأس ولكن يتم تسجيله كجسم أو لاعبين أعداء يظهرون بشكل مختلف على العميل مقارنة بالخادم)
- يشير الوضوح إلى صعوبة قراءة عرض اللقطة (على سبيل المثال ، اصطدمت الرصاصة بالكتف ، لكن الملاحظات المرئية تجعلها تبدو وكأن الرصاصة أصابت الرأس)
- أخطاء التصحيح أسوأ بكثير من أخطاء الوضوح
نأمل أن تلقي هذه المقالة بعض الضوء على النظام حتى يتمكن الجميع من إلقاء نظرة على طريقة لعبهم وفهم ما يحدث على شاشتهم ، فيما يتعلق بلقطاتهم. سأستعرض كيفية عمل النظام على مستوى عالٍ ، وأشرح ما يحدث منذ اللحظة التي يتم فيها الضغط على زر إطلاق النار ، حتى ظهور طلقة الرأس.
لمزيد من التفاصيل الفنية العميقة ، تحقق من هذه المقالة حول رمز شبكة VALORANT على مدونة Riot Tech.
سأذهب أيضًا إلى بعض الحالات الشائعة التي نراها عندما يتعلق الأمر بتقارير "تسجيل الدخول المكسور" وسأحاول شرح ما يحدث وما نفعله لتحسين الوضوح في تلك السيناريوهات.
من النقر إلى لقطة الرأس
قبل الغوص في ما يحدث عند إطلاق رصاصة ، من المهم أن نفهم كيف تحاكي اللعبة ما يحدث . تتم محاكاة طريقة لعب VALORANT مرتين: مرة على الخادم (سلطة تشغيل المحاكاة) ومرة أخرى على العميل (توقع نتائج الخادم لجعل اللعبة أكثر استجابة).
تتضمن محاكاة اللعبة كل ما يتكون منه العالم بما في ذلك جميع مواقع اللاعب وأي قدرات تطير في الهواء وأي دخان في ساحة المعركة. في كل إطار ، تأخذ اللعبة لقطة من المحاكاة وتستخدم ذلك لعرض إطار على شاشتك. يقوم الخادم أيضًا بذلك لكل إطار من إطاراته (تخطي خطوة التجسيد نظرًا لعدم وجود أحد يشاهد الخادم).
حسنًا ، يطل أحد الأعداء من إحدى الزوايا ، ومع وضع علامة التصويب المذهلة لديك ، فأنت بالفعل محبوس على رأسه ، لذا تضغط على زر الماوس الأيسر لإطلاق النار - ماذا يحدث؟
في اللحظة التي تضغط فيها على مفتاح ، يتم إرسال الإدخال إلى نظام الإدخال الخاص بنا (يخضع لقدر صغير من زمن انتقال الأجهزة / نظام التشغيل). في كل إطار لعبة ، سيعالج نظام الإدخال جميع المدخلات التي تلقاها منذ الإطار السابق. عندما تطلق لقطة ، يتم إرسال إدخال "إطلاق النار" هذا إلى الخادم جنبًا إلى جنب مع طابع زمني للإطار في المحاكاة التي حدثت فيها اللقطة.
من المهم ملاحظة أن هذا الطابع الزمني وفقًا لما يتم عرضه حاليًا على شاشتك وقت الإدخال الذي يتم تلقيه بواسطة VALORANT. علينا الآن أن نتبع اللقطة في عمليتي محاكاة مختلفتين: العميل والخادم .
لنبدأ بالعميل أو بجهازك المحلي. مباشرة بعد إرسال اللقطة إلى الخادم ، يبدأ العميل في العمل على عرض وميض الفوهة ومقتفي اللقطة. في أقرب وقت ، سيحدث هذا إطارًا واحدًا بعد إطلاق الإدخال نظرًا لأن اللعبة تحتاج إلى عرض إطار جديد على شاشتك. هذا مهم لأنه يعني أن الإطار الذي تمت معالجة اللقطة ليس هو نفس الإطار الذي يتم عرض المتتبع ، إنه في الواقع إطار واحد على الأقل من قبل.
قد يؤدي هذا أحيانًا إلى فشل في وضوح اللقطة. الطريقة الشائعة التي يمكن بها حل هذا الخلل هي تأخير الرصاصة. لا نقوم بهذا لأن تأخير الرمز النقطي يضيف زمن انتقال للإدخال نريد تقليله في VALORANT. فيما يتعلق بتأكيد الضرب ، ينتظر العميل حتى يسمع مرة أخرى من الخادم على النتيجة قبل عرض تأكيد النقر. من أجل ضمان الاتساق بين جميع المستخدمين ولمنع الغشاشين من اختراق عملائهم لإعطاء نتائج خاطئة ، فإن نتائج اللقطة هي موثوقة بالكامل من الخادم .
وفي الوقت نفسه ، يتلقى الخادم في النهاية رسالة من العميل تفيد بإطلاق رصاصة. بسبب وقت استجابة الإنترنت ، مر الوقت منذ إطلاق هذه اللقطة. لضمان إطلاق اللقطة على نفس المحاكاة التي تم عرضها للاعب ، يعيد الخادم المحاكاة إلى الطابع الزمني الذي قدمه العميل قبل تقييم تسجيل الضربة. يتضمن ذلك إعادة وضع اللاعب ووضع الرسوم المتحركة. ثم يرسل نتيجة اللقطة إلى العميل. من أجل هذا المثال ، لنفترض أنها كانت ضربة رأس!
سيتلقى العميل رسالة من الخادم بنتيجة اللقطة ثم يقوم بتشغيل المؤثرات الصوتية والصوت المناسب. في هذه الحالة ، ستكون المؤثرات البصرية والصوتية. نظرًا لأنه يتعين على العميل انتظار الخادم لإخباره بنتيجة اللقطة ، فهناك تأخير بين التتبع وتأثيرات الضربات التي تساوي وقت الرحلة ذهابًا وإيابًا لاتصالك (أي 40 مللي ثانية للخادم = تأخير 80 مللي ثانية بين التتبع والضربة VFX) ، بالإضافة إلى مقدار ضئيل من وقت المعالجة. مع فترات استجابة أعلى ، يمكن أن يصبح هذا التأخير ملحوظًا في الوقت الفعلي.
هذا شيء نعمل بنشاط على تحسينه من منظور الوضوح.
دراسة الحالة 1: ضرب الأهداف المتحركة
في الكثير من التقارير المتعلقة بتسجيل الإصابة ، نرى أن هدف اللقطة قيد التشغيل. دعنا نلقي نظرة فاحصة على ما يحدث بصريًا عندما تصيب إحدى اللقطات بنجاح هدفًا قيد التشغيل. نرى اللاعب يحصل على ضربة رأس ناجحة على اللاعب الذي يركض. لتوضيح هذه المشكلة بسهولة أكبر في هذا المثال ، يعمل العميل بمعدل 60 إطارًا في الثانية. يمكنك أن ترى أنه في الإطار قبل إطلاق المتتبع ، تتماشى الشعيرات المتصالبة مع رأس العدو.
ومع ذلك ، فإن الإطار الذي يظهر فيه المتتبع لم يعد كذلك.
يظهر المقطع الثاني نفس السيناريو ، ولكن مع تسديدة بالكاد تفقد الهدف. عندما تنظر إلى مقطع الفيديو إطارًا تلو الآخر ، يمكنك أن ترى أن العكس هو الصحيح: خط التقاطع الخاص بهم يكون بعيدًا عن الرأس على الإطار قبل التتبع ، ولكن على الرأس الإطار يخرج المتتبع. للوهلة الأولى ، قد تفكر في الإشارة إلى الإطار باستخدام المتتبع والقول "انظر ، من الواضح أن هذه كانت لقطة في الرأس!" عند مراجعة الفيديو أو الإعادة ، نحتاج في الواقع إلى النظر إلى الإطار قبل التتبع للحصول على صورة دقيقة لوقت إطلاق اللقطة.
دعنا نعود إلى المثال الذي أصابته اللقطة وننظر إلى الإطار عندما يتم عرض المؤثرات البصرية. توجد فجوة ملحوظة بين الموقع الحالي للاعب وموقع المؤثرات البصرية الناتجة عن الضربة بسبب التأخير الناجم عن زمن انتقال الإنترنت. قد يكون هذا محيرًا عندما تحاول فهم ما حدث في تسديدتك ، نظرًا لأنك ستركز على الأرجح على الموقع الحالي للعدو ، وليس موقعه في وقت التصوير . يمكن أن يؤدي هذا أيضًا إلى مزيد من الارتباك في سيناريوهات الانحناء / القصف (الذي سننظر إليه في دراسة الحالة 2).
توضح دراسة الحالة هذه عدم وضوح نظام تسجيل النتائج الحالي. من الناحية المثالية ، لا تحتاج إلى فهم كل هذه المعلومات الأساسية لتتمكن من قراءة الموقف بوضوح. بصفتنا مطورين ، فإننا نقر بذلك ونبحث عن طرق لتحسين الوضوح في هذه الحالات.
دراسة حالة 2: الانحناء في المؤثرات البصرية
لذلك دخلت في معركة بالأسلحة النارية من مسافة بعيدة. لندم نفسك في المستقبل ، تضغط باستمرار على الزر الأيسر ثم ترش مسدسك. واحدة على الأقل من تلك الرصاص ستكون رصاصة في الرأس ، أليس كذلك؟ لكن لا ، لقد أصبت 3 طلقات جسدية باستخدام الفاندال ، مما تسبب في 117 ضررًا ، قبل أن تحصل على إصابة في الرأس في المقابل.
غاضبًا ، تذهب لمراجعة اللقطات بعد المباراة ، وتأكد من أن الضربة السيئة كانت تلعب. ترى أن اللاعب العدو كان يرسل بريدًا عشوائيًا في محاولة لتفادي تسديداتك. لدهشتك ، ترى المؤثرات البصرية تضرب أعلى رؤوسهم بينما يجلس اللاعب في القرفصاء. لكن تقرير القتال الخاص بك أظهر فقط طلقات جسدية! ما يعطي؟؟
هذا رابط إلى منشور حقيقي على موقع reddit بعنوان "إصابات الرأس لا تسجل عندما ينحني اللاعب"الافتراضي.
عندما يذهب فريقنا للتحقيق في تقارير التسجيل السيئ ، فإن مثل هذه المواقف هي السبب الأكثر شيوعًا لما يبدو أنه تسجيل غير صحيح للنتائج. في الواقع ، تسجيل الضربات يعمل بشكل صحيح - اللقطات تذهب إلى حيث تصوب (تجاهل الانتشار أو خطأ الحركة) عندما تضغط على زر إطلاق النار ، ويتم تسجيل هذه اللقطة بدقة على الخادم
ومع ذلك ، هناك عدد قليل من العوامل المختلفة التي تجعل هذه الحالة بالذات مضللة بصريًا:
- تم تأخير VFX بسبب تأخر الإنترنت
- يتم عرض ضرب المؤثرات البصرية في موقع تأثير اللقطة الأصلي
- اللاعب المستهدف يتحرك (غالبًا ما يكون رابضًا)
في مثال آخر ، لنفترض أن لدى اللاعب 50 ping. يضرب اللاعب تسديدة في الكتف على لاعب العدو. نظرًا لأننا نحتاج إلى انتظار الخادم لتأكيد الضربة ، فسيكون ذلك بعد 100 مللي ثانية عندما تبدأ الضربة VFX في اللعب على موقع لقطة الجسم. ولكن خلال تلك الـ 100 مللي ثانية ، بدأ لاعب العدو في الانحناء ، وحرك رأسه خلف الضربة المؤثرة التي تم إنتاجها حديثًا. على المدى البعيد وفي حرارة تبادل إطلاق النار ، يمكن الخلط بين إصابة الجسم بالمؤثرات البصرية لضربة رأس في المؤثرات البصرية .
كان هذا سيئًا بشكل خاص أثناء التصحيح التجريبي 0.50 عندما تم تعطيل الدم عن غير قصد للجميع ، وكانت المؤثرات الصوتية الشرارة لدينا أقل وضوحًا في التمييز بين لقطات الرأس والمؤثرات البصرية للجسم. لطالما كان لدينا مؤثرات صوتية منفصلة للإشارة إلى لقطات الجسم مقابل لقطات الرأس ، لكننا ندرك أنهم لم يقرؤوا دائمًا بوضوح في القتال.
هذا فشل في وضوح التسجيل الذي نحاول بنشاط تحسينه. أحد الأشياء التي نجربها هو ربط المؤثرات الصوتية للضرب بجزء الجسم من الشخصية حيث حدثت الضربة ، بحيث تكون هناك علاقة واضحة - حتى مع زمن انتقال مرتفع.
مقارنة بين طلقة الرأس الحالية التي لا تحتوي على دم والتي أصابت المؤثرات البصرية مقارنةً بمؤثرات الصورة الجسدية
تحسينات الوضوح المخطط لها
تسلط دراستا الحالة الضوء على بعض المجالات التي تؤكد فيها نجاحنا الحالي أن المؤثرات البصرية تقصر. أحد التغييرات التي نكررها هو ظهور تأثيرات الدم والشرر على الموضع الحالي للشخصية ، وفقًا لأي جزء من جسمهم أصيب ، ومتابعتهم أثناء تحركهم. يؤدي هذا إلى زيادة الوضوح بشكل كبير في مواقف مثل دراسة الحالة 2 مع الأعداء الرابضين ، لأن التأثير البصري سيتحرك مع حركات أجسادهم.
تتمثل إحدى المقايضة في هذا النهج في أنه سيكون من الممكن أن تتحرك المؤثرات البصرية المؤكدة للضربة خلف الغطاء جنبًا إلى جنب مع الطابع المرفق. ضع في اعتبارك حالة لاعب لديه 100 مللي ثانية من إطلاق النار على لاعب يهزهز في الزاوية. إذا أطلقوا رصاصة على العدو وعادوا على الفور إلى الخلف خلف الزاوية قبل وصول تأكيد الضربة من الخادم ، فقد لا يتمكن مطلق النار من رؤية تأكيد الضربة عند ظهورها.
لقد فكرنا في إضافة جسيمات متعددة ، بعضها يتبع الشخصية والبعض الآخر يظهر على الفور في موقع الضربة ، بناءً على محاكاة العميل ، للتخفيف من هذه المشكلة. ومع ذلك ، يمكن أن يتسبب هذا بدوره في حدوث ارتباك إذا اختلفت عمليات محاكاة العميل والخادم على الإطلاق بشأن نتيجة اللقطة: يجب أن تكون التأثيرات واضحة فيما تمثله حتى يسهل فهم نتيجة اللقطة .
نحن مستمرون في تكرار هذا وتحسينات أخرى للوضوح ونأمل في الحصول على مجموعة من تحديثات الوضوح لمشاركتها قريبًا ، في تصحيح مستقبلي.
استمر في إرسال مقاطع الفيديو
نأمل أن يكون هذا المنشور قد ساعدك في فهم أفضل لكيفية عمل تسجيل النتائج في VALORANT وفهم بشكل أفضل سبب حل اللقطات بالطريقة التي تعمل بها. يرجى الاستمرار في إرسال مقاطع الفيديو إلينا في أي وقت تعتقد فيه أن hit reg يسيء التصرف ، فنحن نبذل قصارى جهدنا لفحصها جميعًا.
حتى إذا لم تكن هناك مشكلة في متناول اليد ، فهذا يساعدنا على تتبع أخطاء تصحيح تسجيل الدخول بشكل أسرع عند حدوثها (يقفز معدل نبضات قلبي أيضًا في كل مرة أرى فيها كلمة "Hit Reg" في أحد مواقع reddit الأعلى تصويتًا).