آموزش یونیتی چند نفره: ایجاد و میزبانی سرور اختصاصی بازی. - آخرین آپدیت

دانلود Unity Multiplayer: Create and host dedicated game server.

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش ساخت و میزبانی سرور اختصاصی بازی آنلاین با Unity3D و LiteNetLib

یاد بگیرید چگونه با استفاده از شبکه‌سازی Low-Level از طریق LiteNetLib و Unity3D، یک سرور اختصاصی بازی ایجاد و میزبانی کنید.

  • ایجاد سرور اختصاصی بازی با استفاده از LiteNetLib و .NET Core 6
  • میزبانی سرور بر روی Digital Ocean، Azure، AWS یا هر پلتفرم ابری دیگر با استفاده از Docker و Azure Container Instances
  • ایجاد یک کلاینت ساده بازی TicTacToe که با سرور اصلی ارتباط برقرار می‌کند
  • ایجاد لابی بازی برای کمک به مسابقات
  • ایجاد یک لایه شبکه قوی که می‌توان برای هر بازی آینده مجدداً استفاده کرد

پیش نیازها: توصیه می کنیم دانش اولیه ای از زبان C# و Unity3D داشته باشید.

می‌خواهم با شما کاملاً صادق باشم.

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

در این آموزش چه انتظاری باید داشته باشید:

  1. در بخش اول، ما یک تنظیمات بسیار حداقلی از ارتباط کلاینت-سرور خود را با استفاده از Unity3D، .NET 6 و کتابخانه شبکه LiteNetLib ایجاد می کنیم.
  2. پس از اتمام اثبات مفهوم، یا همانطور که دوست دارم آن را "پروژه اسکلت متحرک" بنامم، به بنای پایه‌های یک ارتباط کلاینت به سرور قوی ادامه خواهیم داد. ما سریال‌سازی و دیسریال‌سازی بسته‌ها را پیاده‌سازی خواهیم کرد و این کار را به گونه‌ای انجام خواهیم داد که منطقی که بسته‌های مختلف را مدیریت می‌کند، در هندلرهای بسته مختلف جدا باشد و از ساختارهای C# کاملاً تایپ شده استفاده کند.
  3. پس از اتمام لایه شبکه، روی دو صحنه اصلی کار خواهیم کرد که برای هر بازی چند نفره ضروری هستند. صحنه های ورود و لابی.
  4. در صحنه ورود، به بازیکنان اجازه می دهیم خود را شناسایی کرده و در سرور ما ثبت نام کنند. ما اعتبارسنجی ورودی کاربر را انجام خواهیم داد و به کاربر بازخورد بصری در قالب انیمیشن بارگیری می دهیم.
  5. در صحنه لابی، یک لیست مرتب شده از 10 بازیکن برتر ایجاد می کنیم و وضعیت آنها (آنلاین یا آفلاین) را نشان می دهیم. ما همچنین تعداد کل بازیکنان فعلی را در سرور نشان خواهیم داد. علاوه بر این، وقتی یک بازیکن جدید وارد می شود یا یک بازیکن موجود آفلاین می شود، لیست را در همه کلاینت ها به روز می کنیم.
  6. پس از اتمام این کار، به بازیکنان این امکان را می دهیم که در استخر مسابقات خود ثبت نام کنند و با فشار دادن دکمه "یافتن حریف" به دنبال حریف بگردند.
  7. پس از یافتن مسابقه، بازیکنان را به صحنه بازی واقعی هدایت می کنیم، جایی که می توانند بازی کلاسیک Tic Tac Toe را انجام دهند.
  8. ما انیمیشن های زیبا را پیاده سازی می کنیم و گوشه های خاص را در هر دو سمت سرور و کلاینت مدیریت می کنیم.
  9. پس از اتمام یک جلسه بازی، به بازیکنان اجازه می دهیم دوباره درخواست بازی کنند و سپس البته به آنها این امکان را می دهیم که پیشنهاد را بپذیرند یا رد کنند.
  10. و در آخر، هنگامی که از کلاینت و سرور بازی آماده شدیم، سرور خود را در یک ارائه دهنده ابری مستقر می کنیم و از کلاینت به آن متصل می شویم.
  11. اگر علاقه ای به این آموزش وجود داشته باشد، آن را با بخش های اضافی پاداش بسته به نیاز دانشجویان گسترش خواهم داد.

از آنجایی که این اولین آموزش من در Udemy است، مهارت های ارائه من دور از کمال است و من از این بابت عذرخواهی می کنم، اما هنوز معتقدم که اطلاعات ارزشمندی وجود دارد که می توانید از آن بهره مند شوید. واقعاً امیدوارم از آن لذت ببرید.

آیا شرایط یا پیش نیازهای دوره وجود دارد؟

درک اساسی از Unity3D و .NET

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

این دوره برای چه کسانی است:

این دوره برای هر کسی است که علاقه مند به ایجاد یک سرور اختصاصی سفارشی با استفاده از شبکه سازی سطح پایین است. این دوره برای مبتدیان کامل نیست زیرا مفاهیم بسیار اساسی مانند: نحوه نصب نرم افزار یا اصول اولیه برنامه نویسی C# را پوشش نمی دهد. اما من هنوز معتقدم که حتی اگر مبتدی باشید، می توانید آن را دنبال کنید، زیرا این دوره اساساً یک راهنمای گام به گام است.


سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • راه اندازی محیط توسعه دهنده Setting up the developer environment

راه اندازی اولیه شبکه با استفاده از LiteNetLib Minimal setup of Networking using LiteNetLib

  • ایجاد پروژه جدید Unity Create new Unity project.

  • LiteNetLib - UPDATE(06.2024) LiteNetLib - UPDATE(06.2024)

  • NetworkClient با استفاده از LiteNetLib NetworkClient using LiteNetLib.

  • NetworkServer با استفاده از LiteNetLib NetworkServer using LiteNetLib

  • یکپارچه سازی کلاینت-سرور Client-Server integration

  • کد منبع بخش Section Source Code

صحنه ورود Login Scene

  • مقدمه Introduction

  • نصب فونت سفارشی Install custom font

  • رابط کاربری ورود Login UI

  • اعتبارسنجی فرم ورود بخش 1 Login form validation part 1

  • اعتبارسنجی فرم ورود بخش 2 Login form validation part 2

  • انیمیشن بارگذاری Loading animation

  • کلیک دکمه ورود Login button click

  • بسته های شبکه سریالیزه شده Serializable network packets

  • رویداد OnServerConnected OnServerConnected event

  • کد منبع بخش Section Source Code

معماری سرور Server architecture

  • تزریق وابستگی Dependency Injection

  • OnNetworkReceive OnNetworkReceive

  • حل بسته ها با استفاده از PacketRegistry Resolving packets using PacketRegistry

  • حل هندلرها با استفاده از HandlerRegistry و HandleRegisterAttribute Resolving handlers using HandlerRegistry and HandleRegisterAttribute

  • ثبت هندلر پویا در کانتینر DI Dynamic handler registration in DI container

  • کد منبع بخش Section Source Code

احراز هویت کاربر User Authentication

  • مخزن کاربران Users repository

  • مدیریت اتصالات کاربر Handling user connections

  • اطلاع رسانی نتیجه احراز هویت به کلاینت ها Notify clients for auth outcome

  • هندلر بسته OnAuth OnAuth packet handler

  • هندلر بسته OnAuthFail OnAuthFail packet handler

  • کد منبع بخش Section Source Code

صحنه لابی Lobby scene

  • رابط کاربری لابی Lobby UI

  • درخواست وضعیت سرور Requesting server status

  • هندلر ServerStatusRequest ServerStatusRequest handler

  • رندر کردن بازیکنان برتر بخش 1 Rendering top players part 1

  • رندر کردن بازیکنان برتر بخش 2 Rendering top players part 2

  • نمایش تعداد کل بازیکنان Displaying total players count

  • راه اندازی ParrelSync Setup ParrelSync

  • فعال کردن Run in Background Enable Run in Background

  • به روز رسانی صفحه نمایش سایر بازیکنان هنگام قطع اتصال Update other players screens on disconnect

  • خروج از حساب Logging out

  • رابط کاربری دکمه یافتن حریف Find opponent button UI

  • کلیک و لغو دکمه Find opponent. Find opponent button onClick and cancelling.

  • مدل ها و تعریف هندلرها برای FindOpponentRequest و CancelFindOpponentRequest FindOpponentRequest and CancelFindOpponentRequest models and handlers definition

  • همسان سازی (Matchmaking) بخش 1 Matchmaking part 1

  • همسان سازی (Matchmaking) بخش 2 Matchmaking part 2

  • مدیر بازی ها Games Manager

  • اعلام رویداد OnStartGame Raising OnStartGame event.

  • هندلر بسته OnStartGame OnStartGame packet handler

  • کد منبع بخش Section Source Code

صحنه بازی Game scene

  • رابط کاربری بازی Game UI

  • [کلاینت] مدیر بازی [Client] GameManager

  • منطق متن نوبت بازیکن فعلی Current player turn text logic

  • رندر کردن صفحه بازی Rendering the game Board

  • مدل ها و تعریف هندلرها برای MarkCellRequest و OnMarkCell MarkCellRequest and OnMarkCell models and handlers definition

  • ساختار و اعتبارسنجی MarkCellRequest MarkCellRequest structure and validation

  • بررسی شرط برد در سرور Checking win condition on the server

  • مدیریت نتایج مختلف MarkCell. هیچکدام، مساوی، برد Handling different MarkCell outcomes. None, Draw, Win

  • هندلر OnMarkCell در کلاینت OnMarkCell handler on the client

  • به روز رسانی متن نوبت بازیکن فعلی Updating current player turn text

  • خط برد Win line

  • کد منبع بخش Section Source Code

مودال پایان دور EndRound modal

  • قصد ساختن چه چیزی را داریم What are we going to make

  • رابط کاربری مودال Modal UI

  • مقداردهی اولیه و نمایش مودال در پایان دور Initializing and showing the modal on round end

  • انیمیشن مودال Modal animation

  • مدل و هندلر درخواست PlayAgain PlayAgain request model and handler

  • هندلر OnPlayAgain OnPlayAgain handler

  • پذیرش درخواست بازی دوباره Accepting play again request

  • مدیریت OnNewRound Handling OnNewRound

  • تسلیم شدن Surrendering

  • مدیریت OnSurrender Handling OnSurrender

  • خروج Quitting

  • کد منبع بخش Section Source Code

ساخت و استقرار Build and Deploy

  • ساخت فایل اجرایی کلاینت Build client executable

  • ساخت و ارسال ایمیج Docker به dockerhub Build and push Docker image to dockerhub

  • میزبانی سرور در فضای ابری با استفاده از DigitalOcean droplet Host the server in the cloud using DigitalOcean droplet

  • کد منبع دوره Course Source Code

نمایش نظرات

آموزش یونیتی چند نفره: ایجاد و میزبانی سرور اختصاصی بازی.
جزییات دوره
12.5 hours
77
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
527
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Dobromir Ivanov Dobromir Ivanov

توسعه‌دهنده ارشد و علاقه‌مند به بازی‌های مستقل