खिलाड़ी से गेम डेटा छिपाएं?


13

मैं अपने पहले (C ++) गेम पर काम कर रहा हूं, और मैं एक घटक आधारित डिजाइन का उपयोग करना चाहता हूं। मैंने हाल ही में इस बारे में बहुत कुछ पढ़ा है और कल मैंने फैसला किया कि मैं बाहरी JSON फ़ाइलों में ऑब्जेक्ट डेटा संग्रहीत करना चाहता हूं, ताकि अधिक लचीलेपन और पहुंच में आसानी हो सके।

तब यह मुझ पर हावी हो गया कि इन फाइलों को गेम की डायरेक्टरी ट्री में छोड़ने से खिलाड़ी कुछ भी संशोधित कर सकते हैं, जिसे वे बहुत आसानी से चाहते हैं।

मैं डेवलपर्स को कोड दिखाने के बारे में चिंतित नहीं हूं, क्योंकि खेल खुला स्रोत होगा, लेकिन मुझे डर है कि एक अनुभवहीन गेमर खेल को तोड़ सकता है या कम से कम मज़ा को बर्बाद कर सकता है।

क्या मैं कुछ भूल रहा हूँ? गेम डेटा (ओपन सोर्स गेम में) छिपाने के बारे में क्या नीति है? क्या किसी के लिए भी सब कुछ स्पष्ट रूप से सुलभ होना सामान्य है?

यदि नहीं, तो डेटा को छिपाने का एक अच्छा तरीका क्या है?


3
आमतौर पर खेल को संशोधित करने की क्षमता एक विशेषता है, बग नहीं, विशेष रूप से एकल-खिलाड़ी गेमिंग के लिए।
jprete

8
मैं वास्तव में परेशान नहीं करूंगा। एक अच्छा खेल बनाने में आपका समय बेहतर व्यतीत होता है। =)
जरी कोमप्पा

1
मुझे लगता है कि (लगभग) जो कोई भी एक ओपन-सोर्स गेम डाउनलोड करता है, वह वास्तव में गेम डेटा के साथ छेड़छाड़ और खेल को तोड़ने की प्रक्रिया का आनंद लेना जानता है । यदि यह एक अच्छा खेल है, तो आप कुछ ही समय में अपने JSON प्रारूप को समझाते हुए एक विकी देखेंगे!
नेवरमाइंड

जवाबों:


33

अगर खिलाड़ी मज़ाक उड़ाते हैं और मज़ा बर्बाद करते हैं तो मैं कहूँगा कि यह उनकी समस्या है। टिंकरर्स के लिए आधा मज़ा यह है कि क्या टूटता है।

यह चिंतित होने जैसा है कि खिलाड़ी एक देव मोड धोखा कोड का उपयोग करेंगे और चिंतित होंगे कि खिलाड़ी को चुनौती नहीं दी गई है।

मैं जिप फाइल में उन कॉन्फिग फाइल्स को डालने से ज्यादा कुछ नहीं करूंगा (जो आपको लोडिंग के लिए वैसे भी करना चाहिए) और सुनिश्चित करें कि आपका कोड दूषित डेटा को इनायत से हैंडल कर सकता है।


20

मुझे डर है कि एक अनुभवहीन गेमर खेल को तोड़ सकता है या कम से कम मज़ा को बर्बाद कर सकता है।

यदि वे गेम डेटा के साथ ध्यान कर रहे हैं, तो वह वही है जो वे 'मज़ेदार' मानते हैं। आप उन्हें इस से बचाने की जरूरत नहीं है। इकाई घटक डेटा शायद ही एक बिगाड़ने वाला है, सब के बाद। हो सकता है कि यदि आपके पास वहां संवाद या खोज डेटा था, तो यह एक समस्या होगी, लेकिन शायद नहीं। अधिकांश गेमर्स को यह भी नहीं पता होता है कि इस तरह की चीज़ को कहाँ देखना है, कभी भी जानबूझकर इसे खोजने या इसे संपादित करने में कोई आपत्ति नहीं है।

मेरी सलाह है कि इसे ज़िप करें और फ़ाइल एक्सटेंशन का नाम बदलें। इससे कैजुअल लुक बाहर रहेगा लेकिन आपके साथ काम करना मुश्किल नहीं होगा। आप फ़ाइलों के साथ काम करने के लिए PhysicsFS जैसी किसी चीज़ का उपयोग कर सकते हैं ।


5
हां। मुझे याद है कि अमिगा पर कॉलोनाइजेशन खेल रहा था। इकाइयों के पैरामीटर मानक txtविस्तार के साथ एक साधारण पाठ फ़ाइल में संग्रहीत किए गए थे । काफी खेलने के बाद मैंने फैसला किया कि मैं उन मापदंडों को समायोजित करके खेल को कठिन बनाऊंगा। बाद में मैंने उन सेटिंग्स को दोस्तों के साथ साझा किया। यह मजेदार था ...
लियोरी

3

आप सममित एन्क्रिप्शन स्कीम (एईएस) का उपयोग करके एन्क्रिप्ट किए गए डेटा को स्टोर कर सकते हैं , लेकिन यह व्यर्थ है: सॉफ्टवेयर ओपनसोर्स है , इसलिए हर कोई कुंजी पढ़ सकता है और इसलिए डेटा को डिक्रिप्ट कर सकता है। यह सिर्फ आकस्मिक गेमर को धोखा देने से "रोक" देगा।

और यह बंद स्रोत परियोजनाओं में भी एक तरह का व्यर्थ होगा, क्योंकि यह गेम बाइनरी में कुंजी को खोजने के लिए काफी आसान है।

तो, आपके पास दो संभावनाएँ हैं:

  1. बस अनएन्क्रिप्टेड सामान को छोड़ दें (लेकिन कम से कम हर फ़ाइल के md5 हैश को इकट्ठा करें, ताकि आप इसे अपने गेम के वितरण में किसी भी क्षति के खिलाफ रनटाइम पर जांच सकें);
  2. बंद-स्रोत पर जाएं , डेटा को स्क्रैम्बल करें (एक गुप्त प्रतिवर्ती मल्टी-स्टेप एल्गोरिथ्म जैसे स्ट्रिंग रिवर्स + बाइट स्वैपिंग + एक्सर विद ए स्ट्रांग स्ट्रिंग, आदि ...) और फिर एईएस के साथ सब कुछ क्रिप्ट करें। डाटा रिकवर करना किसी के लिए भी कठिन होगा। बहुत कठिन।

1
यहां तक ​​कि आपके बंद-स्रोत विधि भी वह सब कठिन नहीं है। वही लोग जो कॉपी-प्रोटेक्शन के लिए इस्तेमाल की जाने वाली योजनाओं को नियमित रूप से तोड़ते हैं, शायद वे भी इसे तोड़ सकते हैं। मुख्य अंतर यह है कि वे परेशान नहीं करेंगे।
jprete

@jprete: निश्चित रूप से। यह सिर्फ समय की बात है, लेकिन लोगों के लिए समय महत्वपूर्ण है, इसलिए यह मुश्किल है और लाभदायक नहीं है, कभी-कभी, बस पर्याप्त है।
जीडी 1

3

मैं इसे छोड़ दूंगा। खेलों को बदलने / संशोधित करने जैसे एक विशाल आधुनिक समुदाय और खिलाड़ी हैं। अगर वे कुछ तोड़ते हैं, तो यह उन पर है। वे हमेशा पुनर्स्थापित कर सकते थे।

इसके अलावा अन्य डेवलपर्स के साथ काम करना आसान बनाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.