Cara melindungi penembak online real time Anda dari bot potensial

14

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 :)

Bahasa Jerman Zaky
sumber
Punkbuster, hehe .. Ada alasan ada aplikasi pihak ketiga yang mendeteksi aplikasi dan perubahan pihak ketiga :)
James
Mengapa Anda khawatir jika orang membuat bot? Mungkin Anda bisa mengatasinya, jadi itu tidak masalah.
Beska
@ James Punkbuster mengerikan. Saya banyak orang lain memiliki pengalaman buruk mencoba bermain game baru ketika mereka keluar. Terus-menerus ditendang karena kesalahan punkbuster, tidak menyenangkan.
AttackingHobo
@Beska: sekeren itu kedengarannya saya perlu beberapa meyakinkan serius bahwa bot tidak akan menghancurkan permainan untuk pemain non-bot. Saya yakin sebuah game dapat dirancang di mana bot tidak akan merusak pengalaman. Saya cukup yakin bahwa untuk sebagian besar game multipemain daring, bukan hal sepele untuk membuat mekanik gim bot menjadi bukti.
deft_code
@AttackingHobo Yang ingin saya tunjukkan adalah bahwa ada seluruh perusahaan yang tidak melakukan apa-apa selain berusaha mencari solusi untuk masalah ini. PunkBuster hanyalah salah satu perangkat lunak yang lebih dikenal yang berusaha melakukan ini, baik atau buruk :)
James

Jawaban:

8

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.

Lupakan
sumber
1
Saya ragu Anda menemukan seorang pria dengan bot mekanik. Itu lebih cenderung bot perangkat lunak yang meniru keyboard perangkat keras untuk input.
AttackingHobo
2
Tidak, bot mekanik aktual. Penulis mengirimi kami gambar. Sayangnya, mereka sudah dihapus dari server (itu kembali pada tahun 2007!), Jadi Anda harus mengambil kata saya untuk itu.
Nevermind
terima kasih atas tanggapannya. Saya kira enkripsi bisa "meningkatkan bar" sedikit dan melindungi dari banyak peretas. Tetapi apakah enkripsi komunikasi nyata akan praktis dalam permainan yang sangat penting waktu seperti penembak, atau bahkan MMO?
Zaky German
Tidak ada game yang saya kerjakan pada enkripsi yang digunakan di mana saja kecuali urutan login, jadi saya tidak tahu seberapa besar pengaruhnya terhadap lag. Tergantung pada algoritma enkripsi, saya kira.
Nevermind
2

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.

Roger Perkins
sumber
1

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.

Tom Gullen
sumber
Saya pikir game yang bergantung pada kerja tim dan persiapan, dan game yang bergantung pada keterampilan kedutan murni ada di tempatnya. Tetap saya tidak berpikir ada orang yang harus menyesuaikan pilihan desain game mereka dengan kendala teknis
Zaky German
@ Zaky: Saya pernah membuat prototipe game bergaya cacing di mana saat mati mendadak layar akan perlahan terisi dengan cairan SPH. Itu terlihat sangat keren sampai permainan tertinggal sampai mati. Saya pikir banyak keputusan desain game dipengaruhi oleh kendala teknis.
deft_code
@deft_code Maksud saya desain game seperti dalam mekanika gameplay, bukan desain artistik atau grafis
Zaky German
Saya menggunakan SPH sama seperti mekanik game seperti kematian berair di cacing. Saya hanya mengubah cara air berinteraksi dengan permainan.
deft_code
0

Dan tanyakan pada diri Anda semua pertanyaan penting apakah itu sepadan dengan masalahnya. Curang dan pembotolan dapat melakukan 2 hal:

  1. hancurkan game untuk diri mereka sendiri. Mereka tidak bisa bermain tanpa bot, mereka dengan cepat kehilangan minat dan pergi karena itu tidak menyenangkan.
  2. hancurkan game untuk orang lain. Mereka menjadi sangat kuat melalui bot mereka, sehingga merugikan pelanggan Anda. Ini biasanya disertai oleh pemain tunggal yang mengendalikan banyak bot dari komputer fisik yang sama (atau menggunakan komputer yang jauh lebih banyak daripada yang bisa dikendalikan oleh pemain tunggal secara manual).

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,

jwenting
sumber