Bagaimana / haruskah MMO menangani pemutusan selama PvP?

20

Dalam MMO (bahkan tidak harus MMORPG) apa sajakah teknik untuk berurusan dengan pemain memutuskan di tengah PvP?

Khususnya - bagaimana Anda menghindari pengaruh buruk terhadap orang-orang yang terputus karena masalah jaringan (atau bahkan kehidupan nyata), sementara tidak berdampak buruk terhadap orang-orang yang melibatkan mereka?

Dan, yang penting, bagaimana Anda memastikan bahwa putuskan hubungan tidak dapat digunakan sebagai metode curang?

Andrew Russell
sumber

Jawaban:

15

Kami mengalami masalah ini dengan beberapa CCG online yang saya kerjakan. Solusi terbaik yang pernah saya lihat:

1) Pemain HARUS terhubung ke server, tidak untuk satu sama lain secara langsung, dan Anda TIDAK PERNAH harus menyampaikan alamat IP lawan di data yang Anda streaming ke pemain. Ini mencegah serangan denial-of-service di mana pemain memaksa lawan mereka offline untuk menang.

2) Koneksi terputus = Anda kalah, lawan menang. Kita harus berasumsi bahwa jika Anda menjatuhkan, itu adalah penurunan untuk menghindari kerugian tertentu.

3) Putus mencoba untuk menyambung kembali untuk jangka waktu tertentu, sehingga sedikit cegukan bersih tidak memaksa Anda untuk kehilangan bukan karena kesalahan Anda sendiri. Idealnya, waktu yang cukup lama untuk memungkinkan seseorang untuk menyambung kembali jika mereka secara tidak sengaja menendang kabel, tetapi cukup singkat sehingga lawan tidak frustrasi dan tertidur sambil menunggu. Saya pikir kami menemukan sekitar 45 hingga 60 detik terasa benar.

4) Mengizinkan pemain untuk melaporkan lawan mereka. Ini adalah langkah penting untuk mencegah siapa pun menemukan cara menjengkelkan di sekitar kebijakan Anda. Seperti, mungkin menjadi sangat kasar secara verbal sehingga lawan turun hanya untuk keluar dari sana, atau terus-menerus memutuskan dan menghubungkan kembali untuk meregangkan panjang permainan, atau menghalangi tembok untuk menghindari kerugian, atau apa pun. Anda tidak bisa menghentikan SEMUA perilaku buruk, tetapi Anda bisa memasukkan mekanisme dalam game untuk melaporkannya, dan kemudian membiarkan departemen dukungan pelanggan Anda menangani sisanya.

Ian Schreiber
sumber
13

MMORPG RuneScape yang populer menggunakan timer 1 menit. Ketika Anda memutuskan sambungan, karakter Anda tetap di dunia selama satu menit penuh, rentan terhadap serangan dan apa yang tidak.

Xeon06
sumber
1
Sama untuk DAoC. Ini berfungsi dengan baik, karena jika Anda tidak melakukan ini, orang dapat memutuskan untuk menghindari perkelahian. Dulu ada perintah "Quit To Desktop" / qtd di DAoC yang membuat orang berhenti secara instan, dan itu dihapus karena ini.
Ólafur Waage
8

Saya harus mengatasi masalah ini sekali dalam permainan balap online di mana pemain yang kalah sering mematikan konsol mereka untuk menghindari kerugian yang muncul pada catatan mereka. Namun itu berlaku sangat baik untuk situasi PvP apa pun.

Solusi saya berjalan seperti ini:

  1. Di awal pertandingan, setelah semua pemain bergabung dan bermain akan dimulai, hitung apa hasilnya jika pemain kita kalah dalam pertandingan. Dalam permainan balap kami, 'hilang' berarti 'datang di tempat terakhir' dan hasil yang biasa adalah 'minus N poin dari peringkat pemain'.

  2. Simpan hasilnya ke lokasi yang aman (Savegame, leaderboard, area data online, dll).

  3. Bersamaan dengan hasilnya, simpan bendera 'GameStarted'. Ini hanya menandakan bahwa permainan telah dimulai. Kami akan membutuhkannya nanti.

  4. Saat permainan selesai, hitung hasil aktual dan terapkan pada skor / statistik pemain. Batalkan flag 'GameStarted'. Ini adalah proses penyelesaian game yang normal.

  5. Namun, jika pemain memutus, menarik kabelnya atau mati, akhirnya mereka akan kembali ke menu permainan. Dalam kode menu, kami melakukan pemeriksaan untuk bendera 'GameStarted'. Jika diatur, kami yakin bahwa kami telah mendeteksi pemutusan dalam game dari sebelumnya. Kami kemudian dapat menerapkan hasil yang disimpan ke skor / statistik pemain. Itu akan sama seperti jika pemain kalah. Ini juga merupakan ide yang baik untuk memasang peringatan memberitahukan pemain tentang apa yang terjadi. Kemudian, begitu dia melihat bahwa ada konsekuensi untuk memutuskan sambungan tengah pertandingan, Anda akan melihat bahwa perilaku mulai berubah.

JanSolo
sumber
Itu cukup licik. Jelas itu tidak dapat diterapkan dengan sama baiknya untuk semua jenis game tetapi konsep menghitung konsekuensi potensial di muka adalah bagus.
Kylotan
1
Cukup keras untuk pemutusan yang tidak disengaja, meskipun, bisa menggunakan solusi di bidang itu.
Kzqai
5

Saya pikir satu-satunya cara untuk melakukan ini adalah masalah struktur permainan Anda. Ada dua cara untuk membuat kecurangan menjadi kurang diinginkan: hukuman atau hadiah. Jadi jika Anda tidak ingin hukuman yang merugikan pikirkan cara untuk memberi penghargaan kepada pemain yang tidak jatuh.

Alih-alih hadiah dari PvP menjadi jarahan dari tubuh yang ditaklukkan (yang membuat menjatuhkan hal yang sangat buruk) membuat menang memberikan beberapa hadiah seperti exp., Emas, atau yang lainnya sama sekali (Poin? Peringkat?). Jika salah satu pemain ditendang maka pemain yang tersisa menerima hadiah dan pemain yang ditendang tidak mendapatkan apa-apa selain tidak kehilangan apa pun. Kecuali itu adalah sistem peringkat dalam hal pemain meninggalkan mungkin kehilangan beberapa poin peringkat.

Bob
sumber
Itu analisis yang unik, saya suka.
Kzqai
Ini bisa dimanfaatkan oleh dua pemain yang saling kenal. Mereka dapat mengulangi ini sesering mungkin, karena yang kalah tidak mendapat hukuman.
unor
5

Lineage II melakukannya seperti ini:

  • Anda tidak dapat keluar dari gim klien selama pertarungan - pertarungan apa pun dimulai, tidak masalah jika Anda menyerang, diserang atau menyembuhkan rekan setim yang sedang bertarung dan Anda berada dalam "posisi bertarung", yang berlangsung selama 15 detik setelah tindakan terakhir seperti itu dibuat.
  • Jika Anda tetap memutuskan koneksi atau game Anda crash, karakter Anda tetap berada di dalam game selama 15 detik sebelum menghilang. Bahkan terus menyerang otomatis apa pun yang diserang, tetapi tidak menggunakan keterampilan - sama seperti jika Anda menggunakan AFK.
  • Namun, ada cara untuk memutuskan koneksi secara instan, dengan menghubungkan kembali ke akun yang sama dengan klien lain. Ini dianggap sebagai kecurangan batas oleh komunitas ketika dilakukan di PvP, dan beberapa alat curang memiliki opsi untuk menggunakannya juga, jadi itu tidak banyak digunakan di sana. Namun ketika menggigit terlalu banyak untuk dikunyah di PvE, beberapa orang masih menggunakan trik ini untuk menghindari kematian yang tidak perlu (meskipun ada item dalam gim yang memungkinkan hampir sama, yaitu "gulungan lolos yang diberkati").
  • Menghubungkan kembali ke zona bertanda PvP (kastil tanah selama pengepungan, misalnya) dan beberapa area bos epik non-instanc tertentu memindahkan karakter ke kota terdekat (zona aman) sebagai gantinya. Dengan demikian, memutuskan hubungan di sana untuk menghindari "kekalahan" membawa penalti untuk tim Anda, yang berarti sangat tidak disarankan oleh norma-norma sosial permainan.

Secara pribadi, saya akan melakukannya dengan cara yang sama, hanya memungkinkan para pemain untuk menentukan terlebih dahulu tindakan yang diambil oleh karakter mereka (tinggal dan bertempur, lari ke zona aman terdekat menghindari aggro, gunakan gulir pelarian reguler, gunakan gulir diberkati dari melarikan diri, ...) dan biarkan karakter tetap ada di dunia game bahkan jika pemain tidak login.

Martin Sojka
sumber
Bagus! Saya suka itu! :)
Klik Ok
3

Orang yang terputus akan mati begitu dia ditikam cukup, dan yang lain akan dikreditkan untuk pembunuhan itu. Apa pun yang lebih lunak akan dieksploitasi.

Umumnya ada timer 1 hingga 5 menit sebelum tubuh Anda meninggalkan dunia.

ZorbaTHut
sumber
3

Tidak ada cara untuk menentukan apa yang menyebabkan pemutusan (apakah daya padam? Apakah saya marah melemparkan mesin ke dinding?), Jadi Anda hanya dapat berasumsi bahwa pengguna mencoba (atau akan mencoba) untuk menipu dan membuatnya rentan selama X menit.

Bryan Denny
sumber
3

Cara ini ditangani oleh EVE Online adalah sebagai berikut:

  • Kapal mulai menggunakan warp 15 detik setelah terputus. Jika lungsin diaduk maka kapal tidak akan melengkung. (Kapal karakter Anda akan mulai "lari" setelah 15 detik, kecuali jika "terperangkap" oleh pemain lain)

  • Pengatur waktu PVT (waktu hingga pemain "kabur" saat terlibat dalam pertarungan PvP) diatur ke 3 menit. (Ini untuk melawan sejumlah timer lainnya).

  • Pengatur waktu NPC tetap pada 1 menit, tetapi pengiriman lenyap setelah 15 detik kecuali jika warp diacak oleh NPC.

  • Ketika sebuah kapal target dikunci oleh pemain, ia harus beralih ke timer pvp (untuk mengatasinya menggunakan timer 1 menit jika itu terputus dalam keadaan di mana ia tidak dapat ditargetkan sampai timer diatur).

Sean James
sumber
2

Jika Anda memiliki cara memodelkan pola pemain yang biasa dalam pertempuran, Anda bisa mengirim mereka ke mode AI sampai mereka terhubung kembali atau pertempuran berakhir mana yang lebih dulu. Tapi jangan berikan mereka hadiah (exp, item, dll.) Untuk pertempuran kecuali jika mereka kembali dalam jumlah waktu X.

lathomas64
sumber
0

Saya akan menerapkan semacam histeresis. Anda bisa menggunakan wortel dan tongkat. Tetapi memilih yang akan digunakan dapat didasarkan pada rekam jejak (Anda juga bisa melakukan analisis koneksi dan "kemampuan menang" saat ini dan menggunakannya.). Semoga Anda melakukannya sendiri. Model sederhana:

  • Jika saya "buruk" dan saya DC saya mendapatkan tongkat. Saya sekarang lebih buruk.
  • Jika saya "buruk" dan saya selesai saya tidak mendapatkan tongkat tetapi saya juga tidak mendapatkan hadiah. Saya sekarang lebih dekat untuk menjadi baik.
  • Jika saya "baik" dan saya DC saya tidak mendapatkan tongkat tetapi saya juga tidak mendapatkan hadiah. Sekarang saya lebih dekat menjadi buruk.
  • Jika saya baik dan lengkap saya mendapat hadiah. Saya sekarang lebih baik.

Anda bisa menyalahgunakannya ya. Tetapi melakukan hal itu mungkin membutuhkan lebih banyak upaya daripada sekadar menggigit peluru. (Jika butuh 2 DC menjadi buruk misalnya Anda secara teknis bisa menghilangkan setengah dari kerugian Anda. Tapi itu mengurangi beberapa penyalahgunaan dan dalam kasus pemain kurang pintar semua penyalahgunaan).

Memang menggunakan ini berarti scoreboards tidak akan berjumlah 100%. Karena Anda bisa DC sambil baik dan tidak mencatat kerugian. Tapi pemain bagus lainnya bisa mencatat kemenangan. Juga tidak menjumlahkan 100% berarti 2 pemain dapat bekerja sama mematikan pemain DC untuk menumpuk kemenangan.

Jadi bukan sangat mudah, tetapi menambahkan analisis Bayesian tentang koneksi gamestate + mungkin bisa mendeteksi keasyikan dan membuat skema ini antipeluru. (Anda dapat mengalahkan analisis Bayesian tetapi manusia tidak pandai melakukan hal ini dan matematika tidak terjangkau bagi kebanyakan orang, belum lagi investasi waktu untuk "memulai" perjuangan untuk melewati DC yang baik-baik saja).

Hitam
sumber
Hmmm. Saya dapat melihat satu masalah yang tidak dapat diperbaiki ... Jika kemenangan "buruk" mungkin mengeluh tentang tidak mendapatkan "kemenangan" mereka kecuali Anda membuat skema didokumentasikan secara sangat terbuka. Yang tentu saja mengundang campur tangan. Solusi yang mungkin: Sembunyikan hadiah sampai akhir "musim" yang setidaknya mengkonsolidasikan masalah ... tetapi dapat menyebabkan pemain "buruk" jatuh dari "investasi" waktu terbuang. Menang-menang?
Hitam