Kısa cevap, yapamayacağınız. Müşteri tarafından çalışan, özellikle kaynaktan çalışan herhangi bir şey, taktiklerinizi önemsiz bir şekilde yenmek için değiştirilebilir. Ani değişiklikleri aramak için bir müşteri tarafı denetleyicisi yerleştirirseniz, kullanıcı denetleyiciyi devre dışı bırakabilir.
İyi haber şu ki, tek oyunculu oyunlarda genellikle çok az hile yapıyor. Tek büyük istisna, oyuncuların YouTube üzerinden birbirleriyle rekabet ettiği Line Rider gibi büyük "youtube yüksek puanlı" toplulukları olan oyunlar.
Bunu hedefliyorsanız veya insanların oyunda hile yapabileceklerini kabul edemeyecek kadar inatçıysanız veya yüksek puanlar alıyorsanız (ki bu bir çok oyunculu oyun şeklidir) o zaman yapmanız gereken tek şey sunucu tarafı. . Evet, önemli olan her şey. Kullanıcıya puan vermeye çalışmak için hesaplama istemcisi tarafını bile tekrarlayamazsınız ve ardından sunucu ile 'doğrularsınız' çünkü kullanıcı kontrolü sadece devre dışı bırakıp kontrollerin yapılmasını sağlayan herhangi bir sistemi devre dışı bırakabilir.
Keşke buna daha iyi bir cevap olsaydı, ama olmadı.
Bununla birlikte, hile yapmayı biraz zorlaştırmak için yapabileceğiniz şeyler var. Ciddi kimsenin bunu yapmasını ve hile yapması için bir araç bırakmasını engellemeyecekler, ancak onları yavaşlatacak:
- Kodunuzu okumayı zorlaştıracak JS'nizi küçültün ve gizleyin. Küçültme ve küçümseme sıkıntısı çekebilirsiniz ancak doğru değişken ve işlev adlarını veya yorumları asla geri alamazsınız.
- Farklı bir dille değerleri pişirin. Bu durumda statik kurulum değişkenlerini işlemek için PHP veya diğer sunucu tarafı dilleri kullanabilirsiniz. Atlama mesafesinin her zaman 2 boşluk olması gerekiyorsa, normal olarak oynatıcı nesnesi için bir atlama mesafesi tanımlarsınız. PHP ile işlem yapmayın, böylece JS kaynağı kodun her yerine milyonlarca yerde sıvanmış 2s ile bitiyor. Bu, JS'nizi de hızlandırabilmenin mutlu yan etkisine sahiptir.
- Bazı uygulamalarda, karışım konusunda uzmanlaşacaksınız ve JS'nizi her oyuncu için özel olarak bile oluşturabilirsiniz. Hile yapmayı önlemenin başka bir yolu. Her oyuncunun kodu bir şekilde farklıysa, bir araç setinin parçası olabilecek bir hile yazmak daha zordur.
- Son olarak, oynatıcının kimliğine göre kaynağı kontrol edebilirsiniz. IP adreslerini ve / veya kullanıcı adlarını söyleyin. JS'nin oyuncuya özel sürümünün ne olacağını biliyorsunuz, bir sağlama toplamı hazırlayabilirsiniz ve diğer tarafta da aynı olmasını gerektirir. Herhangi bir müşteri tarafı JS'si gibi devre dışı bırakılması kolaydır, ancak bir kez daha bir araç takımı oluşturmayı biraz zorlaştırır.
Yani. Gördüğünüz gibi, muhtemelen bu rotaya gitmeye değmez. Bu zor. Yapması gereken çok aptalca kodlama uygulamaları gerektirir ve sonuçta yenilmesi oldukça kolaydır. Hile yapmamak için tüm hesaplamaları sunucu tarafında yapmanız gerekir. Ya da bırak gitsin ve aldatmanın olacağını kabul et.