مقدمه ای برای ساخت بازی های انلاین
بازی انلاین چیست ؟
امروزه با پیشرفت روز افزون فناوری مخصوصا افزایش سرعت اینترنت تعداد بازی های انلاین یا متکی به شبکه روز به روز افزایش می یابد , بازی انلاین یا On Line به معنی متکی به شبکه است و عموما دارای یک نرم افزار برای کنترل تمام داده ها با اسم server و تعدادی دستگاه به اسم client است مانند تصویر زیر

در بازی های تحت سرور نوع کلاینت میتواند پلتفورمی متفاوت باشد ماننده تصویر بالا
ایا Unity3D برای بازی های انلاین مناسب است ؟
این سوالی است که خیلی ها میپرسند , ایا با یونیتی میشود بازی انلاین ساخت ؟ ایا گرافیک و سرعت ان قابل قبول خواهد بود ؟
این سوال نیازی به پاسخ ندارد , چون ما داریم در مورد سریع ترین و سبک ترین و بهینه ترین انجین مخصوصا برای کامپیوتر های خانگی حرف میزنیم در حال حاضر یونیتی هر سال یک اپدیت بزرگ برای این انجین ارایه میدهد و با این حال تمام اپدیت ها تا الان رایگان بوده و هیچ گونه پرداختی برای ان توسط کاربر انجام نمیشود .
با یونیتی بازی های انلاین زیادی ساخته شده که به دوتا از بهترین ها اشاره میکنم
- بازی MTGA یک بازی کارتی که برای کامپیوتر ساخته شده و سالهاست که سرورهای اون بدون مشکل دارن کار میکنن و تقریبا هر ماه چند اونت و اپدیت جدید به بازی اضافه میشه , بازی در سبک بازی های کارتی ساخته شده که یکی از بهترین بازی های ساخته شده برای کامپیوتر می باشد و با توجه به انلاین بودن سرورهای بازی تا کنون میشه نتیجه گرفت که بازی درامد بسیار قابل قبولی برای سازندگانش ایجاد گرده.


2. بازی bleach brave souls نیز جزو اون تعداد از بازیهایی است که با گذشت چندین سال هنوز با قدرت ادامه میدهد و باتوجه به اپدیت های هفتگی و کاراکتر های بسیار زیاد ( بیشتر از 300 تا ) به ما ثابت میکند که واقعا کار نشد نداره , این بازی برای اکثر پلتفورم ها انتشار یافته و جزو موفق ترین هاست (با داشتن حدود 10 میلیون کاربر! )



کار با server و اتصال ان به clients
ساخت سرور و اتصال اون به کلاینت جزو مهمترین بخش های ساخت یک بازی انلاین است معمولا شرکت هایی که توانایی و هذینه و دانش کافی دارند خود سرور بازی را مینویسند و خیلی کم پیش میاد که سفارش ساخت اون رو به شرکت یا شخص دیگری واگذار کنند , زیرا امکان وجود حفره های امنیتی در درون سورس کد سرور وجود دارد.
حالا نوبت میرسد به شرکت ها و گروه های کوچک و اکثرا تک نفری که خواهان ساخت یک بازی انلاین هستند , در صورتی که دانش کافی برای ساخت سرور رو داشته باشند میتوانند سرور رو خودشون بنویسند اما در صورتی که دانش کافی نداشته باشند چه ؟
قبل از توضیح این مورد اجازه بدید به چند شرکت ایرانی که یک اقدام جدید انجام داده اند , آنها با ساخت یک سرور برای محاسبه تمام محاسبات کاربران این کار را برای بازی سازان بسیار اسان کرده اند , سروریس هایی مانند گیم سروریس و گیمینگ کلود هرچند کار ساخت سرور رو برای برنامه نویس راحتتر کرده اند با این حال فعلا فقط بدرد بازی های کوچک و تفننی میخورند و حالا حالا ها کار دارند تا بین کاربران محبوب شوند و از این رو رفتن به سمت چنین سرویس های بنظر بنده یک ضعف و شکست از پیش تعیین شده برای بازی سازان جوان کشور خواهد بود.
علت عدم توصیه به استفاده از این سرویس ها :
- در این سرویس ها دیتابیس کاربران پیش انها میماند و حتی نحوه اینکد شدن دیتا هم بسته به انها دارد ( یک ریست بسیار بزرگ)
- شما مدیر سیستم نیستید ! در این سرویس شخص دیگر ( سازنده سرویس ) دسترسی به مراتب بالاتر از شما دارد
- در صورت ورشکست شدن استارت اپ سرویس دهنده شما چه میکنید ؟ صرفه نظر از اینکه حتی اگر انها به شما یک دیتا بیس بک اپ از سرور بازیتون بدن باز هم برای شما بی فایده خواهد بود. شما زمان و مهارت کافی برای ساخت یک سرور یا انتقال ان به سرویس دیگر را نخواهید داشت.
- در صورت بروز باگ و هنگ یا لگ زدن سرور چه میکنید ؟ تا انها بیایند و ان را دریت کنند بازی شما ضرر های جبران ناپذیری را متحمل خواهد شد.
- عدم داشتن انعطاف: اگر اطلاعات سرور شما مورد حمله قرار بگیرد در صورتی که شما دسترسی به فایل سرور داشته باشید میتوانید با یک اپدیت ساده برای نسخه بازی و با کمی هذینه و تغییر زیرساخت های امنیتی ان را رفع کنید , اما در مورد سرویس های بالا فکر نکنم صادق باشد.
اما راه حل :
استفاده از فایل سرور های اماده : شاید در مورد ان گونه نرم افزار ها اطلاع نداشته باشید اما بد نیست بدانید که اکثر تیم های نوپا که دانش و هذینه و زمان کافی ساخت سرور اختصاصی را ندارند از این نوع سرور ها استفاده میکنند , سرور های اماده که در انواع سبک ها تولید شده اند و با زبان های مختلفی نوشته شده اند و اکثرا به صورت اوپن سورس به خریدار تحویل داده میشوند , برای انتخاب بهترین انها در است استور یونیتی جستجو کنید و نظرات کاربران انها را بخوانید و شروع کنید ^_^
انواع سرور :
صرفه نظر از زبان شما برای اجرای سرور ( معمولا ) نیاز دارید تا اون رو در یک vps اجرا کنید تا اماده ارسال و دریافت اطلاعات باشد برخی سرور ها به صورت کاملا باز هستند مثل سرور هایی که با NodeJS نوشته میشن , فایل سرور رو براحتی میتوان باز کردن و تمام پسوردها را برداشت , برخی دیگر به صورت کمپاین شده هستند یعنی به صورت یک فایل نصبی یا اجرایی که برای دسترسی به اطلاعات از مدیر سیستم کد عبور مدیر رو درخواست میکنند , که این بهترین نوع سرور میباشد چرا که امنیت اون بسیار بالا بوده و خطر لو رفتن اطلاعات و هک شدن سرور رو بسیار پایین میاره.
البته میتوانید خودتون هم یک سرور بسازید ولی با توجه به دردسرهای نگهداری معمولا ان را اجاره میکنند
سخن پایانی :
دوستان هر جا رو که اشتباه نوشته ام و یا اطلاعات غلطی ارایه دادم لطفا بهم گوش زد کنید , هدفم از نوشتن این پست کمک به سطح اگاهی بازی سازان ایرانی بوده و امیدوارم که مطالب بالا تا حدی بهتون کمک کنه و هر سوالی داشتید بپرسید در حد توان راهنمایی خواهم کرد.
همچنین توصیه میکنم مقاله زیر رو هم طالعه بفرمایید
موفق و پیروز باشید
جالب بود از این نوع مقاله ها بیشتر بزارید
چشم حتما
چندتا فایل سرور آماده برای یونیتی داریم؟ چندتا رو معرفی میکنید؟؟
سلام , کاربر گرامی در کل نمیشه گفت چندتا سرور اماده داریم چون اگر بخواهیم اینگونه حساب کنیم و هر سروری که یک لیستنر داره رو بشماریم که ^_^ نمیشه , اما میتونیم به برترین ها اشاره کنیم
توصیه میکنم این مقاله رو بخونید.
معرفی چند سرور آماده برای ساخت بازی انلاین در یونیتی