한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › Desain sinkronisasi

Server menolak setelah feedback sisi klien Client-side feedback rejected by server

ID penyebab sy-optimistic-reject · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika server kemudian tidak mengakui hit atau skill yang sudah lebih dulu ditampilkan di layar Anda, hasil yang jelas-jelas Anda lihat menjadi tidak pernah terjadi.

Mengapa Efek hit dan animasi skill diputar lebih dulu sebelum konfirmasi server (feedback sisi klien) → Akibatnya Server menimbang ulang jangkauan, posisi target, cooldown, dan resource, lalu menolak → Di layar Darah muncrat tetapi tidak ada damage, hanya animasi skill yang keluar tanpa efek, hanya cooldown yang berjalan

Gejala
Aksi hilang / rollback, Rubber banding
Faktor
Latensi
Siapa yang mengalami
Hanya saya, Fitur tertentu saja
Kapan
Saat melakukan aksi tertentu
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: tampilkan dari hasil server hanya bagian yang perlu dikonfirmasi, seperti angka damage, kematian, dan hadiah, periksa lebih dulu alasan penolakan yang umum, jika ditolak kembalikan cooldown dan resource lalu tampilkan alasannya. Server: beri kelonggaran sebesar ping pada pemeriksaan jangkauan dan posisi target, sertakan alasan di respons penolakan, kumpulkan rasio penolakan per skill sebagai metrik.
Kisaran angka
Respons penolakan datang terlambat sebesar ping + waktu tunggu tick setelah tombol ditekan. Dengan ping 150 ms, selama sekitar 0,2 detik pemain mengira serangannya kena.
Di grafik
Hanya sebagian yang tinggi · Rasio penolakan server per skill (per rentang ping)
Yang diperiksa
Kumpulkan di server rasio penolakan per skill dan alasannya (jangkauan, posisi target, cooldown, resource), lalu bagi per rentang RTT pemain. Di klien, catat jumlah aksi dengan feedback sisi klien yang ditolak
Cocok jika
Penolakan terpusat pada skill tertentu dengan alasan jangkauan atau posisi target, dan makin tinggi ping makin tinggi rasio penolakan
Tidak cocok jika
Alasan penolakan adalah cooldown atau resource dan tidak terkait ping: periksa apakah nilai data (cooldown, biaya) di klien dan server berbeda. Tidak ada penolakan, tetapi animasi baru dimulai setelah respons server: lebih mungkin feedback baru tampil setelah server merespons (model request-response)
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Feedback sisi klien adalah cara terbaik untuk menutupi ping. Namun, makin berbeda informasi yang dipakai klien dan server untuk memutuskan (posisi lawan, sisa resource), makin sering penolakan terjadi. Jika rasio penolakan per skill dikumpulkan sebagai metrik, tempat keputusan yang tidak cocok lebih mudah ditemukan.

Sumber

  1. Using Gameplay Abilities in Unreal Engine Epic Games
    Ability Local Predicted langsung dijalankan di klien, tetapi keputusan akhirnya di server dan server bisa membatalkan hasilnya
  2. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Tembakan senjata diprediksi di klien dan efeknya diputar lebih dulu, lalu kesalahan prediksi dikoreksi dengan hasil server

Lihat juga

Lapisan yang sama: Desain sinkronisasi

Penyebab di lapisan lain dengan gejala yang sama (Aksi hilang / rollback)

Lihat kartu interaktif dengan gambar dan simulasi