محاكاة تأخر الألعاب وفقدان الحزم
تُكتب شيفرة الشبكة (netcode) على اتصال محلي بـ ping قدره 1 ms ويختبرها لاعبون على واي فاي فندق. وهذا يسد تلك الفجوة على جهازك أنت، على عملية اللعبة وحدها، بينما يبقى بقية الحاسوب صالحًا للاستخدام.
ابدأ من هنا
استهدف عميل اللعبة، وامنحه اتصالًا سيئًا واقعيًا، ودعه يتوقف وحده بعد خمس دقائق:
BeanNetworkTester.exe --latency 120 --jitter 60 --loss 3 --target mygame.exe --duration 300
وهناك جدول زمني جاهز لهذا أيضًا: الملف overloaded-game-server.json في مجلد scenarios يقود اتصالًا إلى الازدحام ثم يخرجه منه، فتراقب كيف يتعامل العميل مع اتجاهي التغيير. انظر السيناريوهات الزمنية.
لماذا تُظهر اللعبة الفقدان بينما لا يُظهره المتصفح
معظم حركة الألعاب UDP، وليس لدى UDP ما يخفي به الفقدان. أما صفحة الويب عبر TCP فتعيد الإرسال بهدوء وتستغرق وقتًا أطول فقط، ولذلك قد يبدو المتصفح سليمًا عند فقدان 5%، بينما تتقطع مباراة عند الـ 5% نفسها وتعيد الشخصية إلى الوراء وتفقد التزامن.
وهذا يجعل اللعبة المكان الصادق لاختبار الفقدان: ما تضبطه هو ما يعيشه العميل فعلًا.
ما تضبطه وما الذي يكشفه
| الإعداد | جرّب | ما الذي يكشفه |
|---|---|---|
| زمن الاستجابة | 80 إلى 250 ms | التنبؤ والاستيفاء. هل تنزلق شخصيتك إلى الوراء بعد إطلاق النار؟ |
| الجيتر | 40 إلى 100 ms | التخزين المؤقت. إخفاء 200 ms ثابتة أسهل من ping يتغير باستمرار. |
| الفقدان | 2 إلى 10% | تحديثات الحالة المفقودة، وهل يتعافى العميل أم ينحرف. |
| القفزات | ثانية واحدة، نادرًا | التوقف الذي يسببه التسليم بين الأبراج. وهو في الغالب الأبشع. |
| تشغيل الوصلة وإيقافها | دورة 10 s، انقطاع 30% | إعادة الاتصال وإعادة الانضمام. |
قِس الجيتر بالفرق بين المئين الـ 95 والوسيط لا كمتوسط: فالجيتر بالكاد يحرّك المتوسط، ولذلك قد يبدو تشغيلان متطابقين على الورق ويختلفان في اللعب.
مقارنة نسختين تحتاج إلى seed
الفقدان العشوائي يجعل التشغيلين مختلفين، ولذلك فإن «النسخة الجديدة تبدو أسوأ» ليست دليلًا. أما seed نفسه فيعيد الفقدان نفسه والجيتر نفسه، فيحوّل الإحساس إلى مقارنة:
BeanNetworkTester.exe --latency 120 --jitter 60 --loss 5 --seed 42 --target mygame.exe --duration 180
ما لا يستطيع فعله
هذا يشكّل حركة جهازك أنت. فهو لا يبطّئ الخادم ولا يغيّر معدل تحديثه ولا يضع لاعبين آخرين على اتصال سيئ، ولذلك يختبر عميلك على وصلة سيئة لا خادمك تحت الحِمل. أما لجانب الخادم فتحتاج إلى اختبار الحِمل، وللوبي ممتلئ باتصالات سيئة تحتاج إلى أكثر من جهاز.