Jawaban singkatnya adalah Anda tidak bisa melakukannya. Apa pun yang menjalankan sisi klien, terutama dari sumber, dapat dimodifikasi untuk mengalahkan taktik Anda secara sepele. Jika Anda menempatkan pemeriksa sisi klien untuk mencari perubahan mendadak, pengguna hanya dapat menonaktifkan pemeriksa.
Berita baiknya adalah, pada umumnya, ada sedikit kecurangan pada permainan pemain tunggal. Satu-satunya pengecualian utama adalah untuk game yang memiliki komunitas "youtube highscore" besar seperti Line Rider, di mana para pemain saling bersaing melalui YouTube.
Jika Anda bertujuan untuk itu, atau terlalu keras kepala untuk menerima bahwa orang mungkin curang dalam permainan, atau menjaga skor tinggi Anda sendiri (yang merupakan bentuk multiplayer) maka yang harus Anda lakukan adalah semua perhitungan di sisi server . Ya, semua yang penting. Anda bahkan tidak dapat mengulangi sisi perhitungan klien untuk mencoba memberikan skor kepada pengguna dan kemudian 'memverifikasi' dengan server karena pengguna kemudian dapat menonaktifkan centang dan menonaktifkan sistem yang memastikan ada pemeriksaan.
Saya berharap ada jawaban yang lebih baik untuk ini, tetapi tidak ada.
Yang mengatakan, ada hal-hal yang dapat Anda lakukan untuk membuatnya sedikit lebih sulit untuk menipu. Mereka tidak akan menghentikan siapa pun yang serius melakukannya dan melepaskan toolkit untuk menipu, tetapi itu akan memperlambat mereka:
- Perkecil dan Perkecil JS Anda, yang tentunya akan membuat kode lebih sulit dibaca. Anda dapat menghapus dan memilah-milah, tetapi Anda tidak akan pernah bisa mendapatkan kembali variabel dan nama fungsi yang tepat, atau komentar.
- Panggang nilai dengan bahasa yang berbeda. Dalam hal ini Anda dapat menggunakan PHP atau bahasa sisi server lain untuk menangani variabel pengaturan statis. Jika jarak lompatan selalu dianggap 2 spasi, biasanya Anda akan menentukan jarak lompatan untuk objek pemain. Jangan, atasi itu dengan PHP sehingga sumber JS berakhir dengan 2s terpampang di seluruh kode di sejuta tempat. Ini memiliki efek samping tambahan yang menyenangkan karena dapat mempercepat JS Anda juga.
- Dengan beberapa latihan, Anda akan menjadi mahir dengan campuran dan Anda bahkan dapat membuat kustom JS Anda untuk setiap pemain. Yang merupakan cara lain untuk mencegah kecurangan. Jika kode setiap pemain berbeda, maka lebih sulit untuk menulis cheat yang bisa menjadi bagian dari toolkit.
- Akhirnya, Anda dapat memeriksa sumber berdasarkan identitas pemain. Ucapkan alamat IP dan / atau nama pengguna mereka. Anda tahu apa versi JS khusus pemain, Anda dapat membuat checksum dan mengharuskannya sama di ujung yang lain. Mudah dinonaktifkan seperti JS sisi klien, tetapi sekali lagi membuatnya sedikit lebih sulit untuk membuat toolkit.
Begitu. Seperti yang Anda lihat, mungkin tidak layak untuk menempuh rute ini. Itu susah. Membutuhkan banyak praktik pengkodean yang benar-benar konyol untuk dilakukan, dan pada akhirnya masih relatif mudah dikalahkan. Anda harus melakukan semua sisi server perhitungan untuk mencegah kecurangan. Atau lepaskan, dan terimalah kecurangan itu akan terjadi.