آشنایی با مکانیسم عمل گلوله‌ها در بازی‌های ویدیویی

یک‌شنبه ۱۳ بهمن ۱۳۹۸ - ۱۳:۰۰
مطالعه 10 دقیقه
بیشتر ما با بازی‌های شوتر اول شخص خاطرات زیادی داریم؛ از سری کانتر استرایک گرفته تا کال آو دیوتی. بااین‌همه، تا‌به‌حال برایتان سؤال بوده که گلوله‌ها در این بازی‌ها چگونه کار می‌کنند؟ در این مقاله، به‌طور ابتدایی با مکانیسم‌های عمل گلوله‌ها آشنا خواهیم شد.
تبلیغات

شوترهای اول شخص (First-Person Shooter) یا به‌اختصار FPS از زمان عرضه‌ی ولفنشتاین 3D در سال ۱۹۹۲، پای ثابت صنعت بازی‌های ویدئویی بوده‌اند. این ژانر تا امروز دستخوش تحولات بسیاری شده‌ است؛ از بهبودهای گرافیکی گرفته تا بودجه‌های سرسام‌آور و اکوسیستم ای‌اسپورتس (eSports). تا‌به‌حال به اساس بازی‌های شوتینگ، یعنی مکانیک شلیک و گلوله‌ها، فکر کرده‌اید؟ دراین‌زمینه هم پیشرفت کرده‌ایم؟ چرا برخی از بازی‌ها حس اسباب‌بازی می‌دهند؛ درحالی‌که برخی دیگر حسی کاملا واقعی و درجه‌یک به کاربران منتقل می‌کنند؟ در این مقاله، به انواع مکانیک‌های شلیک و سیر پیشرفت این مکانیک‌ها اشاره می‌کنیم.

هیت‌اسکن

در نخستین روزهای بازی‌های شوتر، بسیاری از بازی‌های این ژانر مبتنی‌بر تکنیکی به‌نام انتشار اشعه (Raycasting) برای نمایش محیط‌های سه‌بعدی به‌صورت تصاویر دوبعدی (صفحه‌نمایش شما) بودند. انتشار اشعه به موتور اجازه می‌داد اولین شیء متلاقی‌کننده با اشعه را تشخیص دهد. توسعه‌دهندگان به‌فکر افتادند که چرا این اشعه را گلوله در نظر نگیریم که از تفنگ شلیک می‌شود. این ایده به شکل‌گیری هیت‌اسکن (Hitscan) منجر شد.

raycasting

مثالی از انتشار اشعه (Raycasting)

هنگام شلیک از سلاحی با مکانیک هیت‌اسکن، موتور فیزیکی عملیات زیر را انجام می‌دهد:

۱. جهتی را شناسایی می‌کند که سلاح سمت آن قرار گرفته است.۲. اشعه‌ای از لوله‌‌ی تفنگ تا فاصله‌ای تعیین‌شده ارسال می‌کند.۳. از انتشار اشعه برای تعیین برخورد اشعه با شیء استفاده می‌شود.۴. اگر موتور تشخیص دهد شیئی در فاصله‌ی اشعه قرار دارد، آن‌گاه پیام برخورد را ارسال خواهد کرد و سایر محاسبات مانند محاسبه‌ی میزان آسیب به کمک این پیام انجام خواهند شد.

unity hitscan

نقطه‌ی A نمایانگر تفنگ است که حداکثر تا نقطه‌ی B اشعه منتشر می‌کند. این اشعه با مکعب برخورد و موتور اعلام برخورد می‌کند.

تکنیک هیت‌اسکن به همین سادگی است؛ اما با تغییراتی می‌توان پشتیبانی از شرایط و منطق‌های دیگر را به آن افزود:

  • اگر اشعه را پس از برخورد به شیء اول ادامه دهیم، آن‌گاه می‌توانیم آن را از چند شیء نفوذ دهیم؛ مانند تفنگ ریلی (Railgun) که در بازی Quake شاهد آن بودیم.
  • حذف بیشترین فاصله‌ی اشعه به‌معنای پایان‌ناپذیر‌بودن آن است که از این می‌توان در تفنگ‌های لیزری استفاده کرد.
  • با برنامه‌نویسی، برخی سطوح را می‌توان بازتاب‌دهنده کرد تا گلوله‌ها پس از برخورد به این سطوح بازتاب شود و به اشیای دیگری برخورد کند.
overwatch deflect

بازی اورواچ (Overwatch)، نمونه‌ای از سطح بازتاب‌دهنده

در هیت‌اسک با وجود سرعت بسیار زیاد در پردازش، عوامل خارجی مانند جاذبه بر گلوله بی‌تأثیر است و واقع‌گرایانه نیست

بزرگ‌ترین مزیت استفاده از انتشار اشعه سرعت آن است. محاسبه‌ی این تکنیک بسیار سریع است و به حافظه یا زمان پردازش اضافی برای ساخت اشیای فیزیکی جدید نیازی ندارد. به‌دلیل اینکه سرور، تنها به ردیابی اشعه نیاز دارد؛ پس استفاده از آن در شبکه و همگام نگه‌داشتن تعداد زیادی از کاربران با این روش آسان‌تر است.

 اعمال لگد (Recoil) در این تکنیک فقط با ایجاد اندکی آشفتگی در نشانه‌گیری اسلحه به‌آسانی صورت می‌پذیرد؛ از‌این‌رو، چندان جای تعجب نیست که بسیاری از بازی‌های امروزی این حوزه از هیت‌اسکن به‌عنوان منطق شلیک بهره می‌برند. ولفنشتاین 3D و دوم از بازی‌های کلاسیکی هستند که از این فناوری بهره می‌برند؛ اما حتی بازی‌های جدید نیز از این فناوری استفاده می‌کنند. شخصیت‌هایی مثل سرباز  و مک‌کری و ویدومیکر در اورواچ و حتی بیشتر سلاح‌های سری بازی‌های کال آو دیوتی (CoD) از هیت‌اسکن بهره می‌برند.

call of duty
overwatch

 Overwatch

doom 3d

 Wolfenstein 3D

چرا تمام بازی‌های شوتر از هیت‌اسکن بهره نمی‌برند؟

سؤالی که با خواندن مزایای گفته‌شده به ذهن می‌رسد، این است که چرا تمام بازی‌های شوتر از این تکنیک بهره نمی‌برند؟ ابتدا باید به این نکته توجه کنید که اشعه‌ها سرعتی بی‌نهایت دارند و بدون تعلل به مقصد خود می‌رسند؛ از‌این‌رو، بین دو عمل شلیک گلوله و برخورد با شیء فاصله‌ی زمانی وجود ندارد و امکان گریختن از گلوله ناممکن است؛ حتی اگر کیلومترها آن طرف‌تر باشد.

halo

هیلو (Halo). دقت کنید زمان شلیک گلوله و برخورد با هدف در یک زمان است.

نکته‌ی بعدی آن است که بیشتر بازی‌هایی که از هیت‌اسکن بهره می‌برند، از اشعه‌های مستقیم استفاده می‌کنند؛ به‌همین‌دلیل، امکان دخالت‌دادن عواملی مانند باد و جاذبه و سایر عوامل خارجی وجود ندارد که در دنیای واقعی موجب تغییر مسیر گلوله می‌شوند. برنامه‌نویسان می‌توانند کمی کش‌و‌قوس در اشعه ایجاد کنند تا مسیری شبیه دایره را طی کند؛ اما به‌محض شلیک، هیچ راهی برای تغییر مسیر اشعه در میان مسیر وجود نخواهد داشت.

بسیاری از بازی‌های تفننی به استفاده از هیت‌اسکن به‌دلیل راحت‌تربودن برای بازیکنان مبتدی روی می‌آورند؛ اما این میان تکلیف بازی‌های خواهان خلق تجربه‌ی شلیکی فراگیر و واقع‌گرایانه چیست؟ با وجود محدودیت‌های هیت‌اسکن، این اهداف برای این بازی‌های دست‌نیافتنی هستند. حال بیایید به روش‌های دیگر موجود نگاهی بیندازیم.

بالستیک‌های شلیک‌شونده

بالستیک‌های شلیک‌شونده (Projectile Ballistics) شاید نامی پیچیده به‌نظر بیاید؛ اما ایده‌ی پشت آن به‌هیچ‌وجه این‌طور نیست. در این تکنیک، هر گلوله یا شیء شلیک‌شونده از سلاح شیء فیزیکی جدیدی در محیط ایجاد می‌کند. این شیء جرم و سرعت و هیت‌باکس (Hitbox) مخصوص به خود دارد که موتور می‌تواند آن را ردیابی کند.

max payne

مکس پین ۳ (Max Payne 3)

مزیت استفاده از بالستیک‌های شلیک‌شونده در بازی‌های خواهان واقع‌گرایی مشخص می‌شود. ازآنجاکه در این تکنیک هر گلوله شیء مستقل خود را دارد، عواملی مانند باد، اصطکاک، جاذبه، دما و هر نیروی خارجی مؤثر بر گلوله را می‌توان روی آن اعمال کرد. حال که فیزیک شلیک تغییر کرد، بازیکنان می‌توانند از سلاح‌های دیگری به‌جز سلاح‌های ساده و لیزری استفاده کنند؛ سلاح‌هایی مانند نارنجک و موشک. همچنین، از‌آنجاکه گلوله‌ها در این تکنیک با سرعت تقریبا بی‌نهایت حرکت نمی‌کنند، می‌توانند خواصی موقتی به آن ببخشید:

  • «بولت‌تایم» که در بازی‌هایی مانند مکس پین یا اسنایپر الیت یا سوپرهات استفاده شده‌ است.
  • پیش‌بینی حرکت هدف، بدین‌معنا که اگر قرار است هدفی را در فاصله‌ی دور بزنیم یا از سلاح کندی استفاده می‌کنیم، مکان هدف را پیش‌بینی و متناسب با آن شلیک کنیم.
  • انفجارهای با تأخیر مانند نارنجک‌ها

البته استفاده از این تکنیک درمقایسه‌با هیت‌اسکن به پردازش بیشتری نیاز دارد و برای اطمینان از همگام‌بودن تمامی اشیاء و ارائه‌ی تجربه‌ای یکنواخت و لذت‌بخش، بار پردازشی بیشتر بر دوش سرورها قرار خواهد داشت.

Superhot
Battlefield 1
Overwatch

اورواچ (Overwatch)

روش‌های زیادی برای بهینه‌سازی موتورهای گرافیکی و به‌دست‌آوردن بیشترین کارایی وجود دارد. برای مثال، یکی از این بهینه‌سازی‌ها برای موتور ایجاد مجموعه‌ای از اشیاء است که پیش از بازی بارگذاری و تنها هنگام نیاز فعال می‌شوند. شیء گلوله‌ای به‌محض برخورد با سطح و پخش انیمیشن و اجرای محاسبات کافی غیرفعال می‌شود و بدین‌ترتیب، منابع سخت‌افزاری بیشتری دراختیار سایر اشیاء خواهد بود. این روش احتیاج به پردازنده و رم را با کاهش نیاز به خلق و نابودی چندباره‌ی گلوله‌ها کاهش می‌دهد. 

در بالستیک‌های شلیک‌شونده، گلوله‌هایی واقعی‌تر داریم؛ اما پردازش بیشتر و مشکلات بصری احتمالی از معایب این روش است

روش‌های متعددی برای انجام محاسبات وجود دارد؛ اما تفاوت سطح بالا در جایی است که پردازش «تیک» واحدی از زمان در بازی انجام می‌شود:

  • تیک به‌طورمجزا از منطق رندر محاسبه می‌شود که به‌معنای ارائه‌ی دقیق‌تری از اشیاء حتی هنگام وجود پرش فریم است. در این روش، به منطق بیشتری برای محاسبه‌ی زمان دقیق سپری‌شده از رندر قبلی نیاز است.
  • روش محاسبه‌ی تیک در هر فریم و ارتباط فیزیک به فریم‌ریت روشی است که اگر با افزایش یا افت فریم مواجه شوید، می‌توانید حرکات تسریع یا کند شده را مشاهده کنید.

نتایج ارتباط حرکات با تیک هنگامی به چشم می‌آید که شلیک‌شونده‌ها به قدری سریع‌اند که فاصله زیادی را بین تیک‌ها پوشش می‌دهند. در این حالت وضعیتی پیش می‌آید که ممکن است حس کنید اشیا به‌صورت فازی از یکدیگر رد می‌شوند در صورتی که این اشیا هیچ‌گاه در موتور هم‌پوشانی نداشته‌اند.

این روش ممکن است جالب و پیچیده و جدید به‌نظر برسد؛ اما درحقیقت قدمت آن به پیش از هیت‌اسکن بازمی‌گردد. پیش از بازی‌های شوتر اول شخص، شوتر‌های تاپ‌دونی مانند استرویدز و اسپیس اینویدرز و گلکسین ازجمله بازی‌های آرکید دهه‌ی ۱۹۷۰ بودند که از نوع اولیه‌ای از بالستیک‌های شلیک‌شونده بهره می‌بردند.

asteroids

 استرویدز. دیدن گلوله‌هابه کمی دقت نیاز دارد.

حتی با تمام ویژگی‌های بالستیک‌های شلیک‌شونده، بازهم به‌نظر نمی‌رسد بتوانیم تجربه‌ای واقع‌گرایانه خلق کنیم. آیا راهی وجود دارد تا از مزایای هر دو تکنیک بهره ببریم؟

سیستم‌های هایبریدی

بله، می‌توانیم! بیشتر موتورهای بازی‌ها از هردو تکنیک شبیه‌سازی گلوله‌ی هیت‌اسکن و بالستیک‌های شلیک‌شونده استفاده می‌کنند. این موضوع استفاده از تنوع بسیاری از سلاح‌ها را ممکن می‌سازد. بازی‌هایی نظیر هیلو و GTA و هف‌لایف از هر دو نوع فیزیک در موتور خود بهره می‌برند.

halo

بازی هیلو (Halo). سلاح رایفل از هیت‌اسکن و سلاح سوزنی از بالستیک بهره می‌برد.

در روش هایبرید، از هر دو تکنیک استفادهمی‌شود و این روش‌ها ضعف‌های یکدیگر را پوشش می‌دهند

توسعه‌دهندگان نیز می‌توانند از هر دو تکنیک برای پوشش ضعف‌های یکدیگر و ارائه‌ی تجربه‌ای واقع‌گرایانه‌تر بهره ببرند. برای مثال، به‌منظور رفع مشکل فرورونده در یکدیگر در بالستیک‌های شلیک‌شونده، هر گلوله می‌تواند در هر تیک یک اشعه ایجاد کند.

همچنین، این دو روش می‌توانند برای بهبود ویژگی‌های بازی درکنار یکدیگر به‌کار آیند. مثالی عالی از این موضوع مجموعه‌ی اسنایپر الیت است. در این بازی‌ها، پس از شلیک، موتور ابتدا با هیت‌اسکن برخورد آن با هدف را بررسی می‌کند و درصورت برخورد، وارد حالت صحنه آهسته می‌شود.

sniper elite

 اسنایپر الیت (Sniper Elite)

آنچه گفته شد، مسائل ابتدایی درباره‌ی فیزیک شلیک در بازی‌های ویدئویی بود. جالب است بدانید این صنعت درحال‌حاضر بر اصلاحات جزئی متمرکز است، نه تغییرات اساسی و نوآوری‌های بزرگ و اساسی در فیزیک شلیک در چند بازی انقلابی این ژانر را شاهد نبوده‌ایم.

روش هایبرید به‌دلیل برخورداری از ویژگی‌های مثبت هر دو تکنیک، به‌زودی‌ از دور خارج نمی‌شود؛ اما اصلاحات بسیاری برای تکنیک بالستیک‌های شلیک‌شونده موردانتظار است. با افزایش تعداد محاسبات تیک و قدرت پردازشی، هرروز با شبیه‌سازی واقعی‌تری از گلوله‌ها مواجه‌ایم.

تبلیغات
داغ‌ترین مطالب روز

نظرات

تبلیغات