كيفية بناء بنية الخادم للعبة متعددة اللاعبين

جدول المحتويات:

كيفية بناء بنية الخادم للعبة متعددة اللاعبين
كيفية بناء بنية الخادم للعبة متعددة اللاعبين
Anonim

واحدة من أكبر المشكلات التي يجب على مطوري الألعاب المستقلة حلها عند تصميم لعبتهم هي تحديد كيفية عمل اللاعبين المتعددين. هل يجب عليك تشغيل خوادم مخصصة؟ هل يمكنك استخدام شبكات الند للند في لعبتك؟ دعونا نتحدث عن ذلك.

تركز هذه المقالة على البنية التحتية العامة وراء لعبتك ، بدلاً من التفاصيل الدقيقة حول كيفية تشغيل الشبكات متعددة اللاعبين ، حيث سيعتمد ذلك على محركك وكيفية برمجة لعبتك.

ضع في اعتبارك ما إذا كنت بحاجة إلى تشغيل الخوادم على الإطلاق

يمكن إدارة بعض الألعاب بدون خوادم مخصصة. إذا كنت تبني لعبة تعتمد في الغالب على تفاعل لاعب إلى لاعب ، بدون نظام تنافسي مصنف ، فقد لا تحتاج إلى خوادم على الإطلاق.

على سبيل المثال ، تقوم Minecraft بعمل جيد بشكل خاص. يمكنك اللعب بمفردك أو على شبكة محلية أو الاتصال بالخوادم التي يستضيفها لاعبون آخرون أو استضافة الخادم الخاص بك. بالطبع ، يتطلب هذا دعمًا من المجتمع واللاعبين المهتمين باستضافة خوادمهم الخاصة في المقام الأول ، وإلا فإنه من الصعب جدًا أن تطلب من المستخدمين لديك. لقد نجح نظام هجين من أجل Rust ؛ يدير المطورون عددًا قليلاً من الخوادم الرسمية ، ويقوم المجتمع بتشغيل خوادمهم الخاصة فوقها.

إلى جانب وجود خوادم مضيفة في المجتمع ، فإن أبسط طريقة للهندسة بدون خادم هي نموذج خادم الاستماع. بمساعدة نظام فرعي عبر الإنترنت مثل Steam ، يمكن للأشخاص تكوين ردهات خاصة بهم ، إما عن طريق الانضمام إلى لعبة أصدقائهم ، أو العثور على جلسات مفتوحة عالميًا والانضمام إليها من لاعبين آخرين على Steam.

عادة ، يكون الشخص الذي أنشأ اللوبي هو القائد. يتم اختيارهم كخادم ، ويتصل بهم الجميع. يصبح كمبيوتر قائد اللوبي خادمًا مخصصًا ، يستضيف الجلسة للجميع في الردهة. هذا يلغي الحاجة إلى تشغيل الخوادم بالكامل.

إذا كانت لعبتك تتبع طريقة لعب أكثر توجهاً نحو المطابقة ، مثل لعبة إطلاق النار 5v5 ، فقد ترغب في خادم مخصص للمطابقة ، مصمم فقط لفرز اللاعبين في ردهات بناءً على إحصائياتهم (وليس التعامل مع طريقة اللعب الفعلية). سيسمح لك هذا بجعل عملية العثور على الألعاب تلقائية ، وكذلك تنفيذ قواعد التوفيق الخاصة بك. ستحتاج إلى خادم مثل هذا على أي حال ، حتى إذا كنت لا تستخدم نموذج خادم الاستماع لتشغيل الألعاب.

عيوب نموذج خادم الاستماع

نموذج خادم الاستماع رائع ورائع للألعاب المستقلة التي ترغب في بناء لاعبين متعددين دون الحاجة إلى الدفع مقابل خوادم مخصصة. لكن هناك عيبان رئيسيان - الغش والتأخر.

الأول واضح. إذا كانت لديك مباريات 5 ضد 5 ، حتى إذا قمت بتحديد مضيف الخادم بشكل عشوائي ، فإن أي لاعب لديه فرصة 10٪ ليتم اختياره كخادم. إذا كانوا هم الخادم ، فلديهم سيطرة كاملة على اللعبة بأكملها ، مما يجعل نموذج خادم الاستماع غير ممكن تمامًا للعبة تنافسية. تخيل Counter Strike ، ولكن في كل بضع مباريات يكون لديك شخص في وضع الله في فريق العدو ، ويقتل ويقتل الجميع. ليس ممتعًا لك أو للاعبين.

هذا لا يمكن التخفيف منه حقًا ، لكن آثاره تعتمد على نوع اللعبة التي يتم لعبها. ربما تكون لعبتك عبارة عن لعبة لوحية على الإنترنت يتم لعبها للتو من أجل الاستمتاع بها ؛ ليس هناك فائدة كبيرة للغش أثناء لعبة كهذه. باستخدام نظام تقرير لائق ، يمكنك التعامل مع الحالات القليلة التي تظهر ، خاصة إذا لم تكن لعبتك بهذا الحجم. سيكون من السهل اكتشاف هذا النوع من الحالات الشاذة ، ومن غير المرجح أن يبذل شخص ما جهود تطوير الغش ما لم تكن لعبتك كبيرة بما يكفي لتحمل تكلفة خوادم مخصصة على أي حال.

العيب الثاني هو مشكلة أكبر بكثير بالنسبة للألعاب الأصغر. إذا لم يكن الكمبيوتر الذي تم اختياره ليكون خادم الاستماع بهذه القوة أو لديه اتصال إنترنت ضعيف ، فقد تكون التجربة بطيئة. يمكن التخفيف من ذلك باستخدام خادم مطابقة خارجي يختار أفضل خادم استماع خارج الردهة ، بناءً على مواصفات الكمبيوتر وسرعة الإنترنت. لا يمكن تنفيذ ذلك حقًا مع نظام Steam الفرعي للمخزون - فالشخص الذي بدأ باستضافة الردهة سيكون دائمًا قائد اللوبي في هذه الحالة.

في كلتا الحالتين ، ليس من غير المألوف على الإطلاق أن تستخدم الألعاب الصغيرة نموذج خادم الاستماع ، لأنه مجاني بشكل أساسي للمطور. وعلى الرغم من أنه من المتوقع أن تحتوي الألعاب الأكبر حجمًا على خوادم مخصصة ، إلا أنها ليست كذلك دائمًا - لم يكن لدى For Honor ، وهو لقب AAA من Ubisoft ، خوادم مخصصة عند الإطلاق ، الأمر الذي أثار استياء اللاعبين.

الخوادم المخصصة ليست مخيفة حقًا

صورة
صورة

بينما يبدو إنفاق رسوم شهرية كمطور مستقل للحفاظ على لعبتك أمرًا مرهقًا ، فقد لا يكون بالسوء الذي تعتقده. لنفترض أن لعبتك تدير مباريات 5 ضد 5. كم عدد المباريات التي تتوقع تشغيلها في وقت واحد؟ إذا كان لديك 100 لاعب نشط ، فهذه 10 مباريات فقط.

إذا لم تكن اللعبة مكثفة للغاية ، فمن المحتمل أن تنفد من سلسلة محادثات واحدة. يمكن للخادم رباعي النواة المزود بمؤشرات تشعبية تشغيل 8 جلسات ألعاب متزامنة نظريًا. ستحتاج بالتأكيد إلى إجراء اختبار للتحقق من عدد الجلسات التي يمكن لخادم معين دعمها ، حتى تتمكن من التعرف على مقدار الطاقة التي ستحتاج إليها.

وإذا كان لديك 100 لاعب نشط ، فأنت تفعل شيئًا صحيحًا بالفعل ، لأنه سيكون لديك أوامر من حيث الحجم ، والمزيد من الأشخاص الذين اشتروا اللعبة ولكنهم لا يلعبونها على مدار الساعة طوال أيام الأسبوع. على سبيل المثال ، باع Rust أكثر من 5 ملايين نسخة ، لكنه لا يرى سوى حوالي 50 ألف شخص نشط في وقت واحد - مبيعات أكثر 100 مرة من اللاعبين النشطين يوميًا.

إذن ، مع مباريات 5 ضد 5 ، و 100 لاعب نشط ، ستحتاج إلى خادم قادر على دعم 10 مباريات. ربما تجد أن خادمًا سداسي النواة بسعة 64 جيجابايت من ذاكرة الوصول العشوائي يمكنه تشغيل جميع مبارياتك بسهولة. يمكنك العثور على خادم مخصص بهذه المواصفات بحوالي 80 دولارًا في الشهر. إذا كان لديك 100 لاعب نشط في المتوسط ، فقد قمت بالتأكيد ببيع ما لا يقل عن بضعة آلاف من النسخ ، لذلك سيكون لديك بالتأكيد المال لتجنيبه لمنح لاعبيك تجربة جيدة.

إذا لم يكن لديك هذا العدد الكبير من اللاعبين ، فيمكنك على الأرجح تشغيل كل شيء من خادم صغير جدًا ، مما يقلل تكاليفك بشكل كبير. إذا انطلقت لعبتك حقًا إلى النقطة التي بدأت فيها في رؤية انخفاض هوامش أرباحك ، فيمكنك دائمًا البحث عن خيارات بديلة لتحقيق الدخل ؛ مستحضرات التجميل (مثل جلود الأسلحة واللاعبين) خيار شائع ؛ إنهم يمنحون اللاعبين المتفانين شيئًا لإنفاق الأموال عليه ، مما يمنحك إيرادات شهرية ثابتة للمساعدة في تعويض تكلفة الخوادم.

الخيار الأرخص - استأجر صندوقًا مخصصًا أو اثنين

مع الخوادم الافتراضية ، تأتي الذاكرة بسعر أعلى. إذا قارنت أسعار AWS أو Google Cloud Platform بسعر استئجار صندوق مخصص من شركة أصغر ، فستجد أنك تتقاضى رسومًا أكبر مقابل نفس القدر من الذاكرة على AWS. هذه مشكلة ، خاصة بالنسبة للألعاب ، حيث أن الذاكرة غالبًا ما تكون العامل المحدد لخادم قادر على تشغيل المزيد من الجلسات.

يعني "الصندوق المخصص" ببساطة أنك تستأجر الأجهزة الفعلية نفسها. يمكنك استئجار رف كامل من مركز البيانات ، مما يعني أنك لست مضطرًا للتعامل مع النفقات الافتراضية أيضًا.

هذا يبدو أغلى ثمناً ، لكنه في كثير من الأحيان أرخص بكثير. إذا لم تكن بحاجة إلى أفضل الخوادم ، فيمكنك استئجار أجهزة قديمة للحصول على خصومات هائلة. بعد كل شيء ، اعتادت الأجهزة القديمة أن تكون في طليعة الخط ؛ عندما يقوم مزودو VPS الضخمون مثل AWS بالترقية إلى خوادم أحدث ، فإنهم غالبًا ما يبيعون بعضًا من أجهزتهم القديمة. (يمكنك بالفعل شرائها بنفسك من موقع ئي باي ، وأكثر من ذلك أدناه.) حقًا ، قد يكون الخادم الأقدم أقل أداءً بنسبة 10٪ أو أكثر من الخادم الجديد ، ولكن عندما يكون بنصف السعر ، يكون هذا أمرًا رائعًا.

OVH هو مكان جيد للعثور على خوادم مخصصة رخيصة إلى حد ما. تبيع الشركة الشقيقة ، SoYouStart ، أجهزتهم القديمة ، والتي يمكنك العثور عليها بأسعار منخفضة للغاية.

الحل القابل للتطوير- AWS GameLift

صورة رأس GameLift
صورة رأس GameLift

في حين أن AWS أغلى ثمناً ، إلا أنها تأتي ببعض الفوائد الرائعة. AWS GameLift هي خدمة تجعل تشغيل خوادم الألعاب على منصة حوسبة EC2 من AWS أسهل بكثير.

GameLift هو في الأساس نسخة خيالية من مقياس EC2 التلقائي. ستعمل تلقائيًا على تدوير الحالات الجديدة عندما يرتفع الطلب ، أو تنتهي الحالات بمجرد عدم الحاجة إليها ، مثل بين عشية وضحاها عندما لا يلعب الأشخاص. إنها عملياً حالة الاستخدام المثالية للقياس التلقائي ؛ من وحدة تحكم GameLift ، يمكنك تحديد نوع المثيل الذي تريد استخدامه للتوسع فيه ، وعدد جلسات اللعبة التي يمكن للخادم التعامل معها.

يساعد هذا في تعويض التكاليف بشكل كبير عندما يمكن أن يجعل التشغيل على AWS خيارًا قابلاً للتطبيق للعبة شائعة إلى حد ما ، مقارنة بالخوادم المخصصة ، وعند دمجها مع مثيلات EC2 Spot. التكلفة لكل ساعة أعلى (AWS باهظة الثمن) ، لكنك تقضي وقتًا أقل بكثير في تشغيل الخوادم بالفعل ، حيث ستتوسع بنيتك لتلبية الطلب بالضبط.

يتضمن GameLift أيضًا نظامًا أساسيًا للتوفيق بين اللاعبين ، والذي يتخلص من الحاجة إلى تشغيل خادم مطابقة منفصل. ينضم اللاعبون إلى قائمة انتظار ، ويقوم نظام المطابقة GameLift بفرزهم إلى جلسات بناءً على القواعد التي تحددها. إذا كانت هناك حاجة لخادم جديد ، فسيتم إنشاء خادم جديد.

بالنسبة للألعاب الصغيرة التي لا تحتاج إلى أكثر من خادم واحد ، فإن AWS GameLift مبالغة قليلاً ، ولكن إذا كنت لا تزال ترغب في أن تكون على منصة AWS ، فيمكنك حجز مثيلات EC2 بعقد لمدة عام واحد حوالي 40٪ أرخص من عند الطلب. ومع ذلك ، لا يزال هذا لا يقترب من الضجة التي يدفعها لك خادم مخصص رخيص الثمن في شركات أخرى ، لذلك لا تنطلق إلا في حالة محجوزة إذا كنت تحب AWS حقًا.

إذا كنت تحب شراء الضوضاء ، فلا تستأجر

هناك سبب لكون الخوادم المخصصة القديمة رخيصة جدًا: تبيع مراكز البيانات أجهزتها القديمة على موقع Ebay طوال الوقت ، غالبًا بخصومات هائلة. في عالم الخادم ، يعد الجهاز نفسه تكلفة زهيدة. مصدر الأموال الرئيسي هو فاتورة الطاقة الضخمة المرتبطة بتشغيل الخادم ، والتبريد المطلوب لتبريد الشيء إلى درجة حرارة تشغيل معقولة.

إذا كنت ستخرج وتستأجر خادمًا مخصصًا من SYS ، فستدفع حوالي 84 دولارًا شهريًا مقابل 6 نواة Haswell (2014) Xeon مع 64 جيجابايت من ذاكرة الوصول العشوائي ومساحة تخزين قليلة تيرابايت. هذه بالفعل صفقة جيدة للغاية لخادم بهذا الحجم. مقارنةً بـ AWS's r5.2xlarge مع 8 مراكز و 64 جيجابايت من ذاكرة الوصول العشوائي (ذاكرة الوصول العشوائي هي المهم هنا) ، ستدفع أكثر من 250 دولارًا شهريًا حتى مع عقد لمدة عام ، ناهيك عن 50 دولارًا - 100 دولار أو نحو ذلك مقابل حجم EBS قابل للمقارنة.

إذن مع كون خادم SYS صفقة جيدة ، كم تعتقد أنه سيكلف شراء واحد مماثل من Ebay؟ يكلف خادم SYS أكثر من 1000 دولار سنويًا ، لذلك قد يكون تقديرًا جيدًا من 500 إلى 700 دولار أو نحو ذلك ، لا سيما بالنظر إلى أن معالج Xeon وحده يباع بأكثر من 600 دولار للبيع بالتجزئة ، ناهيك عن تكلفة ذاكرة الوصول العشوائي ومحركات الأقراص والمكونات المتنوعة.

كلا. إليك قائمة من Ebay لرف بنفس المواصفات مقابل 70 دولارًا مع الشحن المجاني:

خادم جيد جدًا مقابل 70 دولارًا فقط على موقع ئي باي
خادم جيد جدًا مقابل 70 دولارًا فقط على موقع ئي باي

ربما تقفز على فرصة شراء هذا ، ولكن هناك بعض الأشياء التي يجب مراعاتها أولاً.

بادئ ذي بدء ، لا تريد وضع هذا الشيء في غرفة نومك. الخوادم بصوت عالٍ. من المفترض أن يذهبوا إلى مركز البيانات ، ولا تملك أجهزة الكمبيوتر آذانًا. قد تكون قادرًا على الابتعاد عن وضعه في الطابق السفلي ، لكن لا تتوقع تركه في خزانة غرفة نومك ، خاصةً خادم 1U ، الذي يحتوي على مراوح صغيرة بحجم 40 مم والتي يجب أن تدور مليار مرة في الثانية فقط لتبريد شيء

وعلى الرغم من أن الأجهزة رخيصة ، إلا أن الطاقة ليست كذلك. سيرفر مثل هذا الخادم 100-200 واط أثناء الخمول ، ويمكن أن يصل ذروته إلى أكثر من 500 واط ، مع قدرة بعض الخوادم الأساسية الثقيلة على سحب كيلوواط كامل من الطاقة عند تحميلها بالكامل.إذا لم تكن تعاني من عبء مجنون ، فمن المحتمل أنك لن تدفع الكثير مقابل الطاقة ، لكنك تتوقع أن ترتفع فاتورتك بمقدار 10-15 دولارًا لكل خادم.

وأخيرًا ، هناك سؤال حول ما إذا كان يمكنك حتى تشغيل الخوادم من منزلك أم لا. معظم خطط الإنترنت المنزلية ليست مجهزة جيدًا للقيام بذلك. لا يقتصر الأمر على أنه عادةً ما يكون مخالفًا لشروط الخدمة ، ولكن لن يكون لديك عنوان IP ثابت ، مما يجعل الاتصال بالشبكات أمرًا صعبًا للغاية. ستحتاج إلى النظر في خطط الأعمال التي يقدمها مزود خدمة الإنترنت إذا كنت تفكر بجدية في شراء الخادم الخاص بك.

إذا كنت ترغب في شراء الخادم الخاص بك ، فيجب عليك التحقق من LabGopher ، خدمة التجميع للعثور على الخوادم المستخدمة ستسمح لك بتصفح قوائم Ebay بشكل أكثر فعالية.

قائمة مقارنة LabGopher
قائمة مقارنة LabGopher

عادة ، يمكنك العثور على خوادم رائعة حقًا بأقل من 500 دولار أو نحو ذلك. الخادم في المقارنة أعلاه هو صفقة استثنائية ، لكنه ليس نادرًا تمامًا.

لست مضطرًا لاستضافتهم من المنزل رغم ذلك. هناك مقدمو خدمات متخصصون في استضافة أجهزة الأشخاص الآخرين ، تسمى خدمات تحديد المواقع المشتركة ، والتي ستربط الخادم الخاص بك في مركز البيانات الخاص بهم ، مع استكمال الطاقة والشبكات. هذا خيار متطرف والتزام جاد إلى حد ما ، لكنه قد يكون منطقيًا في مواقف معينة.

سيكلفك إنشاء موقع على خادم واحد مكون من وحدتين ما يزيد قليلاً عن 100 دولار شهريًا. إذا كان هذا الخادم قويًا جدًا ، فقد تكون هذه التكلفة أقل بكثير مما تدفعه عند استئجار خادم مخصص من نفس العيار. ضع في اعتبارك ، على الرغم من ذلك ، أن العديد من خدمات الاستضافة الجماعية ستتحمل رسومًا بناءً على استخدام الطاقة ، لذلك سترغب في إجراء البحث أولاً قبل الاستعانة بالموقع.

خيارات خدمة الخلفية-Google Firebase ، RethinkDB

Google Firebase
Google Firebase

هذا الخيار الأخير لحالة الاستخدام الخاص. إذا كانت لعبتك تحتاج فقط إلى خلفية بسيطة ، فقد تكون مهتمًا بقاعدة بيانات حقيقية.يتم تحديث قواعد البيانات في الوقت الفعلي على الفور ، ودفع التحديثات للمستخدمين المشتركين عبر مآخذ الويب. يتم استخدامها بشكل شائع لإنشاء تطبيقات مثل محرّر مستندات Google ، حيث يكون الاتصال في الوقت الفعلي للمعلومات أمرًا أساسيًا. يعمل هذا الخيار جيدًا بشكل خاص مع ألعاب الجوّال ، حيث لا يلزم حقًا وقت استجابة منخفض للغاية ، وسرعة إجراءات ، ومعالجة معقدة.

Firebase هي خدمة مُدارة من Google. لقد بدأت كمجرد قاعدة بيانات في الوقت الفعلي ، ولكنها تطورت منذ ذلك الحين لتصبح منصة كاملة للواجهة الخلفية لتطبيقات الأجهزة المحمولة. هناك فئة مجانية ، فئة 25 دولارًا والتي يجب أن تكون كافية لمعظم التطبيقات الأصغر ، وخطة الدفع أولاً بأول والتي تفرض رسومًا على أساس الاستخدام.

RethinkDB هي قاعدة بيانات مفتوحة المصدر تم إنشاؤها مع مراعاة الوقت الفعلي. سيتعين عليك تشغيله على الخادم الخاص بك ، ولكن قوة المعالجة RethinkDB ، بالإضافة إلى خادم مخصص رخيص ، يجب أن تكون أكثر من كافية للخلفية لمعظم الأشياء ، ما لم يواجه تطبيقك الكثير من حركة المرور.

موضوع شعبي