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