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:
- 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)
- 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 ...)
- 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? **
sumber
Jawaban:
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.
sumber
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.
sumber
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.
sumber
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 ...