Anti-Cheat untuk masalah dan solusi MMO? [Tutup]

14

Sebagian besar game online menderita karena masalah ini dan ada beberapa perusahaan perangkat lunak di luar sana untuk membahas hal ini tetapi baru-baru ini dari apa yang saya lihat kebanyakan perusahaan berusaha untuk menghindari program-program yang menciptakan sistem mereka sendiri (badai salju dengan sipir, aion dengan pengecekan mereka sendiri, dll. ...) tetapi ini adalah kasus yang sangat sulit untuk mencegah ...

Hanya ingin mengatakan saya membuat topik pertanyaan lain sebagai komunitas wiki khusus untuk memposting aplikasi dan itu adalah fitur dan ide-ide di balik pertanyaan ini di sini bukan untuk mencantumkan itu tetapi untuk mengetahui lebih banyak tentang apa upaya Anda, masalah di sepanjang jalan dan kemungkinan solusi , sepotong kode jika aplikasi dan sebagainya.

Perlindungan seperti apa yang kalian gunakan untuk (mencoba) mencegah tindakan seperti itu:

  1. Perangkat Lunak Anti-Cheat? (sebutkan mana, mengapa dan kemungkinan masalah yang Anda hadapi, misalnya aion berhenti menggunakan GameGuard pada tahap beta karena sejumlah besar masalah kompatibilitas dan keluhan dari penggunanya)
  2. Kode Anda sendiri? (verifikasi seperti apa yang biasanya Anda jalankan untuk memastikan para pemain yang beritikad buruk, misalnya speedhack, verifikasi lokasi baru terhadap kecepatan + lokasi terakhir, dll ...)
  3. Tidak ada, saya tidak peduli? (ada alasan atau masukan pribadi yang ingin Anda bagikan?)

Adakah potongan kode menarik yang terkait dengan masalah yang ingin Anda kirim?

Merasa bebas untuk memperbaiki teks saya inst bahasa Inggris saya yang hebat? **

Prix
sumber
1
Tag dibuat. Jika Anda mengharapkan ini memiliki sejumlah besar jawaban, harap jadikan komunitas wiki. Ini akan memungkinkan banyak orang untuk mengedit jawaban individual alih-alih orang-orang terus menyatakannya.
Jesse Dorsey
1
Sebagai contoh bagaimana ini bisa bermanfaat. Lihat ini: gamedev.stackexchange.com/questions/480/…
Jesse Dorsey
Terima kasih atas komentar dan tautannya, saya akan memeriksanya sekarang dan melihat, dalam pandangan saya, pertanyaan semacam ini untuk pengembangan game adalah poin yang sangat baik untuk dibahas tetapi sebagian besar untuk game MMO saya percaya jadi saya tidak yakin, juga komunitas cukup kecil di momment dan saya takut dinegosiasikan untuk pertanyaan seperti itu untuk memulai jadi saya tidak yakin, terima kasih telah membuat tag :)
Prix

Jawaban:

22

Sayangnya sangat sulit untuk menghentikan orang dari kecurangan, itulah sebabnya perangkat lunak seperti Punkbuster dibuat untuk mencoba menangkap beberapa dari mereka.

Untuk MMO, hal terbesar yang dapat Anda lakukan adalah tidak mempercayai apa pun yang dikirim klien kepada Anda . Klien seharusnya tidak dapat memberi tahu Anda di mana pemain telah pindah, berapa banyak kerusakan yang telah mereka hadapi kepada siapa, dll. Sebaliknya, Anda harus mengirim input kontrol ke server, memvalidasi bahwa itu praktis (menekan tombol "serangan" 1000 kali dalam 1 detik, misalnya, tidak valid), lalu perbarui simulasi di server. Anda kemudian akan mengirim bagian-bagian yang relevan dari keadaan permainan yang baru kembali ke klien.

Saat Anda memvalidasi input pengguna, juga dimungkinkan untuk mencari tren dalam input mereka. Jika Anda tidak mengizinkan makro, Anda bisa menangkapnya di sini dengan memperhatikan bahwa pengguna telah mengklik tombol yang sama pada koordinat piksel yang sama persis dalam interval 1 detik yang sempurna selama 30 menit terakhir.

Klien itu sendiri adalah tempat utama orang bisa berbuat curang, sehingga program seperti Punkbuster dapat mengurangi wallhacks, aimbots, dll. Selain itu, tidak mempercayai klien dan memvalidasi apa pun yang dikirim kepada Anda oleh klien akan membantu mengurangi kecurangan.

Sean James
sumber
Terima kasih atas kontribusi Anda, saya berharap dapat melihat lebih banyak orang melakukan input mereka; Memang ini adalah masalah yang sangat sulit untuk dilawan ... Ada juga orang-orang yang menindak permainan untuk menonaktifkan mesin anti-cheat dan itu adalah panggilan dari itu ... yang membuat segalanya lebih sulit ... kecuali Anda memiliki online GM untuk memverifikasi verifikasi orang atau orang lain yang diberikan seperti yang Anda nyatakan. apa yang akan Anda pikirkan sebagai pertanyaan untuk wiki komunitas ini? haruskah saya menyimpan apa adanya atau mengubah sesuatu agar cocok dengannya;
Prix
Mungkin wiki komunitas kecuali jika Anda mencari jawaban tertentu.
Sean James
Adakah lebih banyak detail tentang bagaimana Punkbuster bekerja untuk jawaban yang lebih lengkap?
Chris Lloyd 3-10
Jawaban yang bagus - tidak ada 'satu solusi untuk mengatur semuanya' - sebagian besar game memiliki beberapa 'vektor serangan'. Seringkali ini tentang penilaian risiko lebih dari apa pun yaitu apa dampaknya pada komunitas jika seseorang dapat menipu sistem X dll
zebrabox
Saya percaya peretasan tidak bisa dihindari, bahkan memiliki program cheat-an terkuat. Menyontek tidak apa-apa jika offline secara teknis tetapi tidak online. Bermain online lebih pada keadilan. Apakah begitu?
David Dimalanta
8

Penebangan. Segala sesuatu yang terjadi di server harus dicatat, dan idealnya segala sesuatu yang berasal dari klien. Klien secara inheren tidak dapat dipercaya, tetapi bahkan pencatatan data yang tidak dipercaya dapat mencerahkan.

Setelah semuanya dicatat, deteksi cheat menjadi masalah menganalisis data. Beberapa cheat akan terlihat jelas (nilai di luar rentang yang dapat diterima, misalnya mampu bergerak di antara titik yang jauh lebih cepat daripada yang dibolehkan oleh avatar), yang lain lebih berbahaya (seperti aimbot yang memungkinkan penargetan piksel sempurna dalam jangka waktu artifisial pendek). Beberapa bahkan lebih sulit untuk dideteksi (seperti wallhacks), tetapi merekam sebanyak mungkin memungkinkan deteksi otomatis dan manual. Ada berbagai artikel di dalamnya, tetapi umumnya curang sangat mudah terlihat dalam deteksi otomatis karena sangat mudah diprediksi / diulang, persis seperti yang dilakukan oleh pemain manusia.

Karena merekam sepenuhnya semuanya kemungkinan besar tidak mungkin dilakukan, pencatatan berjenjang berguna. Misalnya laporan kecurangan oleh pengguna, atau pencatatan dasar sederhana yang mendeteksi kemungkinan kecurangan (skor yang jauh di atas kurva statistik), akan cukup untuk menandai klien / akun / kunci CD tertentu untuk penebangan verbose lebih lanjut, yang dapat kemudian digunakan untuk membuktikan tanpa keraguan bahwa cheat sedang digunakan.

Apa yang Anda lakukan saat mendeteksi cheat adalah masalah lain sepenuhnya. Larangan akun setelah faktanya baik, terutama ketika Anda memiliki mekanisme deteksi otomatis yang cukup andal. Pelarangan lebih awal memberi peringatan bahwa mereka terdeteksi, dan juga berisiko positif palsu karena mekanisme deteksi yang tidak meyakinkan. Larangan terlalu lama berisiko merusak pengalaman game bagi orang lain. Ini adalah area yang sangat abu-abu, dan mengharuskan pengembang untuk membuat penilaian.

MrCranky
sumber
2

Dengan asumsi semua pekerjaan penting dalam gim Anda terjadi di sisi server, seharusnya ada sedikit atau tidak ada kecurangan yang mungkin terjadi. Jika Anda ingin membatasi pembuatan makro atau membuatnya menjengkelkan bagi orang untuk mengedit paket, buat program Anda secara berkala memindai modul-modul yang aktif dalam prosesnya. Jika Anda menemukan misalnya WpeSpy.dll, Anda akan tahu bahwa mereka telah memasang WPE. Lakukan untuk alat umum lainnya. Ini bisa diatasi, dan merupakan perlombaan senjata dan penyebab yang hilang, tetapi jika gim Anda relatif kecil, Anda dapat dengan mudah memotong jumlah orang yang bermain-main dengan faktor sepuluh ... dan itu mungkin bagus cukup untukmu.

James Bellinger
sumber
Terima kasih atas kontribusinya, apakah Anda menggunakan perangkat lunak anti-cheat atau memiliki masalah seperti ini yang harus Anda tangani? jika demikian akan menyenangkan mendengarnya.
Prix
2
Saya belum pernah menggunakan perangkat lunak anti-cheat pihak ketiga, tidak. Namun, ketika saya mulai mengkode RPG online, server saya baru saja memanggil 'serang' ketika klien mengirim 'serang', alih-alih memasukkan permintaan ke dalam antrian, hal-hal seperti itu. Itu yang paling penting untuk mencegah kecurangan. Peretasan kecepatan, lakukan semua penghitungan waktu di server sehingga mereka mendapat sedikit keuntungan, tetapi juga mengirim stempel waktu, dan jika Anda mendapatkan terlalu banyak penyimpangan, Anda akan tahu mereka menggunakannya. Tandai akun mereka, tetapi jangan langsung menendang mereka - umpan balik langsung adalah cara yang bagus bagi seseorang untuk mengetahui apa yang dideteksi perangkat lunak Anda.
James Bellinger
1
Saya suka bagian but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.ini yang baru-baru ini saya lihat menerapkan cap waktu dan sistem peringatan dari pengguna yang ditandai, saat ini apa yang telah saya masukkan pada pemain apa yang saya kerjakan sekarang adalah bahwa jika beberapa memiliki penggunaan penyalahgunaan tinggi itu akan mengirimkan peringatan kepada GM online untuk verifikasi ...
Prix