كيف ضبطنا لاعبين عاديين و DDoS أو خوادمنا: دليل عملي

إن الحديث عن مشاريع جديدة أمر جيد بالطبع ، ولكن ليس كل شيء يتحول دائمًا كما نريد.

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



خسر - احصل على حظر


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

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

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

كان الحل عكازًا ، ولكنه فعال. بدأت المشاكل بسببه بعد ذلك بقليل ، ولكن عليك أولاً التحدث قليلاً عن خطأ آخر وميزات تطوير PvP المحمول المتزامن.

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

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

لقد كان هنا ما غمرنا.

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

الجميع ، بالطبع ، كانوا غير متزوجين بل دفعوا تعويضات ، لكن الوضع على هذا النحو ، ليس إيجابيا بالتأكيد.



كيفية إعداد DDoS لنفسك


لقد كتبنا بالفعل عن تطور البنية التحتية لخوادمنا ، والآن تذكرنا حالة واحدة في ذلك الوقت.

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

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

في تلك الليلة نفسها ، قمنا بإزالة العلم (لم يكن لدينا الوقت لإغلاق الشمبانيا بعد) ، والذي تم التحكم فيه من خادم الملف الشخصي - فقد حظر تمامًا تشغيل Hangar Client API. بالنسبة للاعبين الذين انضموا بالفعل إلى العشائر ، تركنا هذا العلم قيد التشغيل ، أي أن كل شيء يعمل لصالحهم ، لأن عددهم لم يكن كافيًا لـ DDoS الخادم.

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

تصنيف "مجاني"


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

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

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

جائزة لا تقدر بثمن


كان هناك fakap آخر مع خطأ مطبعي ، ولكن أكثر خطورة.

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

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

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

تُظهر واجهة اليانصيب تكلفة الافتتاح الحالي (التكلفة التي تزداد في كل مرة) ، على سبيل المثال ، السعر: 100 ذهب. إليك ما يبدو عليه المفهوم (لاحظ أنه وفقًا للفكرة ، تحتوي كل بطاقة أيضًا على سعر افتتاح إضافي):



وهنا كيف انتهى الأمر ، نتيجة لسلسلة من "التحسينات" ، تحول PRICE (سعر المشاركة في اليانصيب) فجأة إلى جائزة (جائزة) للمصمم:



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

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

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

حان الوقت لتقديم الهاشتاج # Kosyakinaprode

Source: https://habr.com/ru/post/ar417441/


All Articles