شاید بیش از یک دهه از عمر GTA V گذشته باشد، اما برای اجرای آن همچنان به دستگاهی مناسب و خرید بازی نیاز دارید. بااینحال، برای مدتی کوتاه وبسایتی پدیدار شد که ظاهراً این بازی عظیم جهانباز را بهصورت محلی درون Chrome اجرا میکرد. نه، خبری هم از ترفند بازی ابری نبود؛ خود بازی در مرورگر اجرا میشد.
این پروژه خیلی زود ناپدید شد، اما پرسشی مهم از خود به جا گذاشت: حالا که مرورگرها از توان پردازشی، حافظه، دسترسی گرافیکی و ابزارهای لازم برای اجرای بازیهایی مانند GTA V برخوردارند، گام بعدی چیست؟
جیتیای ۵ در زبانهای از مرورگر ظاهر شد و مانند سرقتی نافرجام ناپدید شد
لوسسانتوس در کروم خبرساز شد؛ اما پیش از جانگرفتن سرورها ناپدید شد

در چند ساعت پرآشوب از روز ۶ اکتبر، میشد GTA V را از طریق وبسایتی به نام PlayGTA5.com بازی کرد. ویدئوها پیشدرآمد بخش داستانی و گشتوگذار آزاد در Los Santos را در حال اجرا در Chrome نشان میدادند؛ حتی نمایشی از اجرای بازی روی Apple M3 Pro نیز منتشر شد. مرورگر پیش از آغاز بازی نزدیک به ۷۰۰ MB داده دریافت میکرد و سپس باقی دادهها را بهتدریج و برحسب نیاز میگرفت. همانطور که احتمالاً حدس زدهاید، این نسخه انتشار رسمی Rockstar نبود و وبسایت نیز همان روز زیر فشار سنگین کاربران ناپدید شد.
نخستین حدس بدیهی، بازی ابری بود: بازی روی رایانهای دوردست اجرا شود، مرورگر تصویر را دریافت کند و فرمانهای کاربر را پس بفرستد. اما شواهد از سازوکاری کاملاً متفاوت حکایت داشتند. خود موتور بازی با بهرهگیری از پردازنده، حافظه و پردازندهٔ گرافیکی کاربر بهصورت محلی اجرا میشد. بررسی فنی پروژه نه نشانی از کلاینت پخش ویدئو یافت و نه از شبیهساز کنسول؛ در عوض، موتور RAGE شرکت Rockstar و کد GTA V را پیدا کرد که در قالب یک ماژول ۶۳ MB از WebAssembly با نزدیک به ۹۱,۰۰۰ تابع کامپایل شده بودند.
البته ابهامهای مهمی وجود دارد. ناشر گمنام پروژه هیچ توضیحی دربارهٔ شیوهٔ ساخت، مخزن کد یا هویت خود منتشر نکرد و نظریههایی که این انتقال را به کد منبع افشاشدهٔ Rockstar پیوند میدهند، در بهترین حالت تأییدنشدهاند. این وبسایت همچنین دادههای بازی Rockstar را بدون مجوز توزیع میکرد. ناپدیدشدن آن گمانهزنیهایی دربارهٔ حذف اجباری سایت به راه انداخت، اما هیچ مدرک عمومی و روشنی علت دقیق از دسترس خارجشدن آن را نشان نمیدهد.
WebAssembly، وبورکرها و WebGPU این سرقت را ممکن کردند
موتور راکاستار، ماژول ۶۳ MB از Wasm و مرورگری که پاسخ منفی نداد

پایهٔ اصلی این پروژه WebAssembly یا Wasm است. این فناوری مقصدی کمحجم برای کامپایل فراهم میکند تا کدی که در اصل با زبانهایی مانند C++ نوشته شده است، در محیط سندباکسشدهٔ مرورگر اجرا شود. در این پروژه ظاهراً موتور RAGE برای WebAssembly ۶۴ بیتی کامپایل شده بود، زیرا بازی به حافظهای فراتر از محدودهٔ قابل نشانی در Wasm کلاسیک ۳۲ بیتی نیاز داشت. ماژول کار خود را با یک هیپ اشتراکی ۳ GB آغاز میکرد، میتوانست هنگام اجرا تا ۱۶ GB گسترش یابد و دهها رشته را به کار بگیرد.
این رشتهها به Web Workers نگاشت شده بودند و با حافظهٔ اشتراکی و عملیات اتمی هماهنگ میشدند. اهمیت این سازوکار از آنجاست که موتور بازی دسکتاپ انتظار دارد هنگام دریافت فایل، انجام عملیات گرافیکی یا رسیدن به وضعیتهای همگامسازی منتظر بماند و اجرای رشته را متوقف کند، درحالیکه رابطهای برنامهنویسی مرورگر عمدتاً ناهمگاماند. رشتههای WebAssembly به وبورکرهای جداگانه امکان میدهند از حافظهای یکسان بهره ببرند و برای نسخههای منتقلشدهای از این دست، پلی کاربردی میان این دو جهان میسازند.
بخش گرافیک به راهکاری جداگانه نیاز داشت. GTA V همچنان فرمانهای Direct3D ۱۱ را صادر میکرد، اما پیادهسازی جایگزین دستگاه، این فرمانها را در یک بافر حلقهای 32MB مینوشت. وبورکری اختصاصی بافر را میخواند و فرمانها را از طریق WebGPU دوباره اجرا میکرد. همزمان، ۴,۹۱۹ سایهزن موجود در قالب DXBC از پیش پردازش شدند که حاصل آن ۴,۸۰۸ سایهزن قابل استفاده در WGSL، زبان سایهزنی WebGPU، بود. هر مرحلهٔ پشتیبانینشدهٔ هندسه یا موزاییککاری نیز کنار گذاشته میشد یا به مسیرهای جایگزین هدایت میشد.
عدد ۷۰۰ MB اندازهٔ کامل بازی نبود. سرور بررسیشده ۲۰.۹ GB از داراییهای نسخهٔ توسعه را در خود داشت. یک وبورکر ورودی و خروجی، تنها بلوکهای ضروری ۴ KB را با درخواستهای HTTP Range دریافت و آنها را در Origin Private File System مرورگر ذخیره میکرد. مجموعهٔ دادههای لازم برای راهاندازی ۵۸۲ MB اندازه داشت، درحالیکه در یکی از آزمایشها، پیش از آنکه بازیکن بتواند حرکت کند، ۷۴۳ MB داده مصرف شد. هر بار که وارد منطقهای دیگر میشدید نیز بارگیری جداگانهای آغاز میشد.
جیتیای ۵ بازی مرورگری افتضاحی است؛ و نکته دقیقاً همین است
از نظر حقوقی پرخطر و تشنهٔ سختافزار؛ اما نمایشی پرهیاهو از امکانپذیری این ایده





GTA V ناگهان به بازی مرورگری معقولی تبدیل نشده است. این نسخهٔ غیررسمی از نظر حقوقی بسیار پرخطر بود، منابع سختافزاری فراوانی مصرف میکرد، به قابلیتهای تازهٔ مرورگر وابسته بود و در برابر هجوم سنگین کاربران پایداری چندانی نداشت. برای برخی کاربران، فرایند هنگام بارگذاری بایگانیها متوقف میشد و برخی دیگر با خطاهای زمان اجرا روبهرو میشدند؛ مرورگرهای مبتنی بر Chromium نیز در کنار سختافزاری توانمند، بیشترین بخت موفقیت را داشتند. حتی بازیهای وب قانونی همچنان با محدودیتهایی در زمینهٔ حافظه، فضای ذخیرهسازی، شبکه، زبانههای پسزمینه، جداسازی میانمبدأیی، صدا و رفتارهای ویژهٔ هر مرورگر روبهرو هستند.
بااینهمه، همین محدودیتها اهمیت این نمایش را بیشتر میکنند، نه کمتر. GTA V بازی بزرگ و چندهستهایِ C++ است که بر پایهٔ پیشفرضهای دوران ویندوز و Direct3D ۱۱ ساخته شده است. اگر چنین نرمافزاری بتواند درون زبانهای ایزوله و بهصورت محلی اجرا شود، مرورگر معمولی دیگر به بازیهای ساده یا بازیهای پخششده از راه دور محدود نخواهد بود و با شتاب به بستری قابلاتکا برای عرضهٔ بازیهای بومی تبدیل میشود.
WebGPU مهمترین عامل در این میان است. این فناوری برخلاف WebGL، تواناییهای نوین پردازندهٔ گرافیکی را از طریق رابطی در دسترس میگذارد که بر پایهٔ مفاهیم رایج در Direct3D ۱۲، Metal و Vulkan طراحی شده است. اکنون Chrome، Edge، Firefox و Safari همگی از آن پشتیبانی میکنند، هرچند گسترهٔ پشتیبانی و میزان بلوغ آن در سکوهای مختلف هنوز یکسان نیست. WebAssembly کد کامپایلشده و پرسرعت را فراهم میکند، وبورکرها و حافظهٔ اشتراکی امکان پردازش موازی را به ارمغان میآورند، فضای ذخیرهسازی مرورگر دادهها را ماندگار میکند و HTTP نیز دریافت تدریجی محتوا را ممکن میسازد.
این ترکیب میتواند شیوهٔ توزیع بازیها را دگرگون کند. از نظر فنی، بازیکن میتواند روی پیوندی کلیک کند، تنها فایلهای لازم برای بخش آغازین را بگیرد، باقی محتوا را هنگام بازی در حافظهٔ نهان ذخیره کند و بعداً بدون نیاز به نصبکنندهای سنتی به بازی بازگردد. بدینترتیب، سازندگان میتوانند نسخههای آزمایشی، ابزارهای ساخت افزونه، ویرایشگرهای مرحله، نسخههای سازگارشده از بازیهای قدیمی، تجربههای چندنفره یا مشارکتی و حتی بازیهای کامل را تنها از طریق یک نشانی اینترنتی معمولی منتشر کنند. بهروزرسانیها در سمت سرور انجام میشوند و محیط ایزولهٔ مرورگر نیز در سیستمعاملهای گوناگون، مرزی امنیتی پدید میآورد.
کروم فردا میزبان همهٔ بازیهای بزرگ AAA نمیشود، اما نصبکنندهها باید نگران باشند
یونیتی و گودو هنوز تا عرضهٔ بازیهای تمامعیار AAA در وب فاصله دارند
قرار نیست در آیندهٔ نزدیک همهٔ بازیهای بزرگ AAA راهی Chrome شوند. نسخههای بومی همچنان کنترل بیشتری بر فایلها، راهاندازها، حافظه، سامانههای ضدتقلب و یکپارچگی با سکو در اختیار سازندگان میگذارند. موتورهای بازیسازی نیز به فرایندهای خروجیگیری مناسب نیاز دارند. Unity هنوز WebGPU را آزمایشی میداند و گزینههای کنونی Godot برای خروجی وب عمدتاً بر WebGL ۲ استوارند و در پردازش چندرشتهای و شبکه محدودیت دارند.
بااینحال، PlayGTA5.com مسیری را آشکار کرد که صنعت بازی بهسوی آن پیش میرود. بازی در مرورگر دیگر لزوماً به معنای بازیهای سادهٔ JavaScript یا ویدئوی پخششده از فضای ابری نیست. اکنون یک زبانه میتواند میزبان منطق بومیِ کامپایلشده، پردازش چندرشتهای واقعی، فایلهای محلی ماندگار و رندر گرافیکی مدرن باشد. GTA V تنها نمونهای نمایشی و توجهبرانگیز بود؛ ماجرای مهمتر این است که نصب بازی کمکم اختیاری میشود. وب بهآرامی از ویترینی برای فروش، به سکویی برای بازی تبدیل میشود.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Yadullah Abidi است. مشاهده مقاله اصلی