sina karimi
sina karimi
خواندن ۲ دقیقه·۱ سال پیش

معماری سرور بازی های چند نفره

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

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

با یک سرچ ساده به کلمه ایی بر خوردم به نام NetCode که احتمالا راجبش شنیدین.

قبل از اینکه راجب NetCode داخل موتور بازی سازی یونیتی صحبت کنم دوست دارم که چند تا معماری مختلف برای بازی های چند نفره رو بررسی کنیم و در نوشته های بعدی (اگر عمری باشه و تایمی داشته باشم ...) به مسئله NetCode بپردازیم.

معماری های متفاوتی برای توسعه یک بازی چند نفره وجود داره که به ما کمک میکنن تا client ها یا همون player هامون رو به یکدیگر متصل کنیم.

Local or couch multiplayer

قطعا برای شما هم اتفاق افتاده که با رفیق رفقا جمع بشید دور هم و بازی هایی مثل کراش ماشینی بازی کنید، معماری این دسته از بازیی هایی که می تونیم تو جمع ها و دوره همی ها با دوستانمون بازی کنیم local or couch multiplayer نام میگیرن، جالبه بدونید، کلمه couch که به کاناپه اشاره داره، این مفهوم رو میرسونه که می تونیم باهم دیگه روی یک کاناپه بشینیم و روی یک صفحه نمایش بازی کنیم.

Lan game (offline)

احتمالا برای شما هم اتفاق افتاده که چند تا سیستم رو از طریق کابل های Lan به یکدیگر متصل کنید و بازی هایی مثل کانتر رو با اطرافیان بازی کنید، این دسته از بازی ها به معماری Lan (offline) تعلق پیدا میکنن.

Peer-to-Peer (P2P)

این معماری زمانی اعمال می شود که به عنوان مثال دو client می خواهند بدون وجود یک سرور مرکزی به یکدیگر متصل بشن و از منابع یکدیگر نیز استفاده بکنند.

Client hosted (Listen server)

در این معماری یکی از client ها دارای دو مسئولیت هست، هم به عنوان Host عمل میکنه که سایر client ها به او وصل میشن و هم به عنوان client می تونه داخل بازی شرکت کند.

یکی از تفاوت های این معماری با معماری P2P این است که این معماری centralize و معماری P2P یک معماری decentralize می باشد.

Dedicated Game Server (DGS)

در این نوع معماری زیر ساخت ها و سرور هایی برای بازی طراحی می شود که بازیکنان می توانند از طریق اتصال به آن با یکدیگر بازی کنند.


اینکه کدام یک از این معماری ها برای بازی ما مناسب هست، به خواسته ها و نوع پروژه ما بستگی داره و نمی توان گفت کدام معماری بهترین هست و بهترین نتیجه رو خواهد داشت.

مرسی که وقت گذاشتین، تا مطالب بعدی شاد باشید. :)

معماریبازی سازیunitynetworkشبکه
نیمچه برنامه نویس و توسعه دهنده بازی
شاید از این پست‌ها خوشتان بیاید