آموزش ساخت بازی چندنفره: مفاهیم اوّلیّه

کیفیّت اتّصال

برای این‌که کیفیّت اتّصال در اینترنت تعیین شود، اندازه‌گیری‌هایی انجام می‌شود. این اندازه‌گیری‌ها در تعیین کیفیّت روند بازی هم مؤثّرند. این اندازه‌گیری‌ها شامل این موارد می‌شود: latency، packet delay variance (PDV)، packet loss و پهنای باند (bandwidth).

Latency

به خاطر دستگاه‌های روتر و قوانین فیزیکی، هر بسته‌ی اطّلاعاتی کمی طول می‌کشد تا به مقصد برسد. به مدّت زمانی که این بسته در راه است Latency و گاهی اوقات زمان پینگ (ping time) گفته می‌شود. این زمان در بین دو بازی‌کن از هر جای جهان که باشند معمولاً بین 20 تا 200 میلی‌ثانیه است، البته گاهی اوقات گزارش شده است که Latency از این هم بیشتر بوده است. در حالت عادی نرخ فریم بازی‌ها 60 فریم بر ثانیه است، یعنی هر فریم حدود 16 میلی‌ثانیه نمایش داده می‌شود. حالا اگر Latency بازی ما 100 میلی‌ثانیه باشد، یک پیغام که می‌خواهد از یکی از بازی‌کنان به دیگری فرستاده شود حدود 6 فریم دیرتر به مقصد می‌رسد، اگر این پیغام جوابی هم لازم داشته باشد این دوبرابر می‌شود، یعنی باز 6 فریم دیگر طول می‌کشد تا جواب به مقصدش برسد.

Latency

در بازی‌های اکشن زمان عکس‌العمل خیلی مهم است. بازی‌کنان حرفه‌ای معمولاً می‌توانند به رویدادهای مختلف بازی در عرض چند صدم ثانیه عکس‌العمل نشان دهند. آن‌ها به این تأخیرها بسیار حسّاس می‌شوند. گلوله‌ای را در نظر بگیرید که با سرعت 500 پیکسل بر ثانیه حرکت می‌کند. این گلوله در مدّت 200 میلی‌ثانیه به اندازه‌ی 100 پیکسل حرکت می‌کند که مسافت آن‌چنان کمی نیست.

Latency باعث به وجود آمدن مشکلات وحشتناکی می‌شود. برای این‌که بازی منصافه باشد، باید همه‌ی بازی‌کنان یک چیز یکسان را ببینند و برای عکس‌العمل نشان دادن به رویدادهای بازی فرصت برابری داشته باشند. در عمل هر بازی‌کنی با یک تأخیر زمانی بازی را انجام می‌دهد و این هاست است که برای اتّفاقات اصلی بازی تصمیم می‌گیرد. با این حال تکنیک‌هایی هستند که برای جبران این تأخیر زمانی استفاده می‌شوند و بازی را منصفانه نگه می‌دارند.

(Packet Delay Variance (PDV

مشکل دیگر Latency این است که می‌تواند برای هر پیامی متفاوت باشد. اگر دو پیام از طریق اینترنت ارسال شوند، یکی از آن‌ها می‌تواند در عرض 50 میلی‌ثانیه فرستاده شود، و دومی در عرض 70 میلی‌ثانیه. به این مشکل packet delay variance یا به اختصار پی‌دی‌وی (PDV) گفته می‌شود. در کنستراکت 2 پی‌دی‌وی از تفاضل کمترین Latency از بیشترین Latency به دست می‌آید، در مثالی که الآن زدیم مقدار پی‌دی‌وی 20 میلی‌ثانیه بود. پی‌دی‌وی زیاد از Latency زیاد بدتر است. موتور چندنفره‌ی کنستراکت 2 پیش‌بینی می‌کند که چه قدر طول می‌کشد تا پیام‌ها برسند و سعی می‌کند تا تأخیر پیام‌ها را جبران کند. Latency زیاد و PDV کم یعنی پیش‌بینی‌ها به خوبی عمل می‌کنند و تأخیرها به درستی جبران می‌شوند، در نتیجه روند بازی پایداری داریم. Latency کم و PDV زیاد یعنی پیام‌ها به طور غیر قابل پیش‌بینی دریافت می‌شوند، و اصلاحاتی که موتور چندنفره برای جبران تأخیر انجام می‌دهد، نادرست از آب در می‌آیند، در نتیجه شاهد روند بازی بی‌ثباتی خواهیم بود.

Packet Loss

ممکن است پیام‌ها به طور کامل از دست بروند. در حالی که دستگاه‌های روتر نهایت تلاش خود را می‌کنند تا پیام‌ها را عبور دهند، اگر سیلابی از تعداد بسیار زیادی پیام به سمتشان بیاید، حافظه‌ی‌شان کم بیاورد، کرش کنند، برقشان برود و غیره اجازه دارند پیام‌ها را دور بریزند. Packet loss درصد پیام‌هایی است که از دست می‌روند. موتور چندنفره به راحتی می‌تواند بسته‌هایی را که به طور اتّفاقی از دست رفته‌اند جبران کند. امّا اگر packet loss خیلی زیاد باشد، روند بازی دچار مشکل خواهد شد. اگر حجم اطّلاعات روتر بخواهد از فضایی که دارد فراتر برود، بعضی از پیام‌ها پردازش خواهند شد و دوباره فرستاده می‌شوند، و بقیّه‌ی پیام‌ها دور انداخته می‌شوند. پیام‌های کوتاه‌تر فرستاده می‌شوند و پیام‌های بزرگ‌تر از بین می‌روند. اگر روترها این کار را نکنند مشکلاتی برایشان پیش می‌آید که لازم نمی‌بینم در این قسمت درباره‌اش حرفی بزنم.

پهنای باند

پهنای باند به سرعت ارسال اطّلاعات ربط دارد. همه‌ی اتّصالات اینترنتی دارای یک حدّاکثر سرعت دانلود و آپلود هستند، که معمولاً در واحد مگابیت بر ثانیه اندازه‌گیری می‌شود. چون هر یک بایت (B) هشت بیت (b) است، اگر سرعتی بر حسب مگابیت بر ثانیه را به شما بدهند با تقسیم آن بر هشت سرعت را بر حسب مگابایت بر ثانیه به دست خواهید آورد (چون اکثر سیستم‌های نرم افزاری، همچنین کنستراکت 2، اطّلاعات را بر حسب بایت اندازه می‌گیرند نه بیت). مثلاً، یک اتّصال با پهنای باند 40 مگابیت بیت بر ثانیه از نظر علمی در هر ثانیه 5 مگابایت اطّلاعات را انتقال می‌دهد. با این وجود سرعت آپلود می‌تواند فرق داشته باشد، و معمولاً بیشتر مصرف اینترنت صرف دانلود می‌شود و آپلود مصرف کم‌تری دارد.

پهنای باند می‌تواند به عنوان دهانه‌ی بطری برای بازی‌های بزرگ محسوب شود. وقتی تعداد بیشتری پیر به بازی ملحق می‌شود، برای این‌که همه‌ی پیرها به روز باشند هاست مجبور می‌شود حجم بیشتری را آپلود کند. بالأخره هاست مجبور می‌شود با سرعتی اطّلاعات را آپلود کند که سرعت آپلودش اجازه نمی‌دهد، در نتیجه Packet loss رخ خواهد داد. این دلیل دیگری است برای فرستادن پیام‌های کوتاه با پایین‌ترین سرعت قابل قبول، چون این کار استفاده از پهنای باند را به حدّاقل می‌رساند.

سؤالات فنی خود را فقط در انجمن بپرسید. در غیر این صورت پاسخ داده نخواهد شد.
۳۳ نظر

افزودن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق برای مرجع تخصصی کانستراکت محفوظ است.