تعطیلات عید بهترین فرصت برای استراحته که می‌تونیم با برنامه ریزی، حسابی ازشون استفاده کنیم.

برای ما‌هایی که به صفحه لپتاپ و کامپیوترمون عادت کردیم خیلی سخته که اون رو به طور کامل کنار بذاریم و خودمون رو با چیزهای دیگه سرگرم کنیم! به همین دلیل، احتمالا بعد چند ساعت برمی‌گردیم سمت لپتاپ تا این‌بار برای سرگرمی ازش استفاده کنیم.

تو همچین شرایطی، Steam رو نصب کردم به امید یک بازی آنلاین جدید که بتونم بی‌دردسر رو لپتاپم بازی کنم.

جدال بین سخت افزار موردنیاز بازی‌ها و داشته‌های لپ‌تاپم کاملا یک طرفه بود و کاملا از بازی کردن نا‌امیدم کرد.
اما یک چیز خیلی عجیب حواسم رو به خودش پرت کرد:
یکی از دوستای قدیمی -که توی لیست دوستای Steam هم بود- داشت For Honor بازی می‌کرد!

Nvidia GeForce Now
Nvidia GeForce Now

من می‌دونستم مدل لپتاپ دوستم MacBook Pro 2013 هست و با هیچ ترفندی توان اجرای اون بازی رو نداره! واسه همین بهش پیام دادم و با Nvidia GeForce Now به صورت عملی آشنا شدم.

قبلا راجع‌ به سرویس رایانش ابری ‌Nvidia خبر‌هایی خونده بودم! اما انتظار نداشتم به این زودی در دسترس عموم قرار بگیره.

من هم تصمیم گرفتم توی این مقاله بازی‌های آنلاین و به طور خاص این پلتفرم رو بررسی کنم.

ابرِ بازی یا بازیِ ابری

وقتی صحبت از بازی آنلاین می‌شه، تفکر غالب اینه که باید یک نسخه از بازی رو متناسب با دیوایس (Client) مورد نظرمون نصب کنیم! بعد از اون با استفاده از اینترنت با بازیکن‌های دیگه همراه می‌شیم و یا به صورت گروهی بازی می‌کنیم.

این ذهنیت اشتباه نیست، اما فقط بخشی از یک مفهوم بزرگ تر یا همون بازی آنلاین هست.

An online game is a video game that is either partially or primarily played through the Internet or any other computer network available

Andrew Rollings; Ernest Adams (2006). Fundamentals of Game Design. Prentice Hall

بازی آنلاین

احتمالا همه‌ی بازی‌هایی که ما به عنوان بازی آنلاین تا الان باهاشون سرگرم شدیم از همین نوع هستند! برای مثال: Dota 2، World of Warcraft، Clash Royale و خیلی از بازی‌های دیگه.

به طور خلاصه، یک بازی آنلاین دارای دو بخش اصلی هست:

  • سرورهای بازی (Game Server)
  • نسخه‌ی نصب شده روی کنسول شما (Client)

البته قطعا همه چیز به همین سادگی نیست.

سرور‌های بازی

سرورهای بازی آنلاین از پیچیدگی بالایی برخوردار هستن و علاوه بر هسته‌ی اصلی سرور بازی، می‌تونن از ماژول‌های مختلفی مثل سرور‌های Matchmaking و یا Fraud Detection تشکیل بشن.

این سرور‌ها معمولا از سخت‌افزار قدرتمندی برخوردار هستن! اون‌ها قابلیت مقیاس پذیری بالایی دارن و نحوه محافظت و نگهداری از داده‌‌های کاربران در اون‌ها نقش به شدت حیاتی و مهمی داره.

به همین علت، معمولا این سرور‌ها با استفاده از معماری مایکرو سرویس طراحی می‌شن! درنتیجه هر قسمت مختلف برنامه، قابلیت مقیاس‌پذیری و تغییر منابع رو با توجه به لود و میزان درخواست خواهد داشت.

اگه تجربه‌ی بازی آنلاین مثل Battlefield رو داشته باشید، می‌دونید سرعت ارتباط بازیکن‌های مختلف با سرورهای بازی بسیار مهم هست.

چیزی که معمولا با Ping بازیکن تا سرور بازی اندازه‌گیری می‌شه و روی عملکرد بازیکن تاثیر چشم گیری داره! اهمیت بالای این مورد باعث شده سرو‌‌رهای بازی به صورت توزیع شده در نواحی مختلف جغرافیایی یا Region مستقر باشن.

توزیع سرور‌ها در نواحی مختلف و محدودیت توان پردازشی هر سرور -که معمولا با کلمه Slot بیان می‌شه- باعث شده در کنار ماژول اصلی سرور بازی نیاز به ماژول‌هایی مانند Matchmaking بیش از پیش حس بشه، تا کاربرها بتونن به سرور مناسبی متصل بشن.

نسخه‌ی کلاینت بازی

البته پیچیدگی سرور‌های یک بازی آنلاین به معنی عدم پیچیدگی سمت کلاینت نیست!

نسخه‌ی کلاینت شامل تمامی فایل‌ها، asset‌‌ها و کد‌هایی هست که برای اجرا و نمایش محیط بازی تدارک دیده شده.

علاوه بر تمام پیچیدگی‌های ذاتی نسخه‌ی کلاینت، ابزار‌های مختلفی هم بهشون اضافه شده.
به عنوان مثال، در کنار سرور‌های Fraud Detection، کمپانی Valve ماژول VAC رو برای شناسایی متقلب‌ها در سمت کلاینت هم طراحی کرده. البته موضوع بحث ما این نیست.
شما می‌تونید با مراجعه به سایت Stream درموردش اطلاعات بیشتری کسب کنید.

در واقع با گذشت زمان سرور‌های بازی قدرتمندتر و پیچیده‌تر از قبل شدن. اما نتونستن مشکل پیچیدگی کلاینت رو به راحتی بدون نیاز به سخت افزار‌های قدرتمند‌تر حل کنن!

کار به جایی رسیده که درحال حاضر گیمر بودن بسیار پرهزینه هست! شما برای اینکه بتونید پا به پای کمپانی‌های بازی‌سازی پیش برید، باید هر سال هزینه‌ی زیادی رو برای خرید سخت‌افزار پس‌انداز کنید.

شما می‌تونید با استفاده از بخش کاتالوگ سکو سرور خودتون برای بازی Minecraft رو بسازید.

ابرِ بازی

در نهایت، پیچیدگی سمت کلاینت، قیمت سخت‌افزار و پیشرفت شبکه‌های اینترنتی باعث شد تا یک لایه‌ی دیگه به دو لایه‌ی قبلی اضافه بشه که ما بهش می‌گیم ابرِ بازی!

فرض کنید به جای اینکه دستورات حرکتی و عمل‌هایی که شما از طریق حرکت موس، صفحه کلید و یا لمس صفحه نمایش انجام می‌دید به نسخه‌ای از بازی که روی کنسولتون نصب شده ارسال بشه، از طریق اینترنت به یک نسخه از بازی که روی یک سخت‌افزار قدرتمند در حال اجراست ارسال بشه و نتیجه‌ی اون عمل در قالب یک تصویر برای شما به نمایش در بیاد.

در این صورت شما نیاز به سخت افزار پیچیده‌ای برای اجرای بازی‌ها ندارید!

در واقع تمام پردازش‌ها جایی خارج از کنسولی که در اختیارتون هست انجام شده و فقط نتیجه نهایی برای شما به نمایش در اومده. تمام سرویس‌هایی که با برچسب Cloud Gaming می‌شناسیم، اومدن تا به نحوی همین امکان رو برای کاربر فراهم کنن!

از اینجا به بعد پای Nvidia GeForce Now به دنیای بازی آنلاین با شیوه‌ای متفاوت باز می‌شه.

تکنولوژی ابرِ بازی GeForce Now

کمپانی‌ای که همیشه سعی در فروش محصولاتش داشته -تا کامپیوتر شما رو تبدیل به یک کنسول قدرتمند بکنه- حالا سعی داره بجای فروش سخت‌افزار، اون رو از طریق اینترنت به شما اجاره بده!

همونطور که گفته شد Geforce Now مربوط به لایه‌ی نوظهور یعنی لایه‌ی ابرِ بازی می‌شه که برای شما این امکان رو فراهم می‌کنه تا بدون داشتن سخت‌افزار قدرتمند، بازی‌های جدید رو تجربه کنید.

GeForce NOW is NVIDIA’s cloud-based game streaming service, delivering real-time gameplay straight from the cloud to your laptop, desktop, Mac, SHIELD TV, or Android device. Connect to your store accounts and stream your own library of games, or play your favorite free-to-play games. With cloud saves for supported games, you can pick up your game where you left off, on any supported device, wherever you are.

 NVIDIA Corporation

همونطور که Nvidia اعلام کرده این سرویس با استفاده از استریم خروجی یا تصویر نهایی بازی بر روی بستر اینترنت، به کنسول‌های شما این امکان رو می‌ده که به ابر Nvidia متصل بشن و امکان انجام بازی رو روی اکانت‌های خودتون فراهم کنن.

برای ارائه‌ی همچین سرویسی، نیاز به استفاده از زنجیره وسیعی از تکنولوژی‌ها هست تا خروجی بازی از روی ابر به صفحه نمایش بازیکن منتقل بشه.

استریم بازی

اولین و مهم‌ترین چیزی که از دید کاربر نهایی مطرح هست، نحوه‌ی ارسال دستورات کاربر به ابر و دریافت خروجی بازی بر روی صفحه نمایش است!

سرعت مهم‌ترین فاکتور برای هر دو طرف این ارتباط هست!
به گفته‌ی Nvidia، شما برای احساس تجربه‌ی عالی از این سرویس، نیاز به میانگین سرعت 50Mbit/sec یا ۶ مگابایت دارید! البته با سرعت 15Mbit/sec هم این سرویس قابل استفاده هست!

برای اینکه بتونیم کیفیت حداقلی رو برای استریم یک ویدیو با کیفیت 4K داشته باشیم، نیاز داریم اینترنتی پایدار با حداقل سرعت 25Mbit/sec داشته باشیم. به همین دلیل Nvidia خروجی‌ای با حداکثر کیفیت ‍1080p با نرخ تصویر 60fps برای کاربر‌ها در نظر گرفته. البته متاسفانه امکان تغییر تنظیمات تصویر دریافتی وجود نداره و این کار بصورت خودکار توسط کلاینت انجام می‌شه.

پروتکل ارتباطی

اما چه پروتکلی از پس این کار برمیاد؟

اگه پروتکل UDP توی ذهنتون هست باید بگم کاملا درست حدس زدید!

همونطور که میدونید پروتکل UDP سریع‌ترین پروتکل فراگیر ارتباطی برای استریم هست. این پروتکل در مقایسه باTCP، با حذف پکت‌های ACK سرعت انتقال داده رو به شدت افزایش داده! به همین دلیل، Nvidia از دو پورت مختلف برای دریافت اطلاعات صوتی و تصویری از سمت ابر استفاده می‌کنه:

49003 – UDP Inbound AUDIO
49005 – UDP Inbound VIDEO

اما ماجرا برای ارسال دستورات شما -فشردن کلید خاص یا حرکت موس- کمی متفاوت هست!

سرعت بالای پروتکل UDP بدون از دست دادن Reliability پروتکل TCP امکان پذیر نیست! در واقع با حذف پکت‌های ACK امکان اطمینان از انتقال بدون خطای اطلاعات هم فراهم نیست؛ به عنوان مثال، نمی‌تونیم با اطمینان بگیم کاربر موس رو چقدر و در کدوم جهت حرکت داده!

به همین دلیل برای ارسال دستورات شما به ابر از پروتکل TCP استفاده شده:

49006 – TCP/UDP Outbound/Inbound Remote Input

علاوه‌براین، از پورت UDP/49004 برای انتقال صوت شما به سمت ابر و ارسال اون به باقی کابرها در بازی‌های گروهی که کاربر‌ها با هم ارتباط صوتی دارند، استفاده می‌شه!

برای اطلاعات بیشتر در رابطه با پروتکل‌های UDP/TCP می‌تونید به این لینک مراجعه کنید.

مشخصات ابر GeForce Now

معمولا ارائه‌دهنده‌های سرویس‌های ابری اطلاعات مشخص و دقیقی از زیرساخت و تکنولوژی‌های مورد استفاده‌شون در اختیار عموم قرار نمیدن؛ اما Nvidia مقداری شفاف‌تر از باقی رقبا عمل کرده!

در حال حاضر، کلاستری از سرورهای Nvidia در ناحیه‌های امریکای شمالی، اروپا، شرق آسیا و ژاپن مستقر هستند.

همونطور که می‌شه حدس زد، Nvidia از کارت گرافیک نسل Tesla برای زیرساخت ابرِ بازی استفاده کرده و تست‌های انجام شده توسط کاربران و نوشته‌های انجمن‌ها نشون می‌ده از دو مدل T10 و P40 در ابرِ بازی Nvidia استفاده شده.

طبق QoS ارائه شده، Nvidia برای کاربرانی که از اکانت Founder استفاده می‌کنن، حداقل کیفیتی در حد کارت گرافیک GeForce RTX 2080 رو تضمین کرده!

Each RTX blade server packs 40 GPUs into an 8U space and can be shared by multiple users with NVIDIA GRID vGaming or container software. Mellanox technology is used as the backbone storage and networking interconnect to deliver the apps and updates instantly to thousands of concurrent users

Jensen Huang

در مورد لایه‌ی مجازی‌سازی مورد استفاده در ابر، اطلاعات دقیقی منتشر نشده ولی با توجه به همکاری VMWare و Nvidia برای ارائه سرویس vGPU، احتمالا این سرویس از بستر NVIDIA GRID و VMWare برای آماده سازی Slot های بازی استفاده می‌کنه!

  • شما می‌تونید وضعیت لحظه‌ای این سرور‌ها رو از این لینک مشاهده کنید.

بررسی نهایی

به عنوان یک کاربر ایرانی، من و شما به سرویس GeForce Now دسترسی نداریم!

در واقع برای استفاده از این سرویس علاوه بر اینترنت پرسرعت، به یک ابزار برای عبور از تحریم نیاز دارید!

در صورتی که این پیش‌نیازها رو فراهم کردید، می‌تونید بعد از دانلود نرم افزار GeForce Now، به صورت رایگان، با محدودیت‌های درنظر گرفته شده، از این سرویس استفاده کنید!

در مقایسه با سرویس‌دهنده‌های خارجی، Nvidia GeForce Now شروع جدّی‌تری داشته! احتمالا سرسخت‌ترین رقیبی که می‌تونیم براش متصور باشیم Google Stadia هست! البته پلتفرم بازی ابری Play POD هم به عنوان یک گزینه‌ی ایرانی طبق بررسی‌های انجام شده، فراتر از حد انتظار بوده!

پلتفرم GeForce Now تعدادی از بازی‌های رایگان و یا بازی‌هایی که اکانتشون رو از استیم - و باقی سرویس‌دهنده‌هایی که توسط Geforce Now پشتیبانی می‌شن- رو برای کاربر‌‌ها فراهم کرده!

یکی دیگه از مزایای این سرویس این هست که می‌تونید بدون محدودیت پلتفرم، بازی کنید و به عنوان یه کاربر مک یا اندورید از بازی‌هایی که برای پلتفرم ویندوز ارائه شدن لذت ببرید!

ابر بازی شروع یک قدم بزرگ برای تغییر در همه‌ی زمینه‌های توسعه و انتشار بازی محسوب می‌شه؛ این قدم به حدی بزرگ و مهم هست که می‌تونه زمینه ساز حذف کنسول های رایجی مثل Play Station و یا Xbox بشه!