Trik dalam mekanika game untuk menghindari berurusan dengan kompensasi lag jaringan?

20

Mengimplementasikan kompensasi lag jaringan sulit, bagaimana cara menghindarinya?

Mungkin mungkin untuk menggunakan trik dan membangun mekanisme permainan sedemikian rupa sehingga kelambatan akan dianggap sebagai tidak kritis atau bahkan sebagai bagian alami dari permainan?

Apa itu teknik dan apakah ada game yang ada (MMORPG, Strategi, ...) yang menggunakan teknik seperti itu?

MEMPERBARUI:

Permainan berbasis giliran tidak memerlukan kompensasi jeda, tetapi akan menarik untuk melihat pendekatan waktu nyata (atau hanya kesan waktu nyata, bagian penting - pengguna tidak boleh diblokir dan dipaksa menunggu).

Alasan utama saya untuk menghindari kompensasi keterlambatan adalah kesederhanaan.

Alexey Petrushin
sumber
1
Tautan ini dapat membantu: developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
John McDonald
6
Jika Anda ingin membuat game yang latensinya tidak bermasalah; pertimbangkan membangun sesuatu yang berbasis giliran di mana beberapa detik dapat diterima.
Vaughan Hilts
3
Link Valve itu adalah semua tentang cara-cara yang cukup rumit di mana kompensasi keterlambatan jaringan diimplementasikan - jadi, itu kebalikan dari pertanyaan yang ditanyakan.
Kylotan
@JohnMcDonald Yep, saya tahu tentang artikel itu dari Valve, dan seperti yang disebutkan - ini kebalikan dari apa yang saya tanyakan :).
Alexey Petrushin
Anda mungkin ingin melihat GGPO juga: ggpo.net
Decency

Jawaban:

16

Adalah umum bagi klien untuk menerapkan semacam umpan balik agar pemain segera mengetahui bahwa tindakan yang mereka pilih telah didaftarkan, misalnya .:

  • suara antarmuka (mis. klik tombol)
  • in-world sound (mis. karakter yang mengatakan, "Sekaligus, komandan")
  • animasi (mis. mulai mengayunkan pedang)

Ini dapat terjadi ketika informasi sedang bepergian ke server sehingga pemain tidak menyadari bahwa tindakan mereka belum dimulai. Selama server membalas dengan segera dan tindakan tidak segera dimulai, pemain mungkin tidak melihat penundaan.

Trik ini berfungsi dalam permainan di mana input pemain cukup jarang dan oleh karena itu jumlah waktu yang Anda habiskan untuk menunggu input berlaku adalah proporsi yang relatif kecil dari total waktu yang dihabiskan untuk bermain. Oleh karena itu, Anda ingin mencari cara untuk menyusun permainan agar pemain membuat input lebih sedikit. Ini mungkin berarti membuat tindakan pemain lebih abstrak dan membuat permainan menerapkan perilaku tingkat rendah. Contoh:

  • ganti mekanik kemudi dengan mekanisme lintasan
  • ganti mekanik bertujuan dengan mekanik pemilihan target
  • ganti instruksi tempur putaran demi putaran dengan rencana yang lebih taktis atau strategis
  • ganti gameplay waktu nyata / berkelanjutan dengan sistem diskrit / berbasis giliran
Kylotan
sumber
1
Terima kasih, Anda memformalkan apa yang saya tanyakan - gunakan input pemain yang jarang dan ditangguhkan. Akan menarik untuk melihat game sebenarnya yang menggunakannya.
Alexey Petrushin
2
Ratusan game menggunakan hal-hal seperti ini dalam beberapa cara, tetapi kemungkinan besar itu dilakukan karena alasan lain dengan menyembunyikan efek samping yang menguntungkan.
Kylotan
7

Pikiran acak:

  1. cheat: gunakan roket . Roket meledak dalam radius, menyembunyikan segala keanehan.
  2. Cheat: menentukan sebelumnya hasil dan memaksa kondisi terjadi secara visual
  3. Cheat: serangan membutuhkan waktu , sembunyikan latensi pada disk ATK + anim + hasil
  4. Cheat: lepaskan umpan balik lokal dari hal-hal jaringan
  5. cheat: banyak VFX atau aktivitas layar yang mencakup keanehan.
  6. menggunakan desain aksi-reaksi yang membutuhkan resolusi sebelum melanjutkan

Jadi ya, banyak menipu.

Patrick Hughes
sumber
4

Jawabannya cukup sederhana - cukup buat game yang tidak memiliki bagian waktu yang kritis. Anda ingin menghindari penerapan jenis interpolasi ini karena alasan tertentu, saya mengambilnya, yang berarti Anda tidak khawatir dengan gameplay yang cepat dan cepat. Ini sangat cocok untuk banyak game, termasuk Civilization (yang merupakan game strategi). Namun, pahamilah ini TIDAK dapat diterima untuk permainan strategi REAL TIME di mana Anda harus melewati banyak data melalui jaringan pada waktu yang bervariasi. Jika Anda ingin merancang game di sekitar jaringan latensi sangat tinggi, pertimbangkan hal berikut:

  1. Bangun game berbasis giliran. Dalam jenis permainan ini, input waktu-nyata dari negara tidak diperlukan dan pemain lain dapat dengan mudah mendorong keadaan permainan ke klien mereka ketika giliran mereka. Ini mengurangi tekanan pada jaringan dan memungkinkan penundaan hingga beberapa detik jika diinginkan. Peradaban adalah permainan berbasis giliran yang sangat populer, dan dalam nada strategi.
  2. Usahakan agar dampak keputusan pemain lain sesedikit mungkin. Jika gim Anda strategis dan tidak bisa dimainkan berdasarkan giliran, pertimbangkan untuk mengurangi dampak paket yang tertunda. Bisakah klien melakukan sebagian besar simulasi? Contohnya adalah permainan strategi yang dimainkan sendiri untuk sementara waktu dan kemudian setelah mengatakan, 16 menit, disimulasikan terhadap pemain lain (mungkin permainan pertempuran di mana pemain mengirim pasukan setiap interval x dan melaporkan kembali setiap interval y.

Saya harap ini membantu setidaknya sedikit; tanpa mengetahui ide permainan Anda yang sebenarnya, itu sulit. Saya berasumsi Anda memiliki alasan untuk ingin membuat game Anda di sekitar pola seperti itu (kesederhanaan, menghemat bandwidth, mengurangi kompleksitas jaringan)

Vaughan Hilts
sumber
4

Anda juga bisa menjadikan lag sebagai bagian dari gameplay Anda demi "realisme". Katakanlah pemain Anda dimaksudkan untuk mengendalikan beberapa robot dari jarak jauh, Anda bisa memaksa lag setidaknya 500ms atau 1s (Anda harus menerapkan beberapa sistem padding dinamis).

Arkh
sumber
Ini adalah twist yang bagus
o0 '.
0

Ini juga merupakan trik yang bagus untuk menyembunyikan tindakan para pemain. Banyak game FPS melakukan ini. Mereka tidak menunjukkan visual dari sebagian besar peluru hanya suara yang dimainkan dan Anda mendapatkan hasil dalam bentuk kerusakan yang diberikan kepada pemain.

Saya telah memainkan beberapa game FPS di mana senjata dengan akurasi tinggi (penembak jitu dan semacamnya) memiliki efek visual yang sangat jelas, dan Anda benar-benar dapat melihat bahwa pemain lain menembak di belakang Anda, tetapi karena kompensasi lag Anda terbunuh.

VSZM
sumber