
بازیهای اوایل دهه ۲۰۰۰ میلادی برای نسل من فقط سرگرمی بودند؛ بدون آنکه چیزی از مفاهیمی مانند نرخ فریم (Frame Rate) یا تنظیمات گرافیکی بدانیم. اما بازگرداندن همان حس در سال ۲۰۲۶ کار سادهای نیست و معمولاً یا باید سراغ نسخههای بازسازیشده (Remaster) و بازساخته (Remake) رفت یا محدودیت نرخ فریم را بهصورت دستی برداشت. همین گزینه دوم در چند بازی نوستالژیک، ماجرایی جالب و در عین حال آموزنده رقم زد.
آنلاک کردن ۶۰ فریم؛ بخش آسان ماجرا
برداشتن سقف نرخ فریم در این بازیها بهظاهر کار دشواری نبود و هر کدام با روشی ساده به ۶۰ فریم رسیدند:
- GTA: San Andreas: نسخه اصلی رایانههای شخصی سال ۲۰۰۵ روی ۳۰ فریم قفل بود و تنها با غیرفعال کردن گزینه محدودکننده فریم (Frame Limiter) در منوی خود بازی، این قفل برداشته شد.
- Resident Evil 4: نسخه سال ۲۰۰۷ روی ۳۰ فریم قفل بود؛ برای نسخه اصلی کافی بود خطوط نرخ نوسازی (Refresh Rate) در فایل تنظیمات داخلی (setup.ini) روی ۶۰ تغییر کند. نسخه HD سال ۲۰۱۴ نیز کلید اختصاصی ۶۰ فریم دارد.
- NFS Rivals: با افزودن دستور -GameTime.MaxSimFps 60 به مسیر میانبر (Shortcut) بازی، قفل ۳۰ فریم آن برداشته شد.
- L.A. Noire: سختترین مورد بود و نیاز به نصب Cheat Engine و اجرای یک اسکریپت برای اجبار محدودکننده نمایش فریم به ۶۰ داشت؛ علاوه بر آن، همگامسازی عمودی (V-Sync) درون بازی غیرفعال و گزینه Smooth Motion در تنظیمات اپلیکیشن انویدیا فعال شد.
وقتی نرخ فریم دو برابر شد، چه چیزهایی فروپاشید
بزرگترین اشتباه من این بود که ۳۰ فریم را تنها یک محدودیت رندر میدیدم؛ در حالی که در این بازیها نرخ فریم بسیار عمیقتر در موتور بازی (Game Engine) تنیده شده است. به همین دلیل با دو برابر کردن نرخ فریم، در واقع بسامد بهروزرسانی بخشهای مختلف خود بازی تغییر کرد، نه اینکه فقط کارت گرافیک دو برابر تصویر رسم کند. نتیجه، به شکلی خندهدار فاجعهبار بود:
- L.A. Noire: در ۶۰ فریم رفتار خودروها کاملاً غیرقابل پیشبینی شد؛ خودروها با کوچکترین فشار روی پدال گاز به پرواز درمیآمدند و دو برابر زمان بیشتری برای کاهش سرعت یا توقف نیاز داشتند. چند مأموریت نیز از کار افتاد و مهمترین ویژگی بازی، یعنی ریزحالتهای چهره (Micro-Expressions) اسکنشده در بازجوییها، بهکلی از هم پاشید و تنها چهرههایی لرزان و ناخوشایند باقی ماند.
- Resident Evil 4: رویدادهای زمانی سریع (Quick Time Events) بر پایه تخصیص فریم محاسبه میشوند، نه میلیثانیه واقعی؛ با دو برابر شدن نرخ فریم، زمان واکنش من نصف شد و فرار از تختهسنگ غولپیکر یا مبارزه با Krauser غیرممکن شد. سرعت تیغههای چرخان دو برابر شد و هوش مصنوعی دشمنان عملاً کور شد و نتوانست موقعیت من را در زمان درست تشخیص دهد.
- NFS Rivals: با رفتن از ۳۰ به ۶۰ فریم، سرعت کل بازی دو برابر و به ۲۰۰ درصد رسید؛ خودروها در بزرگراهها شتاب میگرفتند و به هر دیواری برخورد میکردند. حتی سلاحهای تعقیب درون بازی نیز به دلیل ساعت شمارش معکوس داخلی ۳۰ هرتز (30Hz) که در کد ثابت شده بود، دو برابر سریعتر منقضی میشدند.
تجربه واقعی ۶۰ فریم به راهحل نیاز دارد
این بازیها نه فقط به آنلاک، بلکه به اصلاح نیاز داشتند. GTA: San Andreas نشان داد حذف ساده محدودیت کافی نیست، زیرا موتور بازی چند سامانه را به نرخ فریم گره زده است؛ به همین دلیل از ابزار Framerate Vigilante در کنار وصلههای (Patch) انجمن کاربری و یک محدودکننده ۶۰ فریم استفاده شد تا فیزیک و گیمپلی در ۶۰ فریم درست رفتار کنند.
در NFS Rivals نیز دستور واردشده در مسیر میانبر ناقص بود و علاوه بر نرخ فریم، باید سرعت ساعت داخلی موتور بازی هم تنظیم میشد. دستور نهایی شامل هر دو فرمان بود:
-GameTime.MaxSimFps 60 -GameTime.ForceSimRate 60.0
به همین ترتیب، سامانههای Resident Evil 4 هنوز بر پایه فرضهای ۳۰ فریم طراحی شده بودند و نصب ماد متنباز RE4 Tweaks ضروری بود تا سرعت اشیا، هندسه متحرک، فیزیک شخصیت Ashley و رویدادهای زمانی دکمهفشاری اصلاح شود. L.A. Noire نیز به اسکریپت تخصصی انجمن کاربری به نام V-Patch نیاز داشت که تیک داخلی ۳۰ هرتز بازی را از خروجی تصویری جدا میکند و بدین ترتیب مشکلات اجرای ۶۰ فریم برطرف میشود.
نکته مشترک همه این موارد بهشکلی شگفتآور ساده است: موتور بازی به یکدستی نیاز دارد. اگر فیزیک، ورودی، انیمیشن یا زمانبندی انتظار ۳۰ بهروزرسانی در ثانیه را داشته باشد، دادن ۶۰ به آن بدون اصلاح این سامانهها بازی را خراب میکند. یا باید همه اجزای وابسته به نرخ فریم بهدرستی برای ۶۰ فریم سازگار شوند، یا بازی روی ۳۰ فریم قفل بماند و فناوریهایی مانند تولید فریم (Frame Generation) فریمهای تصویری اضافه را تأمین کنند.
۳۰ فریم؛ گاهی کمضررترین گزینه
من هنوز میخواهم این بازیها مانند عناوین مدرن حس و اجرا شوند، اما احترام بیشتری برای مهندسی پنهان در پشت عددی قائل شدهام که پیشتر آن را دلبخواهی میپندیدم. با این آزمایش انتظار داشتم بازیهای قدیمی سرانجام تسلیم سختافزار مدرن شوند، اما آنها یادآوری کردند که کارایی تنها به توان خام سختافزار مربوط نیست. در نقطهای، بهجای سریعتر کردن یک عنوان قدیمی، در حال بحث با توسعهدهندگانی هستید که بیست سال پیش آن بازی را ساختهاند.
۳۰ فریم برای من مطلوب نیست و همچنان میخواهم این بازیها هنگام اجرا در سال ۲۰۲۶ بهخوبی عناوین مدرن حس شوند؛ تنها چیزی که تغییر کرده، احترام بسیار بیشتر به مهندسی نهفته در پشت آن عدد بهظاهر دلبخواه است.