گیم سرور چیست و باید چه مشخصاتی داشته باشد؟
صنعت سرگرمی را می توان یکی از پرطرفدارترین صنایع حال حاضر دنیا دانست. وجود کاربران بسیار زیاد در این صنعت موجب شده تا سرویس های اینترنتی نیز، خدمات مختلفی را در این حوزه منتشر کنند. یکی از خدمات بسیار جذاب در حوزه اینترنت، ارائه گیم سرورها است. به کمک چنین سرورهایی، افراد می توانند تجربه یک بازی پرسرعت و بدون لگ را داشته باشند. اما آیا تا کنون از خودتان پرسیده اید که گیم سرور به چه معناست؟ یک گیم سرور باید دارای چه مشخصاتی باشد؟ ما در این مطلب قصد داریم تا به صورت کامل در خصوص این موضوع صحبت کنیم.
گیم سرور چیست؟
گیم سرور کامپیوتری است که به عنوان یک مرجع مرکزی جهت تعریف وضعیت فعلی یک بازی چند نفره، عمل خواهد کرد. بازیکنان، اعمالی را که قصد انجام در بازی دارند برای به روزرسانی، به سرور ارسال می کنند. این اعمال می توانند دویدن، پریدن، آسیب دیدن یا آسیب رساندن و هرچیز دیگری باشند. سرور این ورودی ها را در دریافت و سپس ترجمه می کند. در نهایت اطلاعات به روزرسانی شده را به بازیکنان باز می گرداند.
حال سوال بعدی که در خصوص گیم سرورها به وجود می آید این است که چگونه یک سرور با “واقعیت” درون بازی ارتباط برقرار می کند؟ یک سرور گیم قادر است تا تمامی اطلاعات ورودی را مورد پردازش قرار دهد. ناسازگاری های موجود را برطرف کند و به روزرسانی های منظمی را به سمت کاربران و بازیکنان ارسال کند. به بیان دیگر، این سرورها، جریانی از عکس های فوری از همه عناصر بازی را به کاربران ارائه کرده و وضعیت بازی را در هر تیک (tick) به روزرسانی می کنند.
شاید تعریف این مفهوم کمی سخت و پیچیده به نظر برسد. برای درک هرچه بهتر مطلب، لازم است تا دو مفهوم کلیدی، یعنی حالت بازی و tickrate را برای شما تعریف کنیم.
- حالت بازی: تنها منبع حقیقت
حالت بازی و یا تیک (tick) یک عکس فوری از ویژگی های هر شی در دنیای بازی است. منظور از یک تصویر ایزومتریک از “وضعیت بازی”، یک عکس فوری از یک بازی در حال انجام می باشد که پیش از این گرفته شده است. حال متن نیز با وضعیت بازی، موقعیت های بازیکن، ویژگی های هر شی، تنظیمات محیط، تابلوی امتیازات و … هماهنگ خواهد شد.
اکنون تصور کنید که تعداد زیادی بازیکن در حال انجام یک سری اقدامات به صورت همزمان هستند. بیشتر این بازیکنان نیز ممکن است در بازی، کنار هم قرار گرفته باشند. حال سرور باید آن چه که اتفاق می افتد و هر زمانی که اتفاق می افتد را پیگیری کند. بدین صورت می تواند مطمئن شود که همه المان ها در یک صفحه و در کنار یکدیگر خواهند بود. زمانی که وضعیت بازی محاسبه شود، گیم سرور آن را به دستگاه هر بازیکن که به سرور متصل است، ارسال می کند. در واقع در این لحظه است که دنیای بازی برای هر بازیکن به روزرسانی خواهد شد. نکته جالب توجه این است که همه این اتفاقات تنها در یک ثانیه رخ می دهند.
- آشنایی با مفهوم Tickrate
Tickrate تعداد دفعاتی است که یک حالت بازی به روز شده، محاسبه و توسط گیم سرور برای بازیکنان در هر ثانیه پخش می شود. از این رو Tickrate را می توان فراوانی به روزسانی های وضعیت بازی دانست. هرچه Tickrate بیشتر باشد، شبیه سازی بازی نیز دقیق تر خواهد بود.
در صورتی که یک گیم سرور در هر ثانیه 64 آپدیت از بازی را برای بازیکنان ارسال کند، به آن سرور 64-tick یا 64 هرتز می گویند. (هرتز واحد فرکانس است.) از این رو سروری که در هر ثانیه 32 به روزرسانی را برای بازیکنان ارسال می کند، کیفیت کمتری در مقایسه با یک سرور 64- tick خواهد داشت.
Tickrate برای بازیکنان به چه معناست؟
زمانی که وضعیت های بازی بیشتری در هر ثانیه توسط گیم سرور ارسال شود، می توان حرکت و کنش بیشتری را در هر بازی انجام داد. از این رو شما قابلیت های جدیدی را در هر بازی مشاهده می کنید. همین امر واقعیت مجازی بازی را بهبود بخشیده و لذت انجام آن را برای بازیکنان بیشتر خواهد کرد. از این رو tickrate بالاتر، یک تجربه دقیق تری از بازی با حفظ کیفیت های بیشتر را برای کاربران مهیا می کند.
این بدان معناست که می توان اکشن های چندثانیه ای را در بازی در نظر گرفت. تصور کنید که در یک میدان جنگ در حال مبارزه هستید. تنها یک ثانیه لازم است تا به دشمن خود شلیک کرده و او را از بین ببرید. در غیر این صورت، باید منتظر شکست خود باشید. از این رو tickrate می تواند فاصله بین شکست و پیروزی شما در چنین میدان هایی رقم بزند.
Tickrate چه زمانی اهمیت پیدا می کند؟
تا بدین جا متوجه شدید که tickrate در یک گیم سرور چیست و تا چه اندازه مهم است. اما باید بدانید که همه بازی ها به گیم سرورهایی با tickrate بالا نیاز ندارند. بازی های مبتنی بر نوبت مانند Hearthstone، به Tickrate بالا نیازی نخواهند داشت؛ زیرا بازی در هر ثانیه به روزرسانی نمی شود. اما از سوی دیگر، بازی های بلادرنگ به یک گیم سرور با Tickrate بالا احتیاج پیدا می کنند.
از این دست بازی هایی که Tickrate بالایی را می طلبند، می توان به DOTA، Counter-Strike، یا Valorant اشاره کرد. این مدل از بازی ها، برای حفظ حالت های بازی همگام سازی شده، به Tickrate بالایی احتیاج خواهند داشت. بازی اکشن بلادرنگ معمولا دارای سرورهایی با کیفیت بالا، مانند 64 یا 128 tick هستند. بدین صورت می توانند تجربه گیم پلی بسیار مناسبی را برای کاربران خود فراهم کنند.
چگونه tickrate بر گیم سرور تاثیر می گذارد؟
زمانی که tickrate در گیم سرور افزایش پیدا می کند، نیاز است تا قدرت پردازش سرور و پهنای باند آن هم افزایش پیدا کند. هنگامی که tickrate را از 32 به 64 ارتقا می دهید، بار روی سرور شما بیشتر می شود؛ چرا که در این حالت بازیکنان داده های بیشتری را به سمت سرور ارسال می کنند. از سوی دیگر، گیم سرور شما نیز باید وضعیت بازی را هرچه بیشتر مورد بررسی و محاسبه قرار دهد. از این رو برای انجام بازی روی سرور با tickrate بالا، سرور باید به اندازه کافی قدرت و سرعت داشته باشد تا بتواند از پس حجم کار اضافی برآمده و آن را مدیریت کند.
چه نوع سخت افزاری در گیم سرور وجود دارد؟
سرور اختصاصی می تواند یک گزینه ای بسیار عالی برای گیم سرورها باشد. یک سرور اختصاصی گیم، دارای قابلیت ها و قطعات بسیار پیشرفته ای است که امکان بهبود تجربه بازی و پیشرفت آن را برای کاربران مهیا می کند. در واقع یک گیم سرور اختصاصی یک کامپیوتر قدرتمند است که برای اجرای 24 ساعته طراحی شده است. مانند هر کامپیوتر دیگر، گیم سرور اختصاصی نیز دارای مادربرد، پردازنده یا CPU، رم (RAM) حافظه برای ذخیره سازی کوتاه مدت، منبع تغذیه، فن و کیس است.
شاید مهمترین جزء در گیم سرور، cpu باشد. CPU یا پردازنده وظیفه دارد تا تمامی داده های یک بازی آنلاین را پردازش کند. با داشتن یک CPU سریع تر، گیم سرور می تواند محاسبات بیشتری در هر ثانیه انجام دهد. از این رو قادر هستید تا بارهای کاری بازی را با سرعت بالاتری انجام دهید. در حالی که پردازش داده ها امری بسیار مهم است، اما گیم سرور برای اتصال به شبکه با توان عملیاتی بالا نیز طراحی و بهینه شده است.
از آن جایی که معمولا افراد زیادی به سرور متصل خواهند شد و داده های زیادی را ارسال می کنند، سرور بازی معمولا باید دارای یک کارت شبکه قدرتمند برای پشتیبانی از بسیاری از اتصالات همزمان باشد.
گیم سرورهای Peer-to-Peer یا همتا به همتا
گیم سرورهای Peer-to-Peer یا همتا به همتا رواج کمتری دارند. همچنین بازی هایی که روی آن ها اجرا می شود، به بازیکنان کمتری نیاز دارد تا به صورت همزمان به رقابت بپردازند. در بازی های همتا به همتا، دستگاه بازی یک بازیکن به میزبانی مسابقه اختصاص داده خواهد شد. به صورتی که دستگاه بازیکن، گیم سرور را در پس زمینه اجرا خواهد کرد. در همین حین، بازیکن نیز در همان دستگاه مشغول به انجام بازی است.
از آن جایی که در یک بازی همتا به همتا، توسعه دهندگان مجبور نیستند تا از سرورهای اختصاصی استفاده کنند، از این رو توسعه آن ها نیز ارزان تر خواهد بود. البته که معمولا این نکته برای بازیکنان چندان رضایت بخش نیست. اجرای همزمان کلاینت بازی و گیم سرور، می تواند برای دستگاه مضر باشد. از سوی دیگر، همه بازیکنان در بازی، در اختیار اتصال اینترنت بازیکن میزبان خواهند بود. در صورتی که اتصال اینترنت میزبان ضعیف باشد، همه افراد و بازیکنان درون بازی آسیب خواهند دید.
گیم سرورهای همتا به همتا نمی توانند تعداد زیادی بازیکن را اداره کنند؛ چرا که کیفیت اتصال آن ها محدود است. این مدل از گیم سرورها برای مدیریت تعداد زیادی از اتصالات به صورت همزمان ساخته نشده اند و نمی توانند تمام توان خود را روی میزبانی بازی متمرکز کنند.
گیم سرورها کجا قرار می گیرند؟
ممکن است این سوال برای شما هم ایجاد شده باشد. یک گیم سرور دقیقا کجا قرار گرفته است؟ اکثر سرورهای اختصاصی در مراکز داده قرار گرفته اند. سرورهای اختصاصی معمولا در مراکز داده تولید شده و در شهرهای بزرگ جهان قرار گرفته اند. این مدل از گیم سرورها، برای اجرای 24 ساعته طراحی شده اند. مراکز داده دارای سیستم های خنک کننده داخلی (برای حفظ عملکرد بهینه سخت افزار)، اتصال به اینترنت فوق العاده سریع و… هستند. اکثر این مراکز دارای دو منبع تغذیه مجزا می باشند تا در صورت از کار افتادن یکی از آن ها، در دسترس بودن شبانه روزی سرورها، به خطر نیفتد. برای آن دسته از بازی هایی که افزایش کیفیت یکی از فاکتورهای بسیار مهم است، مراکز داده بهترین مکان برای نگهداری گیم سرور به شمار می روند.
گیم سرورها ممکن است در خانه افراد باشند!
در حالی که گیم سرورها می توانند در مراکز داده نگهداری شوند، اما برخی از آن ها در خانه های افراد هستند. دسته ای از افراد، گیم سرورهای اختصاصی خود را در خانه میزبانی می کنند. هر چند که این روش زیاد توصیه نمی شود. به صورت معمول افرادی که گیم سرور خود را در خانه نگهداری می کنند، باید یک اتصال اینترنتی بسیار باکیفیت و خوب با سرعت دانلود و آپلود بالا داشته باشند.
از سوی دیگر، باید بتوانند یک سیستم خنک کننده و پشتیبان برای سرور خود ایجاد کنند. سرورهای بازی همتا به همتا، روی کنسول بازی یا دستگاه بازیکن میزبان اجرا می شوند. از این رو می توانند هر جایی که این دستگاه ها حضور دارند، مثل خانه ها و یا گیم نت ها، حضور داشته باشند.
گیم سرورها چگونه راه اندازی می شوند؟
جهت راه اندازی گیم سرور، سرور باید “سرور باینری (server binary)” بازی را نصب کرده باشد. server binary یک نرم افزار تخصصی است که دنیای بازی را اجرا می کند. همچنین می تواند اقدامات درون بازی و ویژگی های اشیا را پیگیری کرده و محاسبات وضعیت بازی را در زمان واقعی کنترل کند. بازیکنان یک نسخه “کلاینت” جداگانه از بازی های چند نفره را اجرا می کنند که اطلاعات را به گیم سرور بازی ارسال و از آن دریافت می کند.
برای بسیاری از بازی ها، این توسعه دهندگان هستند که سرورها را سازماندهی می کنند. بسیاری از محبوب ترین بازی های چند نفره مانند Fortnite، Valorant، Overwatch و Apex Legends گیم سرورهایی دارند که توسط تیم توسعه دهنده بازی راه اندازی شده است. به همین دلیل باینری سرور آن ها منتشر نخواهد شد. از این رو شما نمی توانید گیم سرور خود را برای بازی هایی به مانند بازی های بالا، میزبان قرار دهید.
چرا باینری سرور منتشر نمی شود؟
همانطور که در قسمت قبل نیز توضیح داده شد، برخی از تیم های توسعه دهنده بازی های چند نفره، باینری سرور خود را منتشر نمی کنند. اما دلیل این کار چیست؟ در پاسخ باید اشاره کرد که تیم ها توسعه دلایل خاص خودشان را دارند. برخی از مهمترین این دلایل عبارت اند از:
- حریم خصوصی: خصوصی نگه داشتن باینری های سرور می تواند باعث جلوگیری از تقلب و یا تغییر بازی شود.
- کنترل کیفیت: نکته دیگر در منتشر نکردن باینری سرور، کنترل بهتر کیفیت گیم سرور است. از این رو نیاز است تا مدیریت سرورها و سخت افزارهای درون آن به نحوی صورت بگیرد که توسط توسعه دهندگان مشخص شده است.
- سهولت در به روزرسانی: زمانی که توسعه دهنده نرم افزار سرور را به روز می کند، می تواند به سرعت به روزرسانی انجام شده را در اختیار کاربران قرار دهد.
اما در طرف دیگر ماجرا، نکته ای منفی در خصوص منتشر نکردن باینری سرور وجود دارد. این نکته منفی آن است که هر زمان توسعه دهندگان بخواهند، می توانند گیم سرورها را خاموش کنند، تغییراتی را روی بازی اعمال کرده و یا آن را متوقف کنند. همچنین توسعه دهندگان این اختیار را دارند که یک یا چند بازیکن را از انجام بازی منع کنند.
برای برخی از بازی ها، می توانید سرور خود را میزبان کنید.
اما از سوی دیگر ماجرا، برخی از توسعه دهنگان، باینری سرور بازی خود را منتشر می کنند. این کار اغلب منجر به افزایش طول عمر بازی در بین بازیکنان خواهد شد. از جمله بازی هایی که به شما این امکان را می دهند تا گیم سرور خود را به صورت میزبان معرفی کنید، می توان به موارد زیر اشاره کرد:
- Minecraft
- Team Fortress 2
- Counter-Strike: Global Offensive (CS:GO)
- Valheim
- ARK: Survival Evolved
راه اندازی گیم سرور
برای راه اندازی گیم سرور، دو راه پیش روی شما وجود دارد:
1- سرور خود را به صورت دستی تنظیم کنید.
برای انجام این کار، نیاز به برخی قابلیت های فنی وجود دارد. ممکن است نیاز باشد تا این تنظیمات را از طریق لینوکس انجام دهید. همچنین نیاز است تا به سرور خود دسترسی داشته باشید. ساده ترین راه برای راه اندازی یک گیم سرور، استفاده از ابزار مدیریت گیم سرور است. برخی از مهمترین این ابزارها عبارت اند از:
- LinuxGSM: یک خط فرمان رایگان و منبع باز که از بیش از 125 بازی پشتیبانی می کند.
- Pterodactyl: یک پنل مدیریتی سرور منبع باز و رایگان است که از بیش از 46 بازی پشتیبانی می کند.
- TCAdmin: یک پنل مدیریت سرور پولی است که قابلیت پشتیبانی از 86 بازی را دارد.
- SteamCMD: یک برنامه خط فرمان برای گیم سرورهای مبتنی بر Steam است. تمامی ابزارهای بالا از این برنامه برای اجرای بازی های Steam استفاده می کنند.
2- از ارائه دهندگان میزبانی گیم سرور استفاده کنید.
در صورتی که بنا به هر دلیلی نمی توانید و یا نمی خواهید تا به کمک تنظیمات فنی، سرورهای خود را به سرور میزبان تغییر دهید، می توانید از سرورهای آماده برای انجام این کار استفاده کنید. امروزه سرورهای آماده زیادی وجود دارند که می توان آن ها را از یک ارائه دهنده میزبانی گیم سرور، خریداری کنید. البته به یاد داشته باشید که گیم سرور تهیه شده باید دارای سرعت متناسب و مورد نیاز بازی باشد. در غیر این صورت، احتمالا تجربه ای جذاب از بازی برای شما و سایر افراد به وجود نخواهد آمد.