من از توسعه دهندگان پرسیدم که چرا پورت های PC در سال 2023 مانند زباله کار می کنند
وقتی به وضعیت عرضههای رایانههای شخصی در سال 2023 نگاه میکنیم، به راحتی میتوان با انگشت اشاره کرد. بازی بهینه نشده است (هر چه که باشد)، یا ناشر آن را خیلی سریع منتشر کرده است، یا کارتهای گرافیکی که انویدیا به ما میفروشد با VRAM بسیار کم عرضه میشوند. اما این اتهامات اکثراً نیمه دل و خودپسندانه هستند و در عین حال که به واقعیت اشاره می کنند، تمام ماجرا را بازگو نمی کنند.
میخواستم بفهمم واقعاً چه اتفاقی میافتد، بنابراین با چند توسعهدهنده به گفتگو نشستم تا در مورد وضعیت بازیهای رایانه شخصی و اینکه چرا نسخههای زیادی با این همه مشکلات اساسی وارد شدهاند، صحبت کردم. مهمتر از آن، من میخواستم بدانم توسعهدهندگان و ناشران برای رفع این مشکلات چه کاری میتوانند انجام دهند، و در حالی که راه آینده روشن نیست، آشکار میشود که توسعهدهندگان میدانند که مشکلی وجود دارد.
مشکل چیه؟
اول، ما باید مشکل اساسی رایانه شخصی را شناسایی کنیم، به خصوص زمانی که بازی ها در شرایط قابل پخش (اگر نه عالی) روی کنسول ها ارسال می شوند، اما به طرز وحشتناکی آسیب دیده روی رایانه شخصی وارد می شوند. در سطح بالا، مشکل PC به عنوان یک پلتفرم دقیقاً همان چیزی است که آن را در وهله اول بسیار جذاب می کند: انعطاف پذیری.
مارک ویتن، معاون ارشد و مدیر کل Unity Create، میگوید که «تنوع و تنوع بسیار زیاد پیکربندیهای رایانهای که بازیها روی آنها اجرا خواهند شد… قطعاً میتواند مشکلات غیرمنتظرهای را آشکار کند.» ویتن همچنین به «سیستم عاملهای مختلف اشاره میکند. و بهروزرسانیهای جدید درایور، گرما و تأخیر، و سفارشیسازی کاربر به عنوان عواملی که ممکن است در مشکل نقش داشته باشند.
این پاسخ است، من مطمئن هستم که اکثر مردم تصور می کنند توضیح است.
اما به گفته ویتون، مشکل، عدم آزمایش خود نیست. او ادعا می کند که بازی ها “به طور کلی در طول توسعه به طور گسترده آزمایش می شوند.” مشکل به مقیاس پیکربندیهای مختلفی است که توسعهدهندگان باید آزمایش کنند، و متغیرهایی که نمیتوانند آنها را در نظر بگیرند.
به عنوان یک آزمایش فکری، فرض کنید یک توسعه دهنده 100 پیکربندی مختلف رایانه را برای آزمایش مشخص کرده است که CPU، GPU، RAM و هارد دیسک بین آنها متفاوت است. برای ثبت، این عددی است که من فقط به آن اشاره می کنم، چیزی نیست که توسعه دهنده در واقع به عنوان یک هدف واقع بینانه بیان کرده است. اکنون تمام آن پیکربندی ها را در نظر بگیرید و آنها را در ده ها عامل اضافی ضرب کنید: از چه سیستم عاملی استفاده می کنید؟ چه نسخه ای از این سیستم عامل؟ در مورد نسخه درایور چطور؟ چه تنظیمات بایوس فعال است؟ آیا نرم افزارهایی مانند Razer Synapse یا Corsair iCue در پس زمینه در حال اجرا دارید؟
دامنه پیکربندیهای ممکن بسیار فراتر از CPU و GPU شما در سیستم است و این عوامل به راحتی میتوانند به دهها هزار سناریو که توسعهدهندگان به سادگی نمیتوانند آنها را توضیح دهند، افزایش مییابد. در یک دنیای ایدهآل، توسعهدهندگان میتوانند بزرگترین مشکلات را برای محبوبترین پیکربندیهای کامپیوتری با آخرین درایورها و بهروزرسانیهای سیستمعامل برطرف کنند و تنها مشکلات کوچک و خاص را پس از راهاندازی حل کنند.
ویتون نیز در این احساس تنها نیست. جان یوهاناس، کارگردان بازی Hi-Fi Rush و شیطان درون 2، میگوید: «این کاملا غیر واقعی است که فکر کنید میتوانید محصولی بسازید که بیعیب و نقص در تنظیماتی مانند پیکربندی نامحدود CPU، GPU، حافظه و به احتمال زیاد آنچه در پسزمینه اجرا میشود، اجرا شود».
Hideyuki Miyashita، برنامه نویس سیستم در راش سلام، موافقت کرد، اما به طور خاص به هزینه بهینهسازی یک بازی برای هر پیکربندی ممکن اشاره کرد: «از نظر عملکرد رایانه شخصی، مقیاسپذیر کردن هر ویژگی گرافیکی برای پیکربندیهای مختلف ایدهآل خواهد بود. با این حال، هزینههای توسعه سقفی برای پشتیبانی مقیاسپذیری واقعبینانه قرار میدهد.»
این داستان جدیدی نیست. مجموعه وسیعی از پیکربندیهای رایانه شخصی مقصر اصلی همه چیز است، از سختی بهینهسازی بازیها در رایانه شخصی تا اینکه چرا ما شاهد نمایش رزومه سریع Xbox در ویندوز نیستیم. سوال این است که توسعه دهندگان با وجود زمان و پول محدودی که در اختیار دارند، چه کاری می توانند انجام دهند. زیرا رایانههای شخصی سادهتر نمیشوند و بازیها همچنان شکسته روی پلتفرم وارد میشوند.
چه کاری می توانید درست انجام دهید؟
امسال ما نمونههای زیادی از بازیها داشتیم که از رایانه شخصی پشتیبانی نمیکردند. نمونه بارز آن است جنگ ستارگان جدی: بازمانده، که در حال حاضر با وجود اینکه یکی از تحسینشدهترین بازیهای سال است، در Steam وضعیت نقد و بررسی «مخلوط» دارد. بهترین بررسی این است: “یک تصادف باعث خراب شدن 140 ساعت فایل ذخیره 99.8٪ NG+ من شد.”
من با تیم توسعه تماس گرفتم تا ایده ای از اشتباه را پیدا کنم، و اگرچه آنها در ابتدا پذیرا بودند، EA وارد عمل شد و ایمیل های من را برگرداند. بنابراین به جای اینکه ببینیم چه بازی هایی روی رایانه شخصی اشتباه می کنند، باید ببینیم که توسعه دهندگان چه کارهایی را درست انجام می دهند.
Hi-Fi Rush یک مطالعه موردی اولیه است. این یک بازی جدید از استودیوی AAA است و از موتور بدنام Unreal Engine 4 استفاده می کند. ممکن است فکر کنید که سیب را با پرتقال مقایسه می کند. Hi-Fi Rush و به عنوان بازی کنید جنگ ستارگان جدی: بازمانده، اما آنها بیشتر از آنچه که شما ممکن است حدس بزنید مشترک هستند. همانطور که یوهاناس اشاره می کند، «… این واقعیت که بازی دارای زیبایی کارتونی است، به برخی از کاربران این احساس را می دهد که بازی نباید برای اجرا بر روی رایانه های شخصی مشکلی ایجاد کند. به طور واقع بینانه، بازی برای دستیابی به ظاهری که ما به دنبال آن هستیم و دنیای دائماً در حال حرکت، که بسیار سخت است، کارهای زیادی انجام می دهد… من می دانستم که وارد شدن به بازی و مطمئن شدم که سعی کردیم به آن انتظارات برسیم.”
تعیین این هدف از ابتدا برای آن مهم به نظر می رسید Hi-Fi Rushثبات. توسعه دهندگان خاطرنشان می کنند که هدف طراحی از ابتدا حفظ حداقل 60 فریم در ثانیه (فریم بر ثانیه) بوده است، زیرا این یک بازی ریتمی و اکشن است، جایی که سقوط به زیر این علامت باعث “سکسکه” می شود. [that] به گفته Johannas، می تواند منجر به عدم هماهنگی از موسیقی و درک تجربه ضعیف بازی شود.
تیم Tango Gameworks چگونه آن را به پایان رساند؟ اساساً به سه نکته اصلی خلاصه می شود: نظارت دقیق VRAM، عملیات ناهمزمان و ذخیره PSO.
به گفته کوسوکه تاناکا، برنامه نویس اصلی گرافیک برای راش سلام، تیم استفاده از VRAM را در هر مرحله از توسعه نظارت می کند. البته این شامل نظارت بر هر سطح، اما همچنین استفاده از VRAM در هر بخش هنری است، و از هنرمندان میخواهد که استفاده از بافت یا حافظه شبکه را برای تناسب با بودجه بازی کاهش دهند. این نیز در توسعه بازی غیر معمول نیست.
آنچه در آن کار می کند Hi-Fi Rushمطلوب جهت هنری قوی او است. همانطور که تاناکا اشاره می کند، “سبک هنری ما تا حدودی به ما کمک کرده است، زیرا ما به بافت های PBR سنتی مانند نقشه های معمولی، نقشه های ناهمواری، یا نقشه های فلزی نیاز نداریم.” محصول نهایی . یوهاناس میگوید که این موضوع در مورد یک محدوده کوچکتر نبود، بلکه موضوع “نیازی به بزرگ شدن بدون دلیل” بود.
از تیم پرسیدم که از آن چه آموخته اند Hi-Fi Rush که میتواند به پروژههای بزرگتر و گستردهتر منتقل شود، اما این دقیقاً همان چیزی نیست که تانگو از بازی درس میگیرد. در واقع، تیم توسعه به من گفت که چیزهای بیشتری در مورد بهینه سازی از آن یاد گرفته اند Ghostwire: توکیو، که بیشتر در قالب سنتی AAA می گنجد و آن ایده ها را حمل می کند راش سلام، و نه برعکس
ما از دانش خود در مورد نحوه برخورد با لکنت در حین بازی چیزهای زیادی یاد گرفتیم Hi-Fi Rush از تجربه بهینه سازی ما Ghostwire: توکیومیاشیتا به من گفت. بخش بزرگی از این امر مربوط به ذخیره شیء وضعیت لوله (PSO) بود. این ویژگی در Unreal Engine 4 موجود است که با کامپایل کردن shader ها قبل از اجرای بازی به کاهش لکنت کمک می کند.
مشکل اصلی این است که Unreal Engine 4 این کار را بهطور خودکار انجام نمیدهد، که منجر به موقعیتهایی میشود که نیاز به کامپایل شدن سایهبانها در حین بازی وجود دارد و باعث لکنت زبان میشود. میاشیتا میگوید که «این منجر به برخی پسپردازشها و VFX شد که باعث ایجاد لکنت شد».
با این حال، کش کردن همه مشکلات را حل نمی کند و در اینجاست که عملیات ناهمزمان وارد می شود Hi-Fi Rush تیم از کامپایل ناهمزمان استفاده کرد – جایی که شیدرها به طور جداگانه از رشته بازی کامپایل می شوند – اما با توجه به اینکه بازی بر روی Unreal Engine 4 اجرا می شود، تمرکز زیادی روی این موضوع بود.
همانطور که در سایر بازی های Unreal Engine 4 مانند آن دیده ایم جنگ ستارگان جدی: بازمانده و ردفال، موتور در مقیاس بندی به رشته های متعدد موجود در پردازنده های مدرن خیلی خوب نیست. همانطور که میاشیتا توضیح میدهد، «چقدر ممکن است پشتیبانی از multithreading دشوار باشد، بستگی زیادی به معماری موتور مورد استفاده دارد. متأسفانه UE4 در این زمینه کمی عقب است.»
به طور خاص، Unreal Engine 4، طبق گفته توسعهدهنده، ایجاد بازیگر (اشیاء/شخصیتها) و ویجت (UI و پوشش) را روی همان رشته پردازنده مرکزی بازی قرار میدهد. یعنی هر بار که بازی بخواهد مثلاً یک کاراکتر جدید را لود کند، در تاپیک اولویت دارد. میاشیتا میگوید که “این میتواند منجر به ایجاد بازیگران و ابزارکهای پیچیده شود، و تار بازی را برای مدت طولانی مسدود کند.” این یک لکنت است.
راه حل عملیات ناهمزمان است. میاشیتا میگوید که تیم از ابزارهای تحلیلی استفاده میکند تا مشخص کند که CPU در حین رندر شدن اشیا دقیقاً چه کاری انجام میدهد، و تلاش میکنند تا این وظایف را به رشتههای مختلف منتقل کنند تا سرعت بازی کاهش نیابد. این هدف گذاری خاص همچنین می تواند به بارگذاری منابع کمک کند. انتقال این عملیات به یک ساختار موازی می تواند از دام های لکنت جریان موجود در بازی هایی مانند آن جلوگیری کند فضای مرده.
راه رو به جلو برای پورت های PC
بازیهایی که امروز در حالتهای فاجعهبار عرضه میشوند، سالها پیش توسعه خود را آغاز کردند، بنابراین اگرچه من امیدوار هستم که نسخههای رایانههای شخصی با گذشت سال بهبود پیدا کنند، ممکن است چند سال طول بکشد تا شاهد رفع این مشکلات اصلی باشیم.
ویتن می گوید که “توسعه دهندگان به اندازه بازیکنان نگران عملکرد هستند” و این احساسی است که من چند بار شنیده ام. راههایی برای بهینهسازی نسخههای رایانه شخصی وجود دارد، از سایهبانهای پیش از کش تا عملیات ناهمزمان تا اعتبارسنجی انواع سختافزار. اما واقعیت این است که توسعه دهندگان به دلیل زمان یا پول نمی توانند همه چیز را محاسبه کنند، معمولاً هر دو.
راه پیش رو در اینجا ساده است. ابتدا به ناشران این بازی ها اطلاع دهید که شما ترجیح می دهید یک لگ را ببینید تا یک بازی شکسته. تماس با توسعهدهندگان کار زیادی انجام نمیدهد – آنها از قبل مشکل را میدانند و احتمالاً مایلند درست به اندازه شما برطرف شود. دوم، در انتخاب یک بازی رایانه شخصی جدید در روز انتشار مراقب باشید. وقتی منتظر چیزی هستید صبور بودن سخت است (به من اعتماد کنید، می دانم)، اما منتظر ماندن برای خرید یک بازی تا رفع مشکلات، سیگنالی قوی به ناشران می فرستد تا زمان و منابع بیشتری را برای اطمینان از رایانه بودن بازی ها سرمایه گذاری کنند. جلا داده شده
به راحتی می توان فراموش کرد که این سرزمین هنوز کشف نشده است. اکنون بیش از هر زمان دیگری، بازیها در همان روزی که روی کنسولها عرضه میشوند، بر روی رایانههای شخصی عرضه میشوند، برخلاف چند سال پیش که پورتهای PC ماهها (یا حتی سالها) دیرتر وارد میشدند. دو نسل کنسول پیش، اکثر بازیها فقط در یک روز بر روی یک پلتفرم ارسال میشدند. در نسل قبلی دو تا بود. اکنون انتظار میرود که توسعهدهندگان حداقل سه پلتفرم را در یک روز و گاهی بیش از پنج پلتفرم را در صورت داشتن آخرین نسل عرضه کنند.
با توجه به این زمینه، درک اینکه چرا مشکلاتی در رایانه شخصی وجود دارد، سخت نیست، اما امیدواریم که نسخه های صیقلی تری در راه باشند.
این مقاله بخشی از ReSpec است، یک ستون دوهفتهای در حال انجام که شامل بحثها، نکات و گزارشهای عمیق درباره فناوری پشت بازی رایانههای شخصی است.
توصیه های سردبیران