أصبحت ألعاب FPS (أول شخص مطلق النار ، أول شخص مطلق النار) جزءًا لا يتجزأ من صناعة ألعاب الفيديو منذ ظهور
Wolfenstein 3D الأكثر شعبية في عام 1992. منذ ذلك الحين ، تطور هذا النوع: لقد تحسنت الرسوم ، وزادت ميزانيات التطوير ، وتطور النظام البيئي للرياضة الإلكترونية. ولكن ماذا عن أساسياتهم - ميكانيكا الرماية؟ كيف كان التطور في هذه الجبهة؟ لماذا تبدو الأسلحة حقيقية في بعض الألعاب ، وتشبه اللعب في ألعاب أخرى؟
Hitscan
في الحقبة السابقة ، استخدمت العديد من الألعاب
لتحويل المشاهد ثلاثية الأبعاد إلى صور ثنائية الأبعاد تقنية تُسمى
raycasting . يتيح Raycasting للمحرك تحديد الكائن الأول الذي تتقاطع به الحزمة. لكن بعد ذلك سأل المطورون السؤال التالي: "ماذا لو قمت بإصدار حزمة من برميل السلاح لمحاكاة رصاصة؟" وبفضل هذه الفكرة ، وُلدت شركة hitcan ("مسح الضربات").
سبيل المثال البثفي معظم تطبيقات الأسلحة باستخدام hitscan ، عندما يقوم لاعب بإطلاق النار ، يقوم المحرك الفعلي بالعمليات التالية:
- يحدد الاتجاه الذي يشير فيه السلاح.
- يطلق شعاعًا من برميل سلاح على مسافة محددة مسبقًا.
- يستخدم البث الشعاعي لتحديد ما إذا كانت الأشعة قد وصلت إلى الكائن.
إذا قرر المحرك أن الجسم على خط النار ، فسيبلغه بذلك ، قائلاً إن الرصاصة "أصابته". ثم يمكن للهدف إجراء جميع الحسابات اللازمة لتسجيل الضرر.
من الوحدة . تشير النقطة A إلى وجود سلاح ينبعث منها شعاع إلى أقصى نقطة B. تصطدم الحزمة بمكعب يبلغ المحرك عن إصابته به.Hitscan بسيط بطبيعته ، لكن يمكن إجراء العديد من التعديلات المختلفة لإضافة منطق آخر:
- إذا تابعنا الحزمة خارج الكائن الأول الذي يضربه ، فيمكننا اختراق العديد من الكائنات على الخط ، مثل المسدس في Quake
- إذا أزلنا النطاق الأقصى من الحزمة ، فسنحصل على ليزر يطير إلى الأبد حتى يصل إلى شيء ما
- يمكنك جعل بعض الأسطح عاكسة برمجيًا حتى ترتد الرصاصة منها
من المراقبة من جانب. جينجي حرف انحراف القدرة هو مثال على سطح عاكس.الميزة الرئيسية لراديو هو سرعة المعالجة الهائلة. يتم احتسابها بسرعة ولا تتطلب ذاكرة إضافية أو وقت المعالج لإنشاء كائن مادي جديد. هذا يعني أن رمز الشبكة اللازم لمزامنة العديد من العملاء سيكون ضئيلًا ، لأن الخادم يحتاج فقط إلى تتبع اتجاه الحزمة. ويتحقق الارتداد أيضًا ببساطة ، لمحاكاة هذا التأثير ، يكفي إضافة انحراف طفيف في مشهد السلاح.
لذلك ، ليس من المستغرب أن يتم استخدام hitscan في منطق إطلاق النار للعديد من الألعاب. الأمثلة الكلاسيكية هي
Wolfenstein 3D و
Doom ، لكن هذه التكنولوجيا تستخدم أيضًا في الألعاب الحديثة. شخصيات مثل Soldier 76 و McCree و
Overwatch Doom Widow تستخدم الأسلحة مع hitcan ، وتستند معظم الأسلحة الموجودة في
Call of Duty أيضًا إلى hitscan.
Overwatch، Call of Duty، Wolfenstein 3Dفلماذا لا يتم استخدام هذا النهج في جميع الألعاب؟
أولاً ، كما لاحظت على الأرجح ، تتمتع الأشعة بسرعة عالية بلا حدود ، أي أنها تصل إلى نقطة النهاية على الفور. لا يوجد وقت لحركة رصاصة بين إطلاق رصاصة وضرب كائن. هذا يعني أنه إذا أصابت الأشعة جسم ما ، فمن المستحيل تجنب الرصاصة ، حتى لو كان الهدف على بعد عدة كيلومترات من المشغل.
هالة. لاحظ أن وميض وميض آثار ضرب الأرض تحدث في وقت واحد.ثانياً ، تستخدم معظم التطبيقات hitscan حزمًا مباشرة. هذا يعني أنه من الصعب مراعاة الرياح والجاذبية والعوامل الخارجية الأخرى التي يمكن أن تؤثر على الرصاصة بعد الخروج من الجذع. يمكن للمبرمجين إضافة جميع أنواع الحيل بحيث يقلد الشعاع الرصاص الحقيقي ، ولكن بمجرد أن يقوم اللاعب "بتصوير" الحزمة ، لا توجد طريقة لتغيير طريقه في الوسط.
في العديد من الألعاب غير الرسمية ، لا يزال يتم استخدام hitscan لأنه يبسط منحنى التعلم لمعظم اللاعبين الجدد. ولكن ماذا عن الألعاب التي تسعى إلى نقل الإحساس "الحقيقي" بإطلاق النار؟ مع مثل هذه القيود ، من المستحيل تحقيق ذلك ، لذلك هناك حاجة إلى طريقة مختلفة.
المقذوفات من الجسم الطائر
قد يبدو هذا المصطلح معقدًا ، لكن الفكرة بسيطة جدًا على المستوى التجريدي. كل رصاصة أو قذيفة تطلق من سلاح تخلق كائنًا ماديًا جديدًا في مكان الحادث. لديه كتلة خاصة به ، والسرعة وصندوق الإحاطة لجهة الاتصال (hitbox) ، والتي يتم تتبعها بواسطة محرك اللعبة.
ماكس باين 3تتجلى فوائد المقذوفات تمامًا في الألعاب التي تحظى فيها الواقعية بالأولوية القصوى. نظرًا لوجود كل كائن طيران بمفرده ، يمكننا أن نأخذ في الاعتبار تأثير الرياح والاحتكاك والجاذبية ودرجة الحرارة - أي قوة يجب أن تعمل على الرصاصة. الآن وقد أصبحنا قادرين على تغيير الفيزياء ، يمكن للاعبين استخدام أسلحة أكثر تنوعًا ، وليس مجرد مسدسات وأشعة ليزر بسيطة ؛ يمكننا إضافة القنابل اليدوية والصواريخ إلى ترسانة لدينا.
نظرًا لأن الرصاص في مثل هذا النظام لا يتحرك بسرعة الضوء ، فمن الممكن أيضًا تحقيق الخصائص الزمنية:
- رصاصة الوقت المستخدمة من قبل ماكس باين ، قناص النخبة و Superhot .
- وقت الرصاصة ، أي عند إطلاق النار على مسافات طويلة (أو عند إطلاق قذيفة تتحرك ببطء) ، يصبح الاستباق حرجًا.
- تأخر انفجار القذائف ، مثل القنابل اليدوية
بسبب هذه الحسابات الإضافية ، تصبح المعالجة أغلى من استخدام hitscan. لضمان التزامن ، يتعين على الخوادم القيام بالكثير من العمل ، من الضروري إزالة التناقضات أو التعارضات في المنطق من جانب العميل ، بحيث يكون جميع اللاعبين داخل نفس الخادم في نفس الظروف.
Superhot ، ساحة المعركة 1 ، Overwatchهناك العديد من الحلول لزيادة الإنتاجية. على سبيل المثال ، يمكن للمحرك تخزين مجموعة من الكائنات التي تم تحميلها قبل بدء اللعبة و "تشغيلها" حسب الحاجة. بعد أن تصل إلى السطح ، يمكنك لعب الرسوم المتحركة الخاصة بالقذائف وإيقاف الرصاصة ، مما يوفرها للمستقبل. تتيح لك هذه الطريقة حفظ موارد الحوسبة والذاكرة التي يشغلها إنشاء الكائنات وتدميرها.
هناك أيضًا العديد من الطرق لإجراء العمليات الحسابية ، ولكن على مستوى عالٍ ، يكمن الاختلاف في المكان الذي يقررون فيه معالجة "براعة" اللعبة - وحدة من الوقت:
- يتم حساب الساعة بشكل منفصل عن منطق العرض ، أي أن اللعبة ستحصل على نسخة أكثر دقة من الكائنات حتى عند تخطي الإطارات. هناك حاجة إلى مزيد من المنطق لحساب الوقت المحدد المنقضي منذ العرض السابق.
- حساب مقياس في كل إطار ؛ فيزياء ملزمة لمعدل الإطار. إذا قمت بتعطيل القيود المفروضة على الحد الأقصى لمعدل الإطارات أو إذا بدأت اللعبة في تخطي الإطارات ، فسوف تتسارع الفيزياء في العالم أو تبطئ.
تكون تأثيرات ربط الحركة بالإجراءات واضحة للعيان عندما تتحرك القذائف بسرعة كافية للسفر مسافة كبيرة إلى حد ما بين التدابير. قد تنشأ المواقف عندما "تمر" الكائنات عبر بعضها البعض ، لأنها في المحرك لا تتقاطع أبدًا.
كل هذا يبدو معقدًا ، حيث يعتقد الكثير من الناس أن هذه طريقة جديدة نسبيًا ؛ ومع ذلك ، فإنه في الواقع جاء قبل hitscan! قبل ألعاب FPS ، كان هناك العديد من الرماة من أعلى إلى أسفل مثل
الكويكبات أو
Space Invaders أو
Galaxian . هذه هي ألعاب أركيد في السبعينيات ، حيث تم بالفعل تنفيذ المقذوفات من القذائف ، على الرغم من أنها بدائية للغاية.
الكويكبات. من الصعب جدا رؤية الأصداف ، لكنها كذلك!ولكن حتى مع كل هذه الميزات ، لا يمكننا إعادة إنشاء نموذج واقعي للعالم الحقيقي. هل هناك أي طريقة للاستفادة من كلتا الطريقتين؟
أنظمة هجينة
معظم محركات اللعبة قادرة على التعامل مع كلا النوعين من عمليات محاكاة الرصاص: hitscan و ballistics. هذا يسمح لك بإدراك مجموعة كبيرة من الأسلحة. تحتوي ألعاب مثل
Halo و
GTA و
Half-Life على أسلحة يمكنها دعم كلا النوعين من الفيزياء.
هالة. هجوم بندقية يستخدم hitscan؛ نيدلر يستخدم المقذوفاتيمكن للمطورين أيضًا مزج كلتا التقنيتين لتغطية نقاط الضعف في كل نظام وتوفير سلوك أكثر واقعية. على سبيل المثال ، للقضاء على مشكلة تمرير الكائنات عبر بعضها البعض ، يمكن أن تنبعث كل رصاصة في كل دورة من المحرك شعاع. يسمح ذلك للمحرك بمعرفة ما إذا كان أي من الأشعة يتقاطع بين المقاييس ، ويتصادم في الهواء.
يمكن أيضًا دمجها لتحسين ميزات اللعبة. مثال رائع على ذلك هو سلسلة
Sniper Elite . بعد سحب الزناد ، يستخدم المحرك hitscan لتحديد ما إذا كانت اللقطة قريبة بدرجة كافية من أي كائن يمكن اكتشافه لتحريك الحركة البطيئة. إذا كان الأمر كذلك ، ثم يتم إطلاق رصاصة مع حساب المقذوفات في وضع "وقت الرصاص".
قناص النخبةلذلك ، درسنا أساسيات سلوك الرصاص في ألعاب الفيديو! ومن المثير للاهتمام ، أن التحسينات في هذا المجال هي أساسًا التحسينات والتحسينات الصغيرة ، وليس في المعالجة على نطاق واسع. بعد إصدار الألعاب الثورية القليلة الأولى ، لم نحقق أي خطوات أو اختراقات مهمة.
ماذا بعد؟ كيف سيتطور هذا المجال في المستقبل؟
لا أعتقد أنه في المستقبل القريب سيختفي النهج المختلط ، لأنه يوفر فوائد إضافية. لكنني أتوقع أنه سيكون هناك العديد من التحسينات من جانب المقذوفات من القذائف. يستمر تواتر حساب الساعة في الزيادة (نظرًا لتزايد طاقة وحدة المعالجة المركزية) ، ويمكننا الاقتراب من الحد المقارب لمحاكاة رصاصة "العالم الحقيقي".