سوال درباره ی ساخت بازی آنلاین
#1
Lightbulb 
سلام علیکم ـ بنده یک ســــــوال داشتم در این باره:
خمون ور که می دانید برای بازی های آنلاین نیاز به هاست پشتیبان داریم که بازی طراحی شده را در اش اجرا کنیم.
به نظر شما چه شرکت هاستیگ ایرانی برای این کار خوبه؟
 
غایب
  پاسخ


 سپاس شده توسط:
#2
(1399/12/18، 01:14 عصر)mohmd786 نوشته است: سلام علیکم ـ بنده یک ســــــوال داشتم در این باره:
خمون ور که می دانید برای بازی های آنلاین نیاز به هاست پشتیبان داریم که بازی طراحی شده را در اش اجرا کنیم.
به نظر شما چه شرکت هاستیگ ایرانی برای این کار خوبه؟
 
سلام؛
شما دقیقاً نگفتین منظورتون از بازی آنلاین بازی هست که با سرور در تعامله و یا یک بازی مبتنی HTML 5 که قراره روی هاست یا سرور آپلود بشه. در هر حـال من هر دو حالت رو در نظر گرفتم.
بازی آنلاین (بازی که با سرور در تعامل هست)
اصولاً یک بازی آنلاین میتونه شامل ارتباط ریل تایم و یـا ارتباط غیر ریل تایم با سرور (هاست) باشه. منظور از ارتباط ریل تایم (Real-Time) اینه که کاربران بتونن به صورت زنده (آنی) و در یک لحظه با تأخیر بسیار ناچیز (در حد چند میلی ثانیه) با هم دیگه بازی کنن. ارتباط غیر ریل تایم هم میتونه در جاهایی استفاده بشه که نیازی به انتقال آنی اطلاعات نیست.
در واقع تفاوت اصلی ارتباط ریل تایم با غیر ریل تایم در اینه که یک ارتباط ریل تایم این قابلیت رو داره که در هر لحظه دلخواه اطلاعاتی رو بفرسته و دریافت کنه. اما توی یک ارتباط غیر ریل تایم (یک درخواست HTTP ساده و روتین) ما فقط یکبار اطلاعات رو به سرور ارسال میکنیم و بعد هم سرور به ما یک پاسخی رو برگشت میده. یعنی عملاً بعد از دریافت پاسخ پرونده اون درخواست یا ریکوئست بسته شده و ما نمیتونیم مثل یک ارتباط ریل تایم هر لحظه که دلمون خواست اطلاعات رو ارسال و یا دریافت کنیم. به عبارت دیگه ارتباط غیر ریل تایم در واقع یک نوع ارتباط Half-Duplex (نیمه دو طرفه) است. بگذارین برای درک بهتر یک مثال براتون بزنم. وقتی ما با تلفن صحبت میکنیم ارتباط از نوع فول داپلکسه (دو طرفه است) و میتونیم در هر لحظه یا اطلاعاتی ارسال کنیم و یا اطلاعاتی دریافت کنیم به صورت زنده و با کمترین تأخیر ممکن. اما زمانی که بخوایم به فرض یک فاکس ارسال کنیم بعد از اینکه فاکس رو فرستادیم و فاکس در مقصد دریافت شد برای ارسال اطلاعات جدید باید یک فاکس جدید بفرستیم و نمیتونیم در ادامه همون فاکس اولیه سایر اطلاعات رو هم تبادل کنیم.
مثال ملموس برای ارتباط غیر ریل تایم این باشه که وقتی یک کاربر یک مرحله رو به اتمام رسوند قصد دارین امتیازش رو در سمت سرور (بک اند) ذخیره کنین. خُب در اینصورت کافیه یک ارتباط غیر ریل تایم یا به عبارتی یک درخواست (ریکوئست) HTTP ساده با متدهای مختلفی مثل GET، POST، PUT، PATCH و ... از طریق شیء AJAX (اِی جَکس) کانستراکت ارسال کنین.
برای ارتباط ریل تایم در کانستراکت میتونین از وب سوکت استفاده کنین. شما میتونین وب سوکت رو برای ایجاد یک کانال فول داپلکس (دو طرفه) بین کلاینت (کاربر) و سرور به خدمت بگیرین. البته برای اینکه درگیر پیچیدگی های برنامه نویسی سمت سرور نشین کانستراکت به صورت پیشفرض برای بازیهای ریل تایم شیء (پلاگین) مولتی پلیر رو معرفی کـرده که میتونین به صورت رایگان ازش استفاده کنین. در ضمن شیء مولتی پلیر کانستراکت بر حسب اصول WebRTC پیاده سازی شده و امکان ایجاد ارتباط P2P رو به راحتی فراهم میکنه. البته شما خودتون هم میتونین با کمک وب سوکت اقدام به پیاده سازی ساز و کاری مشـابـه شیء مولتی پلیر کانستراکت بکنین اما اصولاً باید یه درکی از WebRTC و اجزاش مثل STUN سرور و ... داشته باشین. 
خلاصه کلام اینکه میتونین بدون نیاز به دانش برنامه نویسی سمت سرور قسمت ارتباطات ریل تایم پروژه تون رو انجام بدین اما برای قسمت غیر ریل تایم (درخواست های ساده HTTP) مجبورید به یک تکنولوژی (زبان) سمت سرور مثل PHP، Node.JS، جاوا سرورلت، Ruby، Lua، Django و ... تسلط یا آشنایی اولیه داشته باشین و یا از کسی بخواین که براتون انجامش بده.
راجع به هاست یا سرور هم بهتره یه شفاف سازی براتون بکنم. ببینین تفاوتی نمیکنه که شما خدا تومن هزینه بابت خرید هاست بکنین یا از یک هاست رایگان استفاده کنین. در هر دو صورت در واقع شما یک هاست اشتراکی تهیه کردین. یعنی یک شرکت به شما یک فضایی رو اختصاص میده تا ازش استفاده کنین. اصولاً زمانی که شما از یک هاست استفاده و به خصوص یک هاست لینوکسی استفاده میکنین محدود به استفاده از PHP برای سمت سرور و MySQL برای پایگاه داده هستین. البته بعضی از شرکت ها امکان استفاده از Node.JS و یا پایتون رو هم فراهم میکنن. در ضمن با وجود قابلیتی مثل CGI شما میتونین حتی از زبانی مثل سی پلاس پلاس هم استفاده کنین البته به شرط اینکه شرکتی که ازش خدمات میگیرین به شما این اجازه رو بده.
دقت کنین که منظورم از کلمه «محدودیت» یک محدودیت دست و پاگیر نیست. در هر حـال شما میتونین همچنان با قدرت پروژه تون رو توسعه بدین اما به فرض اگر هوس کنین که در کنار یک DBMS از نوع SQL از یک DBMS از نوع No SQL هم استفاده کنین خُب امکان چنین مسئله ای روی یک هاست اشتراکی نیست و شما باید یک سرور اختصاصی (VPS) تهیه کنین.
بازی مبتنی بر HTML 5
خُب برای این منظور میتونین از گیت هاب هم استفاده کنین و نیاز به هاست هم نیست. در هر صورت اگر خواستین هاست هم تهیه کنین نیازی نیست دنبال امکاناتی مثل پشتیبانی از SSH و ... باشین. صرف اینکه بشه فایل روی اون هاست آپلود کرد کافیه!
موفق باشین.
غایب
  پاسخ


 سپاس شده توسط: hasansanaei ، ذولفقاری
#3
۱ سوال اگر ما قرار بازیم مون ۱ میلیون نصب فعال داشته باشه و حد اقل روزی که ۵ ساعت بازی کنن چه هاستی باید تهیه کنیم
یعنی دقیق بگید چقدر cpu و اینا
بالاخره انتظار ها به پایان رسید:
ریزی منتشر شد! 
  پاسخ


 سپاس شده توسط:
#4
(1399/12/19، 03:14 عصر)mahdi13862 نوشته است: ۱ سوال اگر ما قرار بازیم مون ۱ میلیون نصب فعال داشته باشه و حد اقل روزی که ۵ ساعت بازی کنن چه هاستی باید تهیه کنیم
یعنی دقیق بگید چقدر cpu و اینا
سلام ؛

بسته به هسته نوشته شده هست و هیچ وقت نمیشه گفت اگر فلان سرور مجازی یا فلان سرور اختصاصی رو بخرید اوکی میشه .
برای این کار باید همیشه حداقل هارو در نظر بگیرید ؛
به این صورت که یک سرور مجازی با رم و سی پی یو 1 میخرید ؛ به تعداد 100 نفر تست میکنید . چارت هارو وابسته به زمان های متفاوت بررسی میکنید و بعد معلوم میشه در مقیاسی که مد نظر دارید چقدر منابع لازم دارید .
اما اون 1 میلیونی که می فرمایید حتی اگر فرضش رو هم بخوایم در نظر بگیریم سرور اختصاصی های قوی ای میخواد ؛ دیگه اون پروژه ای که 1 میلیون نصب فعال داره ی تیم کامل میدانی برای مدیریت سرور داره ، پس حتی اگر فرضتون هم باشه لازم نیست شما نگرانی ای بابت این موضوع داشته باشید ، چون کار شما نیست .

موفق باشید .
  پاسخ


 سپاس شده توسط: oak ، ᔕinaᗪehghani ، Master Badfar
#5
می خواستم رو سایت آپلود کنم..........
غایب
  پاسخ


 سپاس شده توسط:


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تایپیک گفتگوی آزاد shazde 658 260,642 1401/11/25، 09:49 عصر
آخرین ارسال: LALI.ARB
  سوال : استیم hasansanaei 1 1,712 1400/7/24، 11:18 صبح
آخرین ارسال: mostafanastary
  زبان برنامه نویسی M.Y 16 8,510 1400/6/19، 03:25 عصر
آخرین ارسال: Prince
  طرح صیانت مجلس شورای اسلامی M.Y 9 4,304 1400/5/26، 02:11 عصر
آخرین ارسال: M.Y
  جشنواره بازی های هایپر کژوال Kwalee amin COD 2 3,325 1400/4/18، 07:14 عصر
آخرین ارسال: محمد40

پرش به انجمن: