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

بسم الله الرّحمن الرّحیم

به مناسبت عید فطر

multiplayer1cover

آموزش ساخت بازی چندنفره 1: مفاهیم پایه (6276 downloads)

معرّفی

ساخت بازی‌های چند نفره (مولتی پلیر) کار سختی است، البتّه کانستراکت 2 بسیاری از پیچیدگی‌های این کار را برای شما آسان کرده است. برای این‌که بتوانید به نحو احسن از قابلیّت چند نفره‌ی کانستراکت 2 استفاده کنید باید با نحوه‌ی کار بازی‌های آنلاین، مشکلاتی که در این زمینه پیش می‌آید و نحوه‌ی حلّ آن‌ها آشنا شوید.

اگر از چیزهایی که در این آموزش ذکر می‌کنیم استفاده‌ی اشتباه شود، بازی دچار باگ‌ها و مشکلات عجیب و غریبی می‌شود. با این که شاید خیلی دوست داشته باشید هر چه سریع‌تر بازی چند نفره بسازید، ما به شدّت به شما توصیه می‌کنیم قبل از شروع کار هر چهار آموزش ساخت بازی چند نفره را مطالعه کنید. چون که ساخت بازی چند نفره یک ویژگی پیشرفته است، ممکن است برای تازه‌کاران کمی مشکل باشد.

اتّصال

موتور چندنفره‌ی کانستراکت 2 بر پایه‌ی WebRTC DataChannels ساخته شده است. در کانستراکت 2 بازی‌کن‌ها به جای این‌که از طریق یک سرور به هم وصل شوند، به طور مستقیم به یکدیگر متّصل می‌شوند.

در این حالت اوّلین کسی که به بازی ملحق می‌شود هاست[1] (Host) نام می‌گیرد. بقیّه‌ی کسانی که به بازی ملحق می‌شوند فقط به هاست متّصل می‌شوند. بازی‌کن‌هایی که هاست نباشند پیر (Peer) نام می‌گیرند. هاست به عنوان سرور بازی عمل می‌کند. تفاوت اصلی بین هاست و سرورهای مرکزی این است که هاست می‌تواند یکی از بازی‌کن‌ها باشد در حالی که سرور همیشه آنلاین توسّط سازنده‌ی بازی راه اندازی شده است. درضمن هاست خودیک شرکت کننده‌ی فعّال در بازی است، ولی سرور خود جزو بازی نیست و فقط بازی را برای بازی‌کن‌ها اجرا می‌کند.

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

البته باز هم می‌توانید بازی‌تان را با سرور مرکزی هم بسازید، به این صورت که بازی‌تان را طوری طرّاحی کنید که هاست یکی از شرکت کننده‌ها در بازی نباشد، و آن را روی یک سرور اجرا کنید. امّا اگر بخواهید این کار را انجام دهید مجبورید هزینه‌ای را نیز برای سرور پرداخت کنید. امّا اتّصال همتا به همتا (peer to peer) خیلی ارزان‌تر برایتان در می‌آید.

یک پیر برای این‌که بتواند به هاست وصل شود باید بداند که هاست در کجا قرار دارد و چگونه می‌تواند این کار را انجام دهد. برای این کار باید آدرس IP را هم پیدا کند.

سال‌هاست که استفاده از نسخه‌ی 4 آیپی (IPv4) در اینترنت دوام یافته است. این باعث می‌شود که چندین کاربر پشت یک آیپی مخفی بمانند. این کار به وسیله‌ی برگردان نشانی شبکه (NAT)[2] انجام می‌شود. مثلاً در خانه یا محلّ کار شما یک مودم اینترنت دارید که تعدادی رایانه یا موبایل و… برای اینترنت به آن وصل شده اند، در این حالت گونه‌ای از NAT باعث می‌شود آدرس آیپی تمام آن‌ها با هم یکی شود، در حالی که آن‌ها از پورت‌های مختلف به آن مودم وصل شده‌اند. NAT انواع دیگری نیز دارد، بعضی از انواع NAT باعث یکی شدن آیپی‌های یک منطقه، ارائه دهندگان خدمات اینترنتی (ISPها)، و شبکه‌های تلفن همراه می‌شوند. متأسفانه این یعنی ممکن است در بعضی از موارد امکان اتّصال نباشد، مخصوصاً اگر هاست و پیر هر دو به وسیله‌ی NAT پشت یک آیپی مخفی شده باشند.

وضع شبکه و NAT

مثلاً یک پیر را در نظر بگیرید که می‌خواهد به هاست متّصل شود و هاست پشت یک NAT محدود مثل تصویر بالا باشد. در این صورت به خاطر یکی بودن نشانی آیپی این سه پورت، پیر نمی‌داند که باید به Port A وصل شود یا Port B یا… . این باعث می‌شود که در بعضی از موارد دو بازی‌کن نتوانند به یکدیگر متّصل شوند، و در این موارد باید نقش هاست را بازی‌کن دیگری انجام دهد.

نسخه‌ی 6 آیپی (IPv6) با تعداد نشانی‌های بسیار بیشتر از IPv4 به تدریج اینترنت را می‌پوشاند. در این صورت هر دستگاه متّصل به اینترنت یک آیپی منحصر به فرد خواهد داشت و دیگر نیازی به NAT وجود ندارد، و در نتیجه مشکلی در اتّصال نخواهیم داشت.

 

[1] هاست به معنی میزبان می‌باشد.

[2] NAT: Network Address Translation

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

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

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

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