Buku Putih Lag Game › Cari berdasarkan gejala
Fast forward: 36 penyebab dan penanggung jawabnya
Disebut juga: bertubi-tubi, seperti dipercepat, semua diproses sekaligus
Buka kamus gejala interaktif dengan gambar →
Layar yang tadinya diam bergerak lagi, lalu gerakan, serangan, dan damage yang tertunda lewat dengan cepat sekaligus.
Monster dan pemain lain bergerak seperti video yang dipercepat, sementara angka damage dan efek muncul bertubi-tubi sekaligus.
Paket sempat tertahan di suatu tempat, lalu dilepas sekaligus. Penyebab yang umum: TCP menunggu retransmisi, server mengejar ketertinggalan, dan pemrosesan di klien yang tertunda.
Penyebab gejala ini
L1 Proses game di klien
- Bottleneck pemrosesan paket di main thread: Jika paket yang diterima hanya diproses dalam jumlah tertentu per frame, paket yang datang bertumpuk terus terdorong ke frame berikutnya. (Pengembangan klien (Tim Pengembang Game))
- Catch-up fixed timestep yang lepas kendali: Setelah sekali berhenti, game menghitung kerja yang tertunda sekaligus, dan perhitungan itu membuatnya tertinggal lagi. (Pengembangan klien (Tim Pengembang Game))
L2 OS dan perangkat klien
- Pemakaian CPU oleh proses di latar belakang: Saat pemindaian antivirus, Windows Update, program streaming, atau video di browser memakai core CPU, thread game tidak mendapat jatah CPU dan harus menunggu. (Pihak Eksternal (Pihak Eksternal))
- Buffer terima meluap: Jika game terlalu sibuk sehingga terlambat mengambil paket dari socket (antarmuka kirim-terima jaringan yang disediakan OS), buffer OS meluap. (Pengembangan klien (Tim Pengembang Game))
- Pemakaian bandwidth oleh aplikasi lain di perangkat yang sama: Jika sinkronisasi cloud, unduhan besar, atau patch game berjalan di PC yang sama, paket game harus menunggu di antrean. (Pihak Eksternal (Pihak Eksternal))
- Pemrosesan dibatasi saat jendela diminimalkan atau tidak aktif: Saat Anda melihat jendela lain atau meminimalkan game, game dan Windows menjalankan game lebih lambat untuk menghemat daya. Saat kembali, paket yang tertunda datang sekaligus, atau koneksi sudah terputus. (Pengembangan klien (Tim Pengembang Game))
L3 Jaringan rumah
- Bufferbloat (antrean router): Saat anggota keluarga mengunggah video atau mengunduh file besar, paket senilai ratusan ms menumpuk di antrean router, dan paket game pun menunggu di belakangnya. (Pihak Eksternal (Pihak Eksternal))
L6 Kartu jaringan server
- Maintenance host cloud dan live migration: Saat penyedia cloud melakukan maintenance pada server fisik (host), virtual machine dipindahkan ke host lain (live migration) atau dihentikan sementara. Selama itu seluruh server terhenti, dan jika jedanya lama, koneksi terputus. (Infrastruktur server (Tim Infrastruktur))
L7 OS server (kernel)
- Buffer socket kernel terlalu kecil: Jika buffer kirim dan buffer terima kecil, saat burst trafik datang paket yang diterima lewat UDP dibuang, dan pengiriman TCP tertahan karena buffer tidak punya ruang. (Infrastruktur server (Tim Infrastruktur))
- Lompatan jam sistem (NTP step): Jika jam server disesuaikan beberapa detik maju atau mundur sekaligus, timer yang bergantung pada jam sistem terpicu bersamaan atau berhenti. (Pengembangan server (Tim Pengembang Game))
L8 Socket dan protokol
- HOL blocking pada TCP: Untuk menjaga urutan, TCP tidak menyerahkan paket yang datang belakangan ke game sampai satu paket yang hilang diterima ulang. (Pengembangan server (Tim Pengembang Game))
- Pengaturan retransmisi reliable UDP: Jika aturan retransmisi yang dibuat sendiri di atas UDP terlalu konservatif, pemulihan terlambat; jika terlalu agresif, jalur makin padat. (Pengembangan server (Tim Pengembang Game))
- Laju kirim anjlok akibat congestion control: TCP menganggap packet loss sebagai tanda kongesti dan menurunkan kecepatan kirim 30–50%. TCP bereaksi sama terhadap packet loss di Wi-Fi. (Infrastruktur server (Tim Infrastruktur))
L9 Proses game di server
- Lonjakan broadcast: Jika gerakan satu pemain dikirim ke semua yang melihatnya, jumlah update yang harus dikirim menjadi kuadrat dari jumlah pemain yang berkumpul. (Pengembangan server (Tim Pengembang Game))
- Pertempuran terpusat pada satu target (world boss): Jika ratusan pemain menyerang satu boss secara bersamaan, perhitungan untuk boss itu terpusat di satu tempat, dan informasi setiap serangan dikirim ke semua yang melihatnya. (Pengembangan server (Tim Pengembang Game))
- Lonjakan spawn saat masuk area padat: Saat pemain memakai teleportasi ke kota yang ramai, server harus mengirim tampilan, perlengkapan, dan status ratusan pemain yang baru terlihat sekaligus. (Pengembangan server (Tim Pengembang Game))
L10 Memori
- Jeda GC stop-the-world di server: Selama server Java atau C# menghentikan semua thread untuk mengumpulkan garbage (stop-the-world), seluruh server berhenti. (Pengembangan server (Tim Pengembang Game))
Desain sinkronisasi
- Event diputar begitu tiba tanpa timestamp: Jika event dari server diputar begitu diterima tanpa diberi waktu kejadian, jitter jaringan langsung membuat timing animasi tidak beraturan. (Pengembangan klien (Tim Pengembang Game))
Masalah yang hanya dialami sebagian pemain
- Pemain yang lag terlihat fast forward di layar pemain lain: Input dari pemain yang koneksinya buruk tiba di server secara tidak beraturan dan bertumpuk. Jika server menerapkan input sebanyak yang diterima di setiap tick, pemain lain melihat karakter itu tersendat sesaat, lalu maju beberapa langkah sekaligus. (Pengembangan server (Tim Pengembang Game))
- Fast forward pada server yang memproses input begitu tiba: Pada server yang langsung memproses paket begitu tiba dan segera mengabarkan hasilnya, aksi pemain lambat yang datang bertumpuk langsung dijalankan berturut-turut. (Pengembangan server (Tim Pengembang Game))
- Otoritas kontrol monster ada di klien yang lambat: Ada game yang menyerahkan perhitungan gerakan monster ke klien salah satu pemain di dekatnya untuk mengurangi beban server. Jika koneksi pemain itu buruk, monster itu bergerak aneh di layar semua pemain. (Pengembangan server (Tim Pengembang Game))
- Pemrosesan dibatasi di jendela latar belakang: Untuk klien di jendela latar belakang, game, engine, dan OS mengurangi frame dan pemrosesan. Paket yang diterima tidak sempat diproses tepat waktu, sehingga menumpuk atau meluap. (Pengembangan klien (Tim Pengembang Game))
Akar penyebab retransmisi TCP
- Packet loss di jalur nirkabel: Wi-Fi dan jaringan seluler mengirim ulang paket beberapa kali di jalur nirkabel, dan jika tetap gagal, paket dibuang. Paket yang dibuang itu baru dikirim ulang oleh TCP jauh kemudian. (Pihak Eksternal (Pihak Eksternal))
- Antrean bottleneck meluap (packet loss akibat kongesti): Saat antrean di titik tersempit penuh, misalnya router rumah, jalur penghubung antar-ISP, atau jalur data center, paket yang baru datang dibuang. (Infrastruktur jaringan (Tim Infrastruktur))
- Buffer dangkal meluap akibat burst pengiriman: Jika setiap tick server mengirim update untuk ribuan pemain sekaligus dalam sekejap, buffer kecil di switch atau batas sesaat di cloud meluap dalam waktu kurang dari 1 ms dan sebagian paket dibuang. (Pengembangan server (Tim Pengembang Game))
- Policer membuang trafik berlebih: Batas kecepatan langganan ISP, batas instance cloud, dan perangkat proteksi DDoS kadang langsung membuang paket yang melewati kecepatan yang ditetapkan tanpa memasukkannya ke antrean. (Infrastruktur jaringan (Tim Infrastruktur))
- Error fisik (kabel, modul optik, atau konektor rusak): Kabel yang rusak, konektor serat optik yang kotor, dan modul optik yang sudah habis umur pakainya menimbulkan bit error, dan paket yang rusak dibuang diam-diam oleh perangkat. (Infrastruktur jaringan (Tim Infrastruktur))
- Duplex mismatch: Jika satu sisi memakai autonegotiation sedangkan sisi lain mengunci kecepatan dan duplex, salah satu sisi berjalan dalam mode half duplex, dan paket hilang akibat collision setiap kali beban naik. (Infrastruktur jaringan (Tim Infrastruktur))
- Paket dibuang di host server penerima: Paket sudah sampai di server, tetapi dibuang karena ring buffer NIC (buffer yang menampung sementara paket yang tiba) meluap atau core yang menangani pemrosesan terima di kernel jenuh. (Infrastruktur server (Tim Infrastruktur))
- Batas pemrosesan perangkat perantara terlampaui (firewall, IPS, proteksi DDoS): Firewall, perangkat pencegah intrusi (IPS), dan perangkat proteksi DDoS memeriksa setiap paket yang lewat. Begitu trafik melampaui kapasitas pemeriksaannya, paket yang tidak sempat diproses dibuang. (Infrastruktur jaringan (Tim Infrastruktur))
- Perubahan rute dan jalur ECMP bermasalah: Paket hilang selama beberapa detik saat rute internet berubah, atau terus-menerus pada koneksi yang ditempatkan di jalur bermasalah di antara beberapa jalur ECMP. (Infrastruktur jaringan (Tim Infrastruktur))
- Retransmisi yang tidak perlu akibat lonjakan latensi: Paket sebenarnya tidak hilang dan hanya sesaat datang sangat terlambat, tetapi jika keterlambatan itu lebih lama dari RTO, pengirim menganggap paket hilang lalu mengirimnya ulang. (Pihak Eksternal (Pihak Eksternal))
- Pengaturan RTO tidak sesuai dengan lingkungan: Jika nilai minimum RTO diturunkan terlalu rendah, keterlambatan kecil saja sudah memicu retransmisi yang tidak perlu. Sebaliknya, nilai default (200 ms) terlalu panjang untuk game sehingga setiap kali paket hilang, game berhenti lama. (Infrastruktur server (Tim Infrastruktur))
- Pemulihan lambat pada thin stream: Jika game mengirim paket kecil secara jarang-jarang, RTO datang lebih dulu sebelum “3 paket susulan” terkumpul. Untuk packet loss yang sama, game berhenti jauh lebih lama daripada transfer data besar. (Pengembangan server (Tim Pengembang Game))
- Opsi TCP dihapus oleh perangkat perantara: Jika sebagian firewall atau perangkat akselerator menghapus atau mengubah opsi TCP, saat beberapa paket hilang, pemulihannya hanya satu paket per round trip, atau window (jumlah yang bisa dikirim sekaligus) mengecil sehingga koneksi melambat. (Infrastruktur jaringan (Tim Infrastruktur))
- Zero window (jeda yang terlihat seperti retransmisi): Jika program penerima tidak membaca socket tepat waktu sehingga buffer penuh, pengirim menghentikan pengiriman dan hanya mengirim zero window probe. Koneksinya sendiri baik-baik saja. (Pengembangan klien (Tim Pengembang Game))
Lihat kamus gejala interaktif dengan gambar