بیشتر ما با بازیهای شوتر اول شخص خاطرات زیادی داریم؛ از سری کانتر استرایک گرفته تا کال آو دیوتی. بااینهمه، تابهحال برایتان سؤال بوده که گلولهها در این بازیها چگونه کار میکنند؟ در این مقاله، بهطور ابتدایی با مکانیسمهای عمل گلولهها آشنا خواهیم شد.
شوترهای اول شخص (First-Person Shooter) یا بهاختصار FPS از زمان عرضهی ولفنشتاین 3D در سال ۱۹۹۲، پای ثابت صنعت بازیهای ویدئویی بودهاند. این ژانر تا امروز دستخوش تحولات بسیاری شده است؛ از بهبودهای گرافیکی گرفته تا بودجههای سرسامآور و اکوسیستم ایاسپورتس (eSports). تابهحال به اساس بازیهای شوتینگ، یعنی مکانیک شلیک و گلولهها، فکر کردهاید؟ دراینزمینه هم پیشرفت کردهایم؟ چرا برخی از بازیها حس اسباببازی میدهند؛ درحالیکه برخی دیگر حسی کاملا واقعی و درجهیک به کاربران منتقل میکنند؟ در این مقاله، به انواع مکانیکهای شلیک و سیر پیشرفت این مکانیکها اشاره میکنیم.
در نخستین روزهای بازیهای شوتر، بسیاری از بازیهای این ژانر مبتنیبر تکنیکی بهنام انتشار اشعه (Raycasting) برای نمایش محیطهای سهبعدی بهصورت تصاویر دوبعدی (صفحهنمایش شما) بودند. انتشار اشعه به موتور اجازه میداد اولین شیء متلاقیکننده با اشعه را تشخیص دهد. توسعهدهندگان بهفکر افتادند که چرا این اشعه را گلوله در نظر نگیریم که از تفنگ شلیک میشود. این ایده به شکلگیری هیتاسکن (Hitscan) منجر شد.
مثالی از انتشار اشعه (Raycasting)
هنگام شلیک از سلاحی با مکانیک هیتاسکن، موتور فیزیکی عملیات زیر را انجام میدهد:
۱. جهتی را شناسایی میکند که سلاح سمت آن قرار گرفته است.
۲. اشعهای از لولهی تفنگ تا فاصلهای تعیینشده ارسال میکند.
۳. از انتشار اشعه برای تعیین برخورد اشعه با شیء استفاده میشود.
۴. اگر موتور تشخیص دهد شیئی در فاصلهی اشعه قرار دارد، آنگاه پیام برخورد را ارسال خواهد کرد و سایر محاسبات مانند محاسبهی میزان آسیب به کمک این پیام انجام خواهند شد.
نقطهی A نمایانگر تفنگ است که حداکثر تا نقطهی B اشعه منتشر میکند. این اشعه با مکعب برخورد و موتور اعلام برخورد میکند.
تکنیک هیتاسکن به همین سادگی است؛ اما با تغییراتی میتوان پشتیبانی از شرایط و منطقهای دیگر را به آن افزود:
بازی اورواچ (Overwatch)، نمونهای از سطح بازتابدهنده
بزرگترین مزیت استفاده از انتشار اشعه سرعت آن است. محاسبهی این تکنیک بسیار سریع است و به حافظه یا زمان پردازش اضافی برای ساخت اشیای فیزیکی جدید نیازی ندارد. بهدلیل اینکه سرور، تنها به ردیابی اشعه نیاز دارد؛ پس استفاده از آن در شبکه و همگام نگهداشتن تعداد زیادی از کاربران با این روش آسانتر است.
اعمال لگد (Recoil) در این تکنیک فقط با ایجاد اندکی آشفتگی در نشانهگیری اسلحه بهآسانی صورت میپذیرد؛ ازاینرو، چندان جای تعجب نیست که بسیاری از بازیهای امروزی این حوزه از هیتاسکن بهعنوان منطق شلیک بهره میبرند. ولفنشتاین 3D و دوم از بازیهای کلاسیکی هستند که از این فناوری بهره میبرند؛ اما حتی بازیهای جدید نیز از این فناوری استفاده میکنند. شخصیتهایی مثل سرباز و مککری و ویدومیکر در اورواچ و حتی بیشتر سلاحهای سری بازیهای کال آو دیوتی (CoD) از هیتاسکن بهره میبرند.
Overwatch
Wolfenstein 3D
سؤالی که با خواندن مزایای گفتهشده به ذهن میرسد، این است که چرا تمام بازیهای شوتر از این تکنیک بهره نمیبرند؟ ابتدا باید به این نکته توجه کنید که اشعهها سرعتی بینهایت دارند و بدون تعلل به مقصد خود میرسند؛ ازاینرو، بین دو عمل شلیک گلوله و برخورد با شیء فاصلهی زمانی وجود ندارد و امکان گریختن از گلوله ناممکن است؛ حتی اگر کیلومترها آن طرفتر باشد.
هیلو (Halo). دقت کنید زمان شلیک گلوله و برخورد با هدف در یک زمان است.
نکتهی بعدی آن است که بیشتر بازیهایی که از هیتاسکن بهره میبرند، از اشعههای مستقیم استفاده میکنند؛ بههمیندلیل، امکان دخالتدادن عواملی مانند باد و جاذبه و سایر عوامل خارجی وجود ندارد که در دنیای واقعی موجب تغییر مسیر گلوله میشوند. برنامهنویسان میتوانند کمی کشوقوس در اشعه ایجاد کنند تا مسیری شبیه دایره را طی کند؛ اما بهمحض شلیک، هیچ راهی برای تغییر مسیر اشعه در میان مسیر وجود نخواهد داشت.
بسیاری از بازیهای تفننی به استفاده از هیتاسکن بهدلیل راحتتربودن برای بازیکنان مبتدی روی میآورند؛ اما این میان تکلیف بازیهای خواهان خلق تجربهی شلیکی فراگیر و واقعگرایانه چیست؟ با وجود محدودیتهای هیتاسکن، این اهداف برای این بازیهای دستنیافتنی هستند. حال بیایید به روشهای دیگر موجود نگاهی بیندازیم.
بالستیکهای شلیکشونده (Projectile Ballistics) شاید نامی پیچیده بهنظر بیاید؛ اما ایدهی پشت آن بههیچوجه اینطور نیست. در این تکنیک، هر گلوله یا شیء شلیکشونده از سلاح شیء فیزیکی جدیدی در محیط ایجاد میکند. این شیء جرم و سرعت و هیتباکس (Hitbox) مخصوص به خود دارد که موتور میتواند آن را ردیابی کند.
مزیت استفاده از بالستیکهای شلیکشونده در بازیهای خواهان واقعگرایی مشخص میشود. ازآنجاکه در این تکنیک هر گلوله شیء مستقل خود را دارد، عواملی مانند باد، اصطکاک، جاذبه، دما و هر نیروی خارجی مؤثر بر گلوله را میتوان روی آن اعمال کرد. حال که فیزیک شلیک تغییر کرد، بازیکنان میتوانند از سلاحهای دیگری بهجز سلاحهای ساده و لیزری استفاده کنند؛ سلاحهایی مانند نارنجک و موشک. همچنین، ازآنجاکه گلولهها در این تکنیک با سرعت تقریبا بینهایت حرکت نمیکنند، میتوانند خواصی موقتی به آن ببخشید:
البته استفاده از این تکنیک درمقایسهبا هیتاسکن به پردازش بیشتری نیاز دارد و برای اطمینان از همگامبودن تمامی اشیاء و ارائهی تجربهای یکنواخت و لذتبخش، بار پردازشی بیشتر بر دوش سرورها قرار خواهد داشت.
روشهای زیادی برای بهینهسازی موتورهای گرافیکی و بهدستآوردن بیشترین کارایی وجود دارد. برای مثال، یکی از این بهینهسازیها برای موتور ایجاد مجموعهای از اشیاء است که پیش از بازی بارگذاری و تنها هنگام نیاز فعال میشوند. شیء گلولهای بهمحض برخورد با سطح و پخش انیمیشن و اجرای محاسبات کافی غیرفعال میشود و بدینترتیب، منابع سختافزاری بیشتری دراختیار سایر اشیاء خواهد بود. این روش احتیاج به پردازنده و رم را با کاهش نیاز به خلق و نابودی چندبارهی گلولهها کاهش میدهد.
روشهای متعددی برای انجام محاسبات وجود دارد؛ اما تفاوت سطح بالا در جایی است که پردازش «تیک» واحدی از زمان در بازی انجام میشود:
نتایج ارتباط حرکات با تیک هنگامی به چشم میآید که شلیکشوندهها به قدری سریعاند که فاصله زیادی را بین تیکها پوشش میدهند. در این حالت وضعیتی پیش میآید که ممکن است حس کنید اشیا بهصورت فازی از یکدیگر رد میشوند در صورتی که این اشیا هیچگاه در موتور همپوشانی نداشتهاند.
این روش ممکن است جالب و پیچیده و جدید بهنظر برسد؛ اما درحقیقت قدمت آن به پیش از هیتاسکن بازمیگردد. پیش از بازیهای شوتر اول شخص، شوترهای تاپدونی مانند استرویدز و اسپیس اینویدرز و گلکسین ازجمله بازیهای آرکید دههی ۱۹۷۰ بودند که از نوع اولیهای از بالستیکهای شلیکشونده بهره میبردند.
استرویدز. دیدن گلولههابه کمی دقت نیاز دارد.
حتی با تمام ویژگیهای بالستیکهای شلیکشونده، بازهم بهنظر نمیرسد بتوانیم تجربهای واقعگرایانه خلق کنیم. آیا راهی وجود دارد تا از مزایای هر دو تکنیک بهره ببریم؟
بله، میتوانیم! بیشتر موتورهای بازیها از هردو تکنیک شبیهسازی گلولهی هیتاسکن و بالستیکهای شلیکشونده استفاده میکنند. این موضوع استفاده از تنوع بسیاری از سلاحها را ممکن میسازد. بازیهایی نظیر هیلو و GTA و هفلایف از هر دو نوع فیزیک در موتور خود بهره میبرند.
بازی هیلو (Halo). سلاح رایفل از هیتاسکن و سلاح سوزنی از بالستیک بهره میبرد.
توسعهدهندگان نیز میتوانند از هر دو تکنیک برای پوشش ضعفهای یکدیگر و ارائهی تجربهای واقعگرایانهتر بهره ببرند. برای مثال، بهمنظور رفع مشکل فرورونده در یکدیگر در بالستیکهای شلیکشونده، هر گلوله میتواند در هر تیک یک اشعه ایجاد کند.
همچنین، این دو روش میتوانند برای بهبود ویژگیهای بازی درکنار یکدیگر بهکار آیند. مثالی عالی از این موضوع مجموعهی اسنایپر الیت است. در این بازیها، پس از شلیک، موتور ابتدا با هیتاسکن برخورد آن با هدف را بررسی میکند و درصورت برخورد، وارد حالت صحنه آهسته میشود.
آنچه گفته شد، مسائل ابتدایی دربارهی فیزیک شلیک در بازیهای ویدئویی بود. جالب است بدانید این صنعت درحالحاضر بر اصلاحات جزئی متمرکز است، نه تغییرات اساسی و نوآوریهای بزرگ و اساسی در فیزیک شلیک در چند بازی انقلابی این ژانر را شاهد نبودهایم.
روش هایبرید بهدلیل برخورداری از ویژگیهای مثبت هر دو تکنیک، بهزودی از دور خارج نمیشود؛ اما اصلاحات بسیاری برای تکنیک بالستیکهای شلیکشونده موردانتظار است. با افزایش تعداد محاسبات تیک و قدرت پردازشی، هرروز با شبیهسازی واقعیتری از گلولهها مواجهایم.
پاسخ ها