Keputusan desain dasar dapat berfungsi sebagai langkah "pertama" untuk langkah keamanan yang mencegah eksploitasi. Prinsip intinya adalah merancang sistem di mana kecurangan baik tidak mungkin dilakukan atau memberikan keuntungan yang tidak berarti, daripada mencoba mendeteksi dan mencegah kecurangan setelah kenyataan.
Pertimbangkan permainan tembak-menembak di mana pemain mendapatkan poin untuk setiap pembunuhan. Seorang pengeksploitasi mungkin menciptakan bot yang teleportasi ke lokasi yang sama untuk dibunuh berulang kali demi poin yang mudah. Skenario ini menggambarkan perbedaan antara pendekatan reaktif dan defensif:
| Pendekatan | Hasil yang dapat diprediksi |
|---|---|
| Menangkap bot dengan menulis kode yang mencoba mendeteksi mereka (pendekatan reaktif). | |
| Mengurangi atau menghapus sepenuhnya pendapatan poin untuk pembunuhan pada pemain yang baru muncul (pendekatan defensif). |
Skenario desain defensif tambahan:
| Skenario eksploitasi potensial | Pendekatan Reaktif (kurang efektif) | Pendekatan Defensif (lebih efektif) |
|---|---|---|
| (Obby) Pengeksploitasi teleportasi ke akhir untuk mengklaim hadiah | Hanya memeriksa posisi akhir pemain dan mencoba mendeteksi waktu penyelesaian yang tidak mungkin | Rancang dengan checkpoint yang wajib dan berurutan. Server memvalidasi setiap checkpoint diaktifkan sesuai urutan sebelum memberikan hadiah. Anda dapat menambahkan lapisan lain dengan menandai pemain yang menyelesaikan fase lebih cepat dari yang mungkin dilakukan manusia. Desain pengalaman (yang memerlukan checkpoint) adalah yang memungkinkan validasi sisi server yang efektif. |
| (Pertarungan) Klien melaporkan memberikan jumlah kerusakan yang tidak mungkin | Mencoba mendeteksi dan menyaring nilai kerusakan yang tidak mungkin | Server menghitung semua kerusakan dari statistik senjata sisi server dan memvalidasi pukulan melalui raycasting sisi server |
| (Ekonomi) Pengeksploitasi menduplikasi item melalui permintaan cepat | Mencoba mendeteksi permintaan duplikat atau pola yang tidak biasa | Menerapkan cooldown sisi server dan memvalidasi semua transaksi terhadap keadaan inventaris pemain saat ini |