اموزش بازی سازی مولتی پلیر گام به گام: قسمت 600 نظر

اموزش بازی سازی مولتی پلیر گام به گام: قسمت 6

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

نتیجه کامل از مقالات قبل کانسپتی است که توسط ان پلیر بتواند کاراکتر را دقیقا همان طوری که در حالت بازی تک نفره کنترل میکند کنترل کند

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

در مقاله های قبل در مورد رفتار سرور توضیح داده شد که ان بسیار ساده است به این صورت که سرور ورودی های کلاینت را میخواند و براساس ان وضعیت بازی را به روز میکند سپس ان را به کلاینت ها برمیگرداند  هنگامی که بیش از یک کلاینت به سرور متصل است وضعیت حلقه داخل سرور کمی متفاوت است

در این سناریو ، چندین کلاینت ممکن است به صورت همزمان ورودی ها را ارسال کنند که در ان به روز رسانی سرور به وسیله هر ورودی رسیده از کلاینت و پردازش سپس ارسال ان به همه کلاینت ها میتواند باعث فشار بر cpu و پهنای باند شود

برای این موضوع یک روش خوب این است که ورودی های کلاینت ها را براساس هنگام رسیدن به سرور بدون هیچ پردازشی به صف کنیم در عوض وضعیت بازی در فواصل معین و در یک فرکانس پایین به روز شود، به عنوان مثال 10 بار در هر ثانیه  که می شود هر اپدیت 100ms  ، به این روش گام زمانی (time step) گفته می شود در هر تکرار اپدیت تمامی ورودی های پردازش نشده کلاینت ها اعمال می شود (احتمالا در یک مقطع زمانی کمتر از گام زمانی تا بتوان فیزیک را بیشتر قابل بینی ساخت ) و سپس وضعیت جدید بازی به تمام کلاینت ها ارسال می شود

به طور خلاصه به روز رسانی وضعیت بازی مستقل از تعداد و مقدار کلاینت ها و ورودی ان ها در یک سرعت قابل پیش بینی است

از نگاه کلاینت این روش به نرمی روش پیش بینی سمت کلاینت که مستقل از به روز رسانی ها است عمل میکند است بنابراین کاملا واضح است در صورت ترکیب با روش پیش بینی کلاینت به خوبی کار میکند اگر چه به روز رسانی های وضعیت از سمت سرور به ندرت هستند به هر حال به دلیل این که وضعیت بازی در بین کلاینت ها  در یک گام زمانی ثابت و با فاصله پخش(boardcast)  می شوند (با توجه به مثال بالا 100ms ) کلاینت اطلاعات پراکنده ای در مورد سایر اشخاص و اشیا که در حرکت هستند دارد

یکی از گام های پیاده سازی این روش میتواند به روز رسانی موقعیت سایر کاراکتر هنگام دریافت وضعیت بازی باشد که این گام موجب حرکت های متلاطم می شود به این صورت که به جای حرکت نرم هر 100ms پرش هایی در ان ایجاد می شود

 

بسته به سبک بازی که در حال ساخت ان هستید راه های زیادی برای به انجام رساندن ان وجود دارد به طور کلی قابل پیش بینی کردن اجزای بازی اسان ترین و بهترین راه  برای انجام درست ان است

ooxooir@



نسخه PDF این مطلب را دانلود کنید





حق نشر مطالب اوکسو :

 

 

قابل توجه علاقه مندان و کپی کنندگان گرامی ، تمامی مطالب این وب سایت تحت مجوز خالق

(Creative Commons)  می باشد و اجازه کپی کردن ، استفاده تجاری مطالب بدون اجازه

صاحب اثر مجاز نمی باشد و طبق مجوز اثر پیگرد قانونی به همراه خواهد داشت.

مجوز کریتیو کامنز
این کار مجوز دارد تحت مجوز کریتیو کامنز نسبت‌دادن-غیرتجاری-بدون انشقاق ۴٫۰ بین‌المللی.

این مطلب پایان یافت و امیدواریم به نتیجه دلخواهتان رسیده باشید .

 

همچنین میتوانید ما را در شبکه های اجتماعی نیز دنبال کنید و از جدید ترین اخبار ما با خبر شوید :

 

 

3491498_823


نظر شما

مطالب مرتبط