Buku Putih Lag Game › Cari berdasarkan gejala
Patah-patah: 60 penyebab dan penanggung jawabnya
Disebut juga: tersendat-sendat, putus-putus, terasa seperti FPS drop
Buka kamus gejala interaktif dengan gambar →
Gerakan tidak mulus: berhenti sebentar, bergerak lagi, dan begitu terus berulang.
Karakter lain atau seluruh layar Anda “tersendat, tersendat”. Titik-titik jejak gerakan merapat lalu merenggang.
Jika angka ping normal, kemungkinan besar masalahnya ada di frame PC Anda (klien atau OS). Jika ping naik turun, kemungkinan besar penyebabnya jitter dari Wi-Fi atau koneksi internet. Namun, ping di dalam game biasanya diukur di dalam game loop yang berjalan setiap frame, sehingga saat frame melonjak, angka ping juga bisa ikut melonjak.
Penyebab gejala ini
L1 Proses game di klien
- Lonjakan frame time: Perhitungan satu frame memakan waktu beberapa kali lebih lama dari biasanya sehingga layar berhenti sejenak. (Pengembangan klien (Tim Pengembang Game))
- Garbage collection di klien: Selama memori bekas pakai (garbage) dikumpulkan kembali, seluruh game berhenti. Cirinya adalah patah-patah dengan interval yang teratur. (Pengembangan klien (Tim Pengembang Game))
- Pemuatan sinkron dan kompilasi shader di main thread: Game berhenti karena harus membaca file dan membuat shader tepat sebelum menggambar area, monster, atau efek yang baru pertama kali muncul. (Pengembangan klien (Tim Pengembang Game))
- Streaming aset tertinggal akibat storage lambat: Pada storage lambat seperti HDD, kecepatan membaca tekstur dan model di open world tidak bisa mengimbangi gerakan pemain, sehingga objek terlambat muncul atau game patah-patah karena menunggu pembacaan selesai. (Pengembangan klien (Tim Pengembang Game))
- Beban rendering kerumunan besar: Saat ratusan karakter masuk ke satu layar seperti di siege atau world boss, biaya menggambarnya saja sudah tidak sanggup ditangani. (Pengembangan klien (Tim Pengembang Game))
- Buffer interpolasi tidak ada atau terlalu pendek: Jika paket server langsung digambar begitu diterima, jitter (variasi selang waktu kedatangan paket) langsung terlihat di layar. (Pengembangan klien (Tim Pengembang Game))
- Ekstrapolasi berlebihan (dead reckoning): Selama paket tidak datang, objek terus ditampilkan bergerak dengan kecepatan terakhir, lalu dikembalikan begitu ketahuan salah. (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))
- Kesalahan sinkronisasi jam: Jika waktu server yang diperkirakan klien salah, titik waktu interpolasi dan pengecekan cooldown tidak cocok dengan server. (Pengembangan klien (Tim Pengembang Game))
- Hilangnya presisi waktu bertipe float: Jika waktu game disimpan dalam format bilangan desimal berpresisi rendah (float), makin lama game menyala, makin turun resolusi waktunya (selisih waktu terkecil yang bisa dibedakan), sehingga gerakan dan efek bergetar. (Pengembangan klien (Tim Pengembang Game))
- V-Sync dan antrean render: Frame yang sudah digambar GPU ditumpuk beberapa buah di antrean, lalu dikirim ke layar mengikuti siklus refresh monitor; selama itu input terlambat. (Pengembangan klien (Tim Pengembang Game))
- Kebocoran memori di klien: Makin lama game menyala, makin besar memori yang dipakai sehingga game makin lambat dan akhirnya tertutup paksa. (Pengembangan klien (Tim Pengembang Game))
- Pemindaian oleh modul keamanan game (anti-cheat): Modul keamanan yang berjalan bersama game untuk mencegah cheat melakukan pemeriksaan secara berkala. Jika pemeriksaannya berat atau heartbeat (sinyal berkala yang menandakan klien masih hidup) ke server keamanan terlambat, game menjadi patah-patah atau disconnect. (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))
- Mode hemat daya dan thermal throttling: Mode baterai laptop, mode hemat daya ponsel, dan panas perangkat menurunkan kecepatan CPU dan GPU. Ciri penurunan karena panas: awalnya normal, lalu baru melambat setelah cukup lama. (Pihak Eksternal (Pihak Eksternal))
- Resolusi timer: Timer default Windows bekerja dalam satuan 15,6 ms, sehingga “tidur 1 ms saja” sebenarnya memanjang sampai siklus timer berikutnya, paling lama 15,6 ms. (Pengembangan klien (Tim Pengembang Game))
- Pemeriksaan paket oleh program keamanan: Jika antivirus atau firewall memeriksa semua paket, latensi bertambah, dan jika berlebihan, game salah dikira serangan lalu diblokir. (Pihak Eksternal (Pihak Eksternal))
- Kekurangan memori dan swap di klien: Jika puluhan tab browser dan game menyala bersamaan, OS memindahkan sebagian memori game ke disk. (Pihak Eksternal (Pihak Eksternal))
- Kekurangan memori grafis (VRAM): Jika memori yang dibutuhkan opsi grafis lebih besar dari memori kartu grafis, OS memindahkan tekstur ke memori PC lalu mengambilnya kembali sehingga game patah-patah. (Pengembangan klien (Tim Pengembang Game))
- Pemindaian Wi-Fi di latar belakang: Selama OS berpindah-pindah channel secara berkala untuk mencari Wi-Fi di sekitar, komunikasi berhenti sejenak. (Pihak Eksternal (Pihak Eksternal))
- Mode hemat daya NIC dan masalah driver: Jika kartu LAN atau chip Wi-Fi masuk ke mode hemat daya di antara paket, butuh waktu untuk aktif kembali. (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))
- Interferensi program overlay: Program messenger, launcher, perekam, dan penampil FPS menyusup ke proses rendering game (hooking) untuk menggambar UI mereka di atas layar game. Pekerjaan setiap frame bertambah, dan sesekali program itu bentrok dengan game sehingga game tersendat sesaat atau tertutup paksa. (Pihak Eksternal (Pihak Eksternal))
L3 Jaringan rumah
- Interferensi Wi-Fi dan sinyal lemah: Jika sinyal lemah atau ada interferensi, paket dikirim ulang beberapa kali di jalur nirkabel sehingga waktu kedatangannya tidak beraturan. (Pihak Eksternal (Pihak Eksternal))
- Channel Wi-Fi padat: Di tempat dengan puluhan router seperti apartemen, router harus berbagi channel yang sama sehingga harus menunggu kesempatan mengirim. (Pihak Eksternal (Pihak Eksternal))
- Router kurang bertenaga atau terlalu panas: Jika puluhan perangkat dan ribuan koneksi membebani router murah, router itu sendiri tidak sanggup memprosesnya. (Pihak Eksternal (Pihak Eksternal))
- Sinyal seluler lemah dan area blank spot: Di lift, ruang bawah tanah, atau bagian dalam gedung, retransmisi bertambah, kecepatan turun, dan akhirnya terjadi disconnect. (Pihak Eksternal (Pihak Eksternal))
- Perpindahan 5G↔LTE yang sering (di tepi jangkauan 5G): Di dalam gedung dengan sinyal 5G lemah atau di tepi jangkauan 5G, ponsel sering berpindah antara 5G dan LTE, dan setiap kali berpindah ping melonjak atau komunikasi terputus sejenak. (Pihak Eksternal (Pihak Eksternal))
L4 Jalur internet
- Internet satelit (orbit rendah dan geostasioner): Pada internet satelit, sinyal harus bolak-balik ke luar angkasa. Dengan satelit geostasioner, pulang-pergi saja sudah lebih dari 0,5 detik. Satelit orbit rendah seperti Starlink biasanya cepat, tetapi saat rute dialokasikan ulang, latensinya berfluktuasi dan koneksi kadang putus sesaat. (Pihak Eksternal (Pihak Eksternal))
- Kongesti di jalur peering saat jam sibuk: Sekitar pukul 21.00–23.00, trafik video melonjak sehingga jalur interkoneksi antar-ISP (peering) mudah padat. (Infrastruktur jaringan (Tim Infrastruktur))
- Satu jalur ECMP bermasalah: ISP dan data center menyiapkan beberapa jalur ke tujuan yang sama dan menetapkan satu jalur untuk setiap koneksi. Jika hanya satu jalur yang rusak, hanya pemain yang mendapat jalur itu yang terus mengalami lag. (Infrastruktur jaringan (Tim Infrastruktur))
L6 Kartu jaringan server
- Overhead virtualisasi dan noisy neighbor: Jika virtual machine lain di server fisik yang sama banyak memakai jaringan atau CPU, pemrosesan di server Anda tertunda secara tidak beraturan. (Infrastruktur server (Tim Infrastruktur))
L7 OS server (kernel)
- Thread berlebihan dan context switching: Jika jumlah thread jauh melebihi jumlah core, OS menghabiskan CPU hanya untuk menjalankan thread-thread itu secara bergiliran. (Pengembangan server (Tim Pengembang Game))
- CPU steal (virtual machine): Server game berhenti selama server fisik (hypervisor) sementara memberikan waktu CPU milik virtual machine ini ke virtual machine lain (CPU steal). (Infrastruktur server (Tim Infrastruktur))
- CPU throttling di container (kuota CFS): Jika container diberi batas CPU, begitu kuota dalam satu periode (biasanya 100 ms) habis, container dipaksa berhenti selama sisa periode itu (throttling). (Infrastruktur server (Tim Infrastruktur))
- Jeda akibat reclaim dan compaction memori: Proses berhenti selama OS memadatkan memori (compaction) untuk membuat halaman besar (huge page) atau mengambil kembali memori (reclaim) agar tersedia ruang kosong. (Infrastruktur server (Tim Infrastruktur))
- Tugas terjadwal: Kompresi log, backup, dan pemindaian keamanan yang berjalan pada jam yang sama setiap hari menyita CPU dan disk. (Infrastruktur server (Tim Infrastruktur))
- Perubahan performa setelah update OS, kernel, driver, atau firmware: Kode game tidak berubah, tetapi server menjadi lambat sejak OS, kernel, driver, atau firmware server diperbarui. Update bisa mengubah nilai default, scheduler, mitigasi kerentanan CPU (mitigations), dan perilaku driver. (Infrastruktur server (Tim Infrastruktur))
L9 Proses game di server
- Tick melewati budget (tick overrun): Jika pekerjaan dalam satu tick melewati tick budget (batas waktu per tick), interval tick server memanjang, dan seluruh area itu berjalan lambat atau patah-patah. (Pengembangan server (Tim Pengembang Game))
- Lonjakan perhitungan jarak pandang (AOI, N²): Jika siapa bisa melihat siapa dihitung dengan membandingkan semua pemain satu sama lain, saat jumlah pemain naik 10 kali, perhitungannya naik 100 kali. (Pengembangan server (Tim Pengembang Game))
- Pemanggilan sinkron di thread game: Jika di tengah tick server menunggu respons DB atau penulisan file, seluruh jalannya game di server berhenti selama waktu itu. (Pengembangan server (Tim Pengembang Game))
- Timer terpicu serentak: Jika respawn semua monster, berakhirnya semua buff, dan hadiah tepat di pergantian jam menumpuk di tick yang sama, tick itu saja menjadi puluhan kali lebih berat. (Pengembangan server (Tim Pengembang Game))
- Penumpukan objek (item dan summon yang tidak dibersihkan): Jika item di tanah, summon, dan timer yang sudah selesai tidak dibersihkan dan terus menumpuk, makin lama server menyala, makin banyak pekerjaan di setiap tick. (Pengembangan server (Tim Pengembang Game))
L10 Memori
- Jeda GC di engine skrip: Walaupun servernya ditulis dengan C++, jika quest, AI, dan skill dijalankan dengan skrip seperti Lua, zona itu berhenti selama GC engine skrip berjalan. (Pengembangan server (Tim Pengembang Game))
- Lonjakan alokasi: Jika objek sementara dibuat dalam jumlah besar selama event, GC berjalan jauh lebih sering daripada biasanya. (Pengembangan server (Tim Pengembang Game))
L11 Disk
- Penulisan log sinkron: Jika thread game menunggu disk selesai menulis untuk setiap baris log, jalannya game ikut berhenti saat disk sibuk. (Pengembangan server (Tim Pengembang Game))
- Lonjakan fsync: Permintaan agar data ditulis ke disk secara “pasti” memakan 0,1 ms hingga puluhan ms per kali tergantung disknya, dan jika permintaan menumpuk, antreannya memanjang. (Pengembangan server (Tim Pengembang Game))
- Burst credit disk cloud habis: Sebagian disk cloud dan spesifikasi server kecil punya burst credit yang memungkinkan kinerja di atas baseline untuk sementara. Jika masa sibuk berlangsung lama dan kreditnya habis, kecepatannya tiba-tiba turun. (Infrastruktur server (Tim Infrastruktur))
- Tugas backup, kompresi, dan pemindaian: Jika backup dini hari, kompresi log, dan pemindaian keamanan memonopoli disk, pembacaan dan penulisan server game tertunda. (Infrastruktur server (Tim Infrastruktur))
L12 Database
- Checkpoint dan log flush: Query melambat saat DB secara berkala menulis sekaligus perubahan yang tersimpan di memori ke disk. (Infrastruktur DB (Tim Infrastruktur))
L13 Arsitektur dan operasional server
- Beban berlebih akibat log dan monitoring: Saat terjadi gangguan, log melonjak, dan server yang mengirim log secara sinkron menjadi makin lambat karena log itu sendiri. (Pengembangan server (Tim Pengembang Game))
Desain sinkronisasi
- Lockstep menunggu pemain paling lambat: Dalam arsitektur tempat semua pemain menghitung giliran yang sama bersama-sama, jika input satu orang terlambat, semua orang menunggu. (Pengembangan server (Tim Pengembang Game))
- 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))
- Arsitektur host (pembuat room): Jika PC salah satu pemain berperan sebagai server, koneksi dan performa PC orang itu menentukan rasa bermain semua pemain. (Pengembangan server (Tim Pengembang Game))
- Laju pengiriman snapshot rendah: Jika server mengirim update posisi (snapshot) hanya beberapa kali per detik, buffer interpolasi harus dibuat lebih panjang sebanding, sehingga karakter lain terlihat di masa lalu yang lebih jauh. (Pengembangan server (Tim Pengembang Game))
Masalah yang hanya dialami sebagian pemain
- Ukuran buffer input per pemain: Jika server menampung sedikit input untuk setiap pemain lalu mengambilnya satu per tick, gerakan terlihat mulus di mata pemain lain, tetapi aksi pemain itu sendiri dikonfirmasi server lebih lambat sebesar itu. (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))
- Streaming gagal akibat kekurangan memori atau VRAM: Jika dua klien berbagi memori grafis, tidak ada ruang untuk memuat model dan tekstur yang baru dibutuhkan, sehingga sebagian tidak tergambar. (Pengembangan klien (Tim Pengembang Game))
- Objek ditahan akibat kesalahan estimasi jam: Jika waktu server yang diperkirakan klien salah, data objek yang baru tiba ditahan karena dianggap “masih di masa depan”, atau dibuang karena dianggap “sudah terlalu lama”. (Pengembangan klien (Tim Pengembang Game))
Akar penyebab retransmisi TCP
- Fast retransmit yang tidak perlu akibat urutan paket tertukar: Jika urutan paket berubah saat melewati beberapa jalur atau link yang digabung, penerima memberi tahu “ada paket yang hilang” lewat duplicate ACK, dan pengirim mengirim ulang paket yang sebenarnya sudah sampai dengan baik. (Infrastruktur jaringan (Tim Infrastruktur))
Lihat kamus gejala interaktif dengan gambar