Saya mencari untuk membuat penembak top-down multiplayer. Sementara saya sudah membaca tentang berbagai topik, saya bisa melihat mereka. Saya punya beberapa tantangan nyata di depan, tetapi saya siap untuk itu.
Satu hal yang saya tidak mengerti adalah bagaimana saya bisa melindungi permainan dari orang yang mencoba membuat bot?
Apa yang saya maksud adalah, sejauh yang saya mengerti, tidak mungkin untuk melindungi lalu lintas jaringan dengan cara yang pemain tidak akan dapat membuat program yang mendengarkan apa yang terjadi dan memahaminya.
Jadi yang membuat saya khawatir adalah bahwa orang dapat membuat bot yang mendengarkan lokasi pemain saingan saat ini, dan mengirim komunikasi yang meniru seolah-olah pemain menembak di lokasi yang "sempurna" tepat untuk memenangkan pertandingan itu.
Jadi teknik apa yang digunakan untuk melindungi game waktu nyata dari bot seperti itu?
Saya juga ingin menyebutkan bahwa saya telah mencoba mencari diskusi (karena ini terdengar seperti sesuatu yang banyak orang perjuangkan), tetapi tidak dapat menemukan sesuatu tentang hal itu secara khusus, hanya sebagai bagian dari pertanyaan yang lebih luas tentang jaringan dalam permainan waktu nyata . Jika saya seharusnya terlihat lebih keras, jangan ragu untuk menempatkan saya di tempat saya :)
sumber
Jawaban:
Ada dua pendekatan untuk melawan bot. Mereka adalah perlindungan sisi klien dan analisis sisi server.
Perlindungan sisi klien adalah pendekatan yang paling jelas - brute force, dalam arti tertentu. Anda melakukan segala upaya untuk memastikan bahwa klien game sepenuhnya sah, belum dirusak, dan tidak ada program lain yang memengaruhinya. Sekarang ini adalah masalah yang sulit, dan mustahil untuk dipecahkan sepenuhnya. Tetapi banyak permainan yang mencoba, dan sukses dengan metode ini. Saya tahu ada beberapa solusi siap pakai untuk perlindungan klien, dan menyarankan Anda mencarinya. Menerapkannya sendiri adalah tugas yang menakutkan.
Selain kurang efektif 100%, perlindungan sisi klien memiliki kelemahan karena sangat menjengkelkan bagi pemain Anda. Biasanya ini menyiratkan hal-hal seperti menonaktifkan pengalihan tugas alt-tab, program antivirus, dll.
Analisis sisi server kurang mengganggu. Dalam pendekatan ini, Anda memiliki beberapa kode server yang menganalisis pola perilaku pemain. Paling sering, bot bermain berbeda. Sebagai contoh, pemain manusia memiliki waktu yang bervariasi antara aksi (seperti menembak), dan kali ini mematuhi distribusi kurva-lonceng. Bot primitif akan memiliki waktu yang konstan, atau didistribusikan secara merata selama beberapa interval. Fakta menyenangkan: menggunakan metode ini, kami pernah menangkap seorang pemain dengan bot mekanik - perangkat pintar yang menekan tombol pada keyboard fisiknya. Tak perlu dikatakan, tidak jumlah perlindungan klien dapat menangkap bahwa . Meski demikian, analisis ini tidak sempurna. Bot yang lebih maju akan menipu sistem Anda, dan semakin banyak pemeriksaan yang Anda terapkan, bot yang lebih maju akan menjadi.
Untuk perlindungan terbaik, Anda dapat menggabungkan kedua metode ini. Perlindungan klien akan mempersulit pengembangan bot, dan analisis server akan menghentikan bot sederhana yang dikembangkan dengan cepat. Tapi apa pun yang Anda lakukan, Anda tidak pernah dapat menghentikan bot sepenuhnya. Nah, kecuali Anda mengirim perwakilan Anda ke rumah pemain, untuk mengawasi permainan mereka dan melaporkan pelanggaran. (Ngomong-ngomong, yang tidak pernah terdengar sebelumnya. Aku sudah pasti membaca sebuah cerita tentang perusahaan poker online yang mengirim orang ke rumah pemain yang sangat sukses, untuk memastikan dia bermain dengan sah. Tapi sepertinya aku tidak bisa menemukannya sekarang.)
Ada dua rekomendasi yang lebih meragukan untuk memerangi bot. Pertama, enkripsi lalu lintas jaringan Anda. Saya tidak berpikir ini akan berhasil. Dengan klien Anda di tangan musuh, lalu lintas dapat dan akan didekripsi ... atau klien Anda sendiri akan digunakan untuk enkripsi. Di sisi lain, enkripsi menambah lag, dan itu sangat buruk untuk "penembak waktu nyata". Rekomendasi kedua adalah "rancang game Anda dengan ini". Meskipun ini sepertinya ide yang bagus, saya belum pernah melihat satu game pun yang mengelola ini.
sumber
Saya tidak akan mengharapkan pemain besar mana pun untuk berbicara tentang apa yang mereka lakukan untuk melindungi permainan mereka. Semakin sedikit orang yang tahu tentang apa yang mereka lakukan, semakin sulit bagi orang untuk mengatasinya. Saya pikir bagian dari apa yang dilakukan Steam adalah mencari aplikasi tertentu yang sedang berjalan yang ada dalam daftar hitam.
Secara pribadi saya akan mencoba dan mengenkripsi dan mengaburkan komunikasi sebanyak mungkin antara mesin yang berkomunikasi, mungkin ada baiknya membaca tentang cara https / ssl bekerja untuk mendapatkan beberapa ide. Jika host menghasilkan kunci publik / pribadi acak dan hanya mengirim bagian publik ke klien lain maka sesuatu tidak akan dengan mudah dapat mencegat dan mengubah isi paket yang dikirim, walaupun jika Anda memiliki akses ke klien mesin maka tidak ada yang sepenuhnya aman.
Anda juga harus memastikan bahwa exe klien tidak dirusak.
sumber
Rancang permainan Anda sehingga kerja tim dan keputusan cerdas yang sebenarnya lebih penting daripada kemampuan untuk membidik dengan sempurna. Secara eksponensial menjadi lebih sulit untuk membuat bot yang layak.
sumber
Dan tanyakan pada diri Anda semua pertanyaan penting apakah itu sepadan dengan masalahnya. Curang dan pembotolan dapat melakukan 2 hal:
Keduanya tidak saling eksklusif tentunya.
Biasanya kemudian masalah terbesar adalah 3+ (sebagai manusia dapat dengan pelatihan menggunakan 2 keyboard atau perangkat input lainnya pada saat yang sama, tetapi tidak lebih karena ia hanya memiliki 2 tangan) klien dari alamat ip yang sama atau terkait erat (atau MAC alamat) bertindak serempak langsung, menjalankan perintah dalam milidetik satu sama lain. Jadi jika Anda mendeteksi katakan 5 klien yang berasal dari alamat ip yang sama semua memberikan perintah pada tingkat tinggi yang tidak normal dan koordinasi yang tidak normal, Anda kemungkinan telah menemukan botter Anda. Biasanya ini akan sangat merusak dalam skenario pvp di mana tentara bot ini dapat mendominasi pertunangan terhadap jumlah yang sama dari toon yang dikendalikan manusia karena koordinasi dan kecepatan yang lebih tinggi. Dalam skenario pve, biasanya ada kerusakan terbatas pada permainan (kecuali dalam hal itu memungkinkan satu orang untuk melatih beberapa toons ke tingkat tinggi lebih cepat,
sumber