संक्षिप्त उत्तर यह है कि आप ऐसा नहीं कर सकते। कुछ भी जो क्लाइंट साइड चलाता है, विशेष रूप से स्रोत से, अपनी रणनीति को तुच्छ रूप से हराने के लिए संशोधित किया जा सकता है। यदि आप अचानक बदलाव देखने के लिए क्लाइंट साइड चेकर लगाते हैं, तो एक उपयोगकर्ता सिर्फ चेकर को निष्क्रिय कर सकता है।
अच्छी खबर यह है कि, आम तौर पर, एकल-खिलाड़ी खेलों में बहुत कम धोखा होता है। लाइन राइडर जैसे बड़े "यूट्यूब हाईस्कोर" समुदायों वाले खेलों के लिए एकमात्र प्रमुख अपवाद है, जहां खिलाड़ी YouTube पर एक-दूसरे के साथ प्रतिस्पर्धा करते हैं।
यदि आप इसके लिए लक्ष्य बना रहे हैं, या यह स्वीकार करने के लिए बहुत जिद्दी हैं कि लोग खेल में धोखा दे सकते हैं, या अपने आप को उच्च स्कोर दे रहे हैं (जो कि मल्टीप्लेयर का एक रूप है) तो आपको क्या करना चाहिए सभी गणना सर्वर-साइड है । हां, वह सब कुछ जो मायने रखता है। आप उपयोगकर्ता को स्कोर देने की कोशिश करने के लिए गणना क्लाइंट पक्ष भी नहीं दोहरा सकते हैं और फिर इसे सर्वर से सत्यापित कर सकते हैं क्योंकि उपयोगकर्ता तब चेक को अक्षम कर सकता है और किसी भी सिस्टम को अक्षम कर सकता है जो सुनिश्चित करता है कि चेक हैं।
काश, इसका बेहतर जवाब होता, लेकिन ऐसा नहीं है।
उस ने कहा, ऐसी चीजें हैं जो आप इसे धोखा देने के लिए थोड़ा कठिन बना सकते हैं। वे इसे करने से किसी को गंभीर नहीं रोकेंगे और धोखा देने के लिए टूलकिट जारी करेंगे, लेकिन यह उन्हें धीमा कर देगा:
- अपने JS को Minify और Obfuscate करें, जो बिल्कुल कोड को पढ़ने में कठिन बना देगा। आप डी-ऑबिफिकेट को डी-मिनिफाई और सॉर्ट कर सकते हैं, लेकिन आप कभी भी सही वेरिएबल और फंक्शन के नाम वापस नहीं ले सकते, न ही कमेंट।
- एक अलग भाषा के साथ मूल्यों में सेंकना। इस मामले में आप स्थैतिक सेटअप चर को संभालने के लिए PHP या अन्य सर्वर साइड भाषाओं का उपयोग कर सकते हैं। यदि कूद की दूरी को हमेशा 2 स्थान माना जाता है, तो आमतौर पर आप खिलाड़ी ऑब्जेक्ट के लिए एक कूद दूरी को परिभाषित करेंगे। मत संभालो, PHP के साथ इतना है कि जेएस स्रोत 2s के साथ समाप्त हो जाता है एक लाख स्थानों में कोड भर में पलटा। यह आपके जेएस को भी गति देने में सक्षम होने का सुखद अतिरिक्त दुष्प्रभाव है।
- कुछ अभ्यास के साथ, आप मिश्रण के साथ कुशल हो जाएंगे और आप प्रत्येक खिलाड़ी के लिए अपने जेएस को कस्टम-बिल्ड भी कर सकते हैं। जो धोखाधड़ी को रोकने का एक और तरीका है। यदि प्रत्येक खिलाड़ी का कोड किसी भी तरह से अलग है, तो एक धोखा लिखना मुश्किल है जो टूलकिट का हिस्सा हो सकता है।
- अंत में, आप खिलाड़ी की पहचान के आधार पर स्रोत की जांच कर सकते हैं। उनका IP पता और / या उपयोगकर्ता नाम कहें। आपको पता है कि जेएस का खिलाड़ी-विशिष्ट संस्करण क्या होगा, आप एक चेकसम में सेंकना कर सकते हैं और आवश्यकता होती है कि यह दूसरे छोर पर समान हो। किसी भी क्लाइंट-साइड जेएस की तरह अक्षम करना आसान है, लेकिन एक बार फिर टूलकिट बनाने के लिए यह थोड़ा कठिन है।
इसलिए। जैसा कि आप देखते हैं, इस मार्ग पर जाने के लिए शायद यह लायक नहीं है। वह कठिन है। वास्तव में मूर्खतापूर्ण कोडिंग प्रथाओं की बहुत आवश्यकता है, और अंततः हार के लिए अपेक्षाकृत आसान है। धोखाधड़ी को रोकने के लिए आपको सभी गणना सर्वर-साइड करने की आवश्यकता होगी। या जाने दो, और स्वीकार करो कि धोखा होगा।