Simulasikan lag dan kehilangan paket pada game
Netcode ditulis di koneksi lokal dengan ping 1 ms dan diuji oleh pemain di Wi-Fi hotel. Ini menutup kesenjangan itu di mesin Anda sendiri, hanya pada proses game, sementara sisa komputer tetap bisa dipakai.
Mulai dari sini
Bidik klien game, beri koneksi buruk yang realistis, dan biarkan berhenti sendiri setelah lima menit:
BeanNetworkTester.exe --latency 120 --jitter 60 --loss 3 --target mygame.exe --duration 300
Ada juga lini waktu siap pakai untuk ini: overloaded-game-server.json di folder scenarios membawa koneksi ke kemacetan lalu kembali lagi, sehingga Anda dapat melihat bagaimana klien menangani kedua arah perubahan. Lihat skenario berbasis waktu.
Mengapa game memperlihatkan kehilangan sedangkan peramban tidak
Kebanyakan lalu lintas game adalah UDP, dan UDP tidak punya apa pun untuk menyembunyikan kehilangan. Halaman web di atas TCP diam-diam mengirim ulang dan hanya butuh waktu lebih lama, itulah sebabnya peramban bisa terasa baik pada kehilangan 5% sementara sebuah pertandingan dengan 5% yang sama tersendat, tertarik mundur, dan tidak sinkron.
Itu menjadikan game tempat yang jujur untuk menguji kehilangan: apa yang Anda atur adalah yang benar-benar dialami klien.
Apa yang diatur, dan apa yang dicari
| Pengaturan | Coba | Yang diungkapkannya |
|---|---|---|
| Latensi | 80 sampai 250 ms | Prediksi dan interpolasi. Apakah karakter Anda tergelincir mundur setelah menembak? |
| Jitter | 40 sampai 100 ms | Buffering. 200 ms yang stabil lebih mudah disembunyikan daripada ping yang terus bergerak. |
| Kehilangan | 2 sampai 10% | Pembaruan status yang hilang, dan apakah klien pulih atau menyimpang. |
| Lonjakan | 1 detik, jarang | Hambatan yang ditimbulkan perpindahan antar menara. Biasanya yang paling jelek. |
| Tautan hidup dan mati | siklus 10 s, 30% mati | Sambung ulang dan bergabung kembali. |
Ukur jitter sebagai selisih antara persentil ke-95 dan median, bukan sebagai rata-rata: jitter hampir tidak menggeser rata-rata, itulah sebabnya satu eksekusi bisa tampak identik di atas kertas tetapi terasa berbeda saat dimainkan.
Membandingkan dua build butuh seed
Kehilangan acak membuat dua eksekusi berbeda, sehingga “build baru terasa lebih buruk” bukan bukti. Seed yang sama memutar ulang kehilangan dan jitter yang sama, yang mengubah perasaan menjadi perbandingan:
BeanNetworkTester.exe --latency 120 --jitter 60 --loss 5 --seed 42 --target mygame.exe --duration 180
Yang tidak bisa dilakukannya
Alat ini membentuk lalu lintas mesin Anda. Ia tidak memperlambat server, tidak mengubah tick rate-nya, dan tidak menempatkan pemain lain di koneksi buruk, sehingga ia menguji klien Anda terhadap tautan buruk, bukan server Anda di bawah beban. Untuk sisi server, Anda butuh uji beban, dan untuk lobi yang penuh koneksi buruk, Anda butuh lebih dari satu mesin.