یکی از اولین سؤالهای کارفرما هنگام سفارش بازی آنلاین این است که هزینه سرور چقدر خواهد شد. پاسخ سادهای وجود ندارد، چون دو بازی با تعداد کاربر یکسان میتوانند مصرف منابع کاملاً متفاوتی داشته باشند. یک بازی نوبتی مانند شطرنج با یک اکشن Real-time که در هر ثانیه دهها پیام ردوبدل میکند زیرساخت یکسانی نمیخواهد.
هزینه سرور بازی آنلاین معمولاً به تعداد کاربران همزمان، نرخ پیام، معماری سرور، حجم دیتابیس، ترافیک شبکه، منطقه دیتاسنتر و سطح پایداری موردنیاز بستگی دارد. به همین دلیل بهتر است هزینه زیرساخت پس از طراحی معماری و تست Load برآورد شود نه فقط با تعداد نصب بازی.
در JPGames طراحی بکاند و معماری آنلاین بخشی از پروژههای Multiplayer است و میتوان زیرساخت را از MVP کمهزینه تا معماری قابل توسعه برای تعداد کاربران بیشتر برنامهریزی کرد.
هزینه سرور بازی آنلاین به چه عواملی بستگی دارد؟
CCU یا کاربران همزمان
مهمترین عدد برای ظرفیت سرور معمولاً CCU است، نه تعداد کل کاربران. ممکن است بازی صد هزار نصب داشته باشد ولی فقط هزار نفر همزمان آنلاین باشند.
نوع بازی
بازی نوبتی پیامهای کمتری ارسال میکند. در مقابل بازی اکشن نیاز به Tick، همگامسازی موقعیت و مدیریت سریع ورودی دارد. این تفاوت مصرف CPU و پهنای باند را تغییر میدهد.
Authoritative بودن سرور
اگر بخش زیادی از منطق روی سرور اجرا شود، امنیت بهتر است ولی منابع بیشتری مصرف میشود. Client Authoritative ارزانتر به نظر میرسد اما میتواند ریسک تقلب ایجاد کند.
دیتابیس
پروفایل، آیتم، اقتصاد، تاریخچه مسابقات و لیدربورد نیاز به دیتابیس دارند. حجم Query و نحوه Indexing روی هزینه اثر میگذارد.
تفاوت کاربر ثبتنامشده با CCU چیست؟
برای زیرساخت باید بدانیم در شلوغترین ساعت چند اتصال فعال وجود دارد. صد هزار ثبتنام به معنای صد هزار Connection همزمان نیست. همین موضوع باعث میشود تخمین بر اساس تعداد نصب گمراهکننده باشد.
در طراحی ظرفیت معمولاً DAU، Peak CCU و نرخ رشد بررسی میشوند.
برای ۱۰۰ بازیکن همزمان چه سروری لازم است؟
در یک بازی نوبتی یا سبک، ۱۰۰ CCU معمولاً عدد بزرگی نیست و ممکن است یک سرور کوچک برای MVP کافی باشد. با این حال Authentication، API، دیتابیس و مانیتورینگ نیز بخشی از سیستم هستند.
اگر بازی اکشن باشد، تعداد Matchها و پردازش هر Match تعیینکننده است. Benchmark واقعی از حدس دقیقتر است.
برای ۱۰۰۰ بازیکن همزمان چه تغییراتی لازم میشود؟
در این مقیاس باید Bottleneckها جدیتر بررسی شوند. Connection Management، دیتابیس و Memory Leakهایی که در تست کوچک دیده نمیشوند ممکن است مشکلساز شوند.
گاهی یک سرور قدرتمند کافی است و گاهی باید چند Instance اجرا شود. Stateless بودن بعضی سرویسها توسعه افقی را سادهتر میکند.
برای ۱۰ هزار بازیکن همزمان معماری چگونه است؟
در چنین مقیاسی معمولاً باید چند سرویس و چند ماشین در نظر گرفته شود. Match Server، API، دیتابیس، Cache و سرویس Matchmaking ممکن است جدا شوند. Load Balancer و مانیتورینگ اهمیت بیشتری پیدا میکنند.
اما Microservice کردن زودهنگام پروژه کوچک نیز اشتباه است. معماری باید به اندازه مسئله باشد.
هزینه پهنای باند چقدر مهم است؟
در بازیهایی با ترافیک زیاد، Data Transfer میتواند بخش قابل توجهی از هزینه باشد. هر پیام کوچک وقتی در تعداد کاربر و ثانیه ضرب شود به حجم بالایی تبدیل میشود.
بهینهسازی Serialization، کاهش نرخ پیام و ارسال فقط داده ضروری میتواند هزینه را کاهش دهد.
آیا VPS ارزان برای شروع کافی است؟
برای Prototype و بعضی MVPها بله، اما باید ریسک Downtime، Backup و منابع محدود را در نظر گرفت. مهمتر از قیمت سرور، قابلیت مانیتور و بازیابی است.
اگر بازی درآمد واقعی دارد، انتخاب تنها بر اساس ارزانترین VPS تصمیم مناسبی نیست.
Cloud بهتر است یا سرور ثابت؟
Cloud امکان Scale و سرویسهای مدیریتشده بیشتری میدهد، اما هزینه میتواند پیچیدهتر باشد. سرور ثابت هزینه قابل پیشبینیتری دارد. برای بازار محدود جغرافیایی گاهی VPS محلی از نظر Ping و قیمت مناسبتر است.
انتخاب باید بر اساس کاربران هدف و نیاز فنی انجام شود.
چه سرویسهایی غیر از Game Server هزینه دارند؟
- Database
- Redis یا Cache
- Object Storage
- CDN
- Monitoring
- Log Management
- Backup
- Domain و SSL
- Email یا SMS
چطور هزینه سرور را قبل از لانچ تخمین بزنیم؟
- تعریف Peak CCU هدف
- اندازهگیری پیام هر کاربر
- Benchmark یک Match
- Load Test
- اندازهگیری CPU و RAM
- محاسبه Transfer
- افزودن Margin امنیتی
Load Test باید شبیه رفتار واقعی باشد. ارسال یک Ping ساده نماینده بازی واقعی نیست.
چگونه هزینه سرور بازی آنلاین را کاهش دهیم؟
بهینهسازی معماری از خرید سختافزار بیشتر مؤثرتر است. Cache صحیح، Query مناسب، کاهش Polling و حذف سرویس غیرضروری میتواند مصرف را کم کند.
همچنین میتوان برای شروع ظرفیت محدود تعریف کرد و با رشد بازی منابع را افزایش داد.
آیا Serverless برای بازی آنلاین مناسب است؟
برای API و وظایف کوتاه میتواند مناسب باشد، ولی Connectionهای دائم Real-time شرایط متفاوتی دارند. بعضی سرویسهای Serverless محدودیت زمانی یا هزینهای دارند.
باید هر بخش جدا بررسی شود و لازم نیست کل سیستم فقط یک مدل داشته باشد.
هزینه بکاند و هزینه سرور چه تفاوتی دارند؟
توسعه بکاند هزینه ساخت نرمافزار است، در حالی که هزینه سرور هزینه جاری زیرساخت است. این دو نباید با هم اشتباه شوند. ممکن است توسعه یک سیستم پیچیده هزینه بالایی داشته باشد ولی ماههای اول روی سرور کوچک اجرا شود.
سفارش طراحی زیرساخت بازی آنلاین در JPGames
JPGames در پروژههای آنلاین میتواند معماری Server، Room، Matchmaking، دیتابیس و پنل مدیریت را متناسب با مقیاس طراحی کند. هدف این است که نسخه اول بیش از نیاز پیچیده و پرهزینه نشود، اما مسیر رشد نیز بسته نباشد.
برای برآورد واقعی هزینه سرور بازی آنلاین باید سبک بازی، تعداد کاربران همزمان، منطقه کاربران و نوع ارتباط مشخص شود. اگر این اطلاعات را دارید، میتوانید برای بررسی معماری و تخمین زیرساخت پروژه با JPGames تماس بگیرید.