मैं एक रेट्रो-स्टाइल पासवर्ड-आधारित "savegame" प्रणाली कैसे लागू करूं?


20

मैं एकल-प्लेयर गेम के लिए एक पासवर्ड सिस्टम कैसे बनाऊंगा जैसे पुराने कंसोल गेम में उपयोग किया जाता है?

उदाहरण के लिए, मेगा मैन एक्स आपको संख्याओं की एक श्रृंखला देकर काम बचाता है जिसे आप बाद में अपने बचत को लोड करने के लिए दर्ज कर सकते हैं।


3
डॉनके कोंग (एनईएस) ने क्या नहीं किया - जो आपको कारतूस को बचाने की अनुमति देता है, लेकिन जीवित नहीं रहता है - इसलिए आपको पहले स्तर से जीवन का भार होगा (जैसे 24) बचाओ, बिस्तर पर जाओ, WAKE 3 के साथ यूपी - मुझे लगता है कि नफरत है
एलेक टीले

10
पेडिटिक नोट: एक पासवर्ड सिस्टम गेम स्टेट को सेव नहीं करता है, यह पूर्वनिर्धारित लोड करता है
लिलिएनथाल

5
@ लिलिंथल जरूरी नहीं। शायद यह कुछ चर राज्य के "डंप" का एक प्रकार है, एक नियतात्मक दो-तरफ़ा अल्गोरिथम के साथ फेरबदल।
ओ ० '।

2
@Lhoris हाँ, यदि आपके पास आपके पासवर्ड में पर्याप्त एन्ट्रॉपी है, तो आप इसे एक तरह का बचा हुआ राज्य मान सकते हैं, जो कि वर्तमान savegames से मिलता-जुलता है। आखिरकार, दोनों को खेल के राज्य को निर्यात और आयात करने का एक तरीका चाहिए। हालाँकि, किसी भी चीज़ के लिए आवश्यक एन्ट्रापी एक सच्चे सेव (सटीक स्थान / चेकपॉइंट, जीवन, दुश्मन मारे गए, बारूद गिनता है, ....) दोनों को बहुत लंबे पासवर्ड और एक बहुत ही जटिल एल्गोरिथ्म की आवश्यकता होगी। ऐसे मामलों के लिए जहां सेवगैम पर पासवर्ड का उपयोग करने का निर्णय समझ में आता है (यदि कोई भी हो), तो अधिकतम सच होना चाहिए।
लिलिएनथाल

3
@AlecTeal क्या वास्तव में "मूर्ख" होना चाहिए? मैं समकालीन खेलों में संग्रहीत डेटा की मात्रा के खिलाफ पासवर्ड का मूल्यांकन कर रहा हूं, जहां वे स्पष्ट रूप से विशाल बहुमत के लिए अनुपयुक्त हैं।
लीलिएन्थल

जवाबों:


32

सबसे पहले, अपने खेल राज्य को तोड़ दें (या बल्कि, जिस राज्य को आप बचाना चाहते हैं)। एक मेगा मैन स्टाइल गेम के मामले में, आप यह जान सकते हैं कि आपके द्वारा मारे गए एंड-लेवल बॉस में से किसके पास कितने ऊर्जा-टैंक-जैसे पावरअप हैं, और इसी तरह।

उस सभी डेटा को एक बिट फ़ील्ड में पैक करें, अर्थात्, प्रत्येक मान के लिए बिट्स की उचित संख्या असाइन करें:

  • मार डाला बॉस 1 (एक बिट)
  • मार डाला मालिक 2 (एक बिट)
  • मार डाला मालिक 3 (एक बिट)
  • मार डाला मालिक 4 (एक बिट)
  • ऊर्जा टैंक ( कुल 5 का x ) (3 बिट्स)
  • कुछ उपलब्धि अनलॉक (एक बिट)

हमारे उदाहरण में कुल 8 बिट्स हैं, जिसका मतलब है कि एक एकल वर्ण एक पासवर्ड का प्रतिनिधित्व कर सकता है। व्यवहार में, आपके खेल में अधिक स्थिति होने की संभावना है और इस प्रकार अधिक कुल बिट्स और इस प्रकार अधिक वर्णों की आवश्यकता होती है। जैसा कि यहां और अन्य प्रश्नों में टिप्पणियों में उल्लेख किया गया है, यह दृष्टिकोण "रेट्रो" गेम या अन्य खेलों के लिए काम करता है जहां कब्जा किए गए गेम राज्य का आकार उचित है। एक निश्चित बिंदु से परे, आपको पता चल सकता है कि आपके राज्य को एन्कोड करने के लिए आवश्यक पासवर्डों की जटिलता बहुत बड़ी है।

पासवर्ड को क्रैक करने वाले कैज़ुअल ऑब्ज़र्वेशन की संभावना को कम करने के लिए, आप बिट लेआउट को बदल सकते हैं ताकि आप डमी बिट्स का परिचय दें (जिसका गेम स्टेट पर कोई प्रभाव नहीं पड़ता है, लेकिन जब आप सभी बिट्स को वर्णों के रूप में व्याख्या करते हैं तो पासवर्ड अलग दिखता है) या चलाएं यह कुछ प्रतिवर्ती हैश-जैसे ऑपरेशन के माध्यम से बिट्स को चारों ओर बिखेरने के लिए है ताकि सभी "मारे गए बॉक्स X " बिट्स प्रत्येक अभिभावक के बगल में सही न हों, जिससे संबंधित अनुक्रमिक-स्टेट पासवर्ड बहुत अलग दिखते हैं, या चेकसम मानों को पेश करते हैं।

यदि आप चारों ओर खुदाई करते हैं, तो वहां से कुछ अधिक लोकप्रिय पासवर्ड वाले गेम के लिए नियोजित सिस्टम पर बहुत कम जानकारी है:

आप अतिरिक्त प्रेरणा के लिए उन पर पढ़ सकते हैं।


4
यह सुनिश्चित करने के लिए याद रखें कि "सेव स्टेट" पासवर्ड सभी आसानी से टाइप करने में सक्षम है और, अधिमानतः, असंदिग्ध (उदाहरण के लिए, '0' या 'O' का उपयोग करें, लेकिन दोनों का नहीं)।
मीनमास

4
@minnmass बोनस पॉइंट्स यदि आप समान वर्णों को अपने मानक में बदलते हैं, तो '0' के बजाय 'O' टाइप करना अभी भी '0' में बदल जाता है।

8
@ NPSF3000 क्योंकि इस मामले में "पासवर्ड" एक प्रमाणीकरण उपाय नहीं है; "पासवर्ड" स्वयं भंडारण माध्यम है।
शीलकोट

6
@ NPSF3000 यदि यह आपके लिए प्रश्न से स्पष्ट नहीं है, तो आपको प्रश्न को फिर से पढ़ने या पृष्ठभूमि सामग्री सीखने की आवश्यकता है।
जूल

2
@ NPSF3000 ओपी स्पष्ट रूप से "रेट्रो स्टाइल" कहता है और पुष्टि करने के लिए मेगमैन का संदर्भ देता है, जो अस्पष्ट नहीं है। विषय वस्तु के बारे में जानें, समझें कि यह सुरक्षा से संबंधित नहीं है, और कृपया एक ईमानदार और क्षम्य अज्ञानता के रूप में शुरू हुई रक्षा की कोशिश करना बंद करें।
15

3

उन खेलों से मुझे विश्वास था कि केवल एक राज्य बचा है। पासवर्ड सिर्फ लोड करने के लिए एक स्तर का संदर्भ देता है। बस इस तरह से कुछ के लिए एक शब्दकोश का उपयोग करें।

यदि यह एक निश्चित हथियार या बूस्टर होने की तरह थोड़ा अधिक जटिल है, तो आप राज्य को कम (लेकिन लंबे समय तक) हैश कोड में एन्क्रिप्ट कर सकते हैं।

लेकिन मैं आपको सलाह देता हूं कि आप इसका इस्तेमाल न करें। पासवर्ड इंटरनेट पर तेजी से फैल जाएगा और जल्द ही सभी ने आपका गेम जीत लिया।


9
इंटरनेट पर फैलने वाले पासवर्ड अच्छे हो सकते हैं। धोखा मजेदार हो सकता है, और एकल-खिलाड़ी गेम में, खिलाड़ी केवल खुद को धोखा देते हैं।
एको

@Anko हाँ, मैं धोखा देना पसंद करता हूं और बमुश्किल यह किया है इसलिए मैं पक्षपाती हूं। लेकिन मेरे अपने अनुभव से मेरे खेल बहुत जल्दी धूल जमा कर देते थे और जब मैं अपने रास्ते को धोखा देता था।

"... बस लोड करने के लिए एक स्तर का संदर्भ देता है।" अभी तक सभी मामलों में सच नहीं है। कुछ पासवर्ड बॉस, मारे गए, पॉवरअप, आदि का भी संदर्भ देते हैं। दूसरा, यह सलाह देना कि पासवर्ड को फैलाना एक बात है - हमारी हाइपर-कनेक्टेड दुनिया में एक समस्या है। यह कहना कि धोखा देने के विकल्प को हटा दिया जाना चाहिए क्योंकि आपको धोखा देना पसंद नहीं है। आप जो पसंद करते हैं वह वैसा नहीं है जैसा दूसरे लोग पसंद करते हैं। इसके बारे में आप क्या पसंद करते हैं, यह उपभोक्ता नहीं है । धोखा / शॉर्टकट एक महत्वपूर्ण विकल्प है - विशेष रूप से एकल खिलाड़ी खेलों के लिए।
वर्नरसीडी जूल

@WernerCD सबसे पहले मैं और अधिक जटिल प्रणालियों के बारे में बात करता हूं जो मैं सिर्फ एक सरल पासवर्ड सिस्टम के साथ शुरू करता हूं। मैं कुछ भी दावा नहीं कर रहा हूँ। दूसरे, मैं जवाब में धोखा देने के बारे में कुछ नहीं कह रहा हूं। मैं सिर्फ एक टिप्पणी पर अपना बायस्ड जवाब दे रहा हूं और यहां तक ​​कह रहा हूं कि मैं पक्षपाती हूं और आपकी बात से वाकिफ हूं कि यह मुझे पसंद नहीं है। लेकिन अगर कोई यह नहीं कहता कि उसे क्या पसंद या नापसंद है तो आप कैसे जानेंगे कि दूसरे क्या पसंद करते हैं? मुझे अभी भी लगता है कि इस तरह की व्यवस्था समय के कारण होती है और 21 वीं सदी के धोखा को अलग तरह से हासिल किया जाता है। अगली बार आपको उस IMHO जैसी टिप्पणी लिखने से पहले अधिक ध्यान से पढ़ना चाहिए।
मैडमैनियो जूल

यदि आपके पास savegames है, तो लोग savegames को भी साझा करेंगे।
डेवी मॉर्गन

1

वैसे आप मूल रूप से इसे इस तरह से कर सकते हैं:

बॉस मारे गए = 7

सिक्कों की मात्रा = 36

मालिक तलवार = 0 (नहीं)

मालिक दिल = 1 (हाँ)

वर्तमान स्तर = 6

वर्तमान दुनिया = 9

स्वास्थ्य = 100

कोड = 7V36R0A1T6O9A100

मूल रूप से प्रत्येक अक्षर प्रकार भिन्न होता है


-3

जबकि जोश पेट्री के चरित्र-से-राज्य प्रणाली जैसे समाधानों में लाभ (छोटे बचत आकार, खेल की सभी प्रतियों पर काम करता है) है, वे पासवर्ड प्रणाली के लिए आंतरिक रूप से होने के लिए खेल डिजाइन और राज्य प्रणाली को युगल करते हैं। पासवर्ड या स्थिति या डिज़ाइन में कोई भी परिवर्तन और पूरी प्रणाली अलग हो जाती है।

एक सरल उपाय यह होगा कि आप अपने सेव सिस्टम को सामान्य रूप से बनाएं, और बस ऊपर से एक पासवर्ड सिस्टम जोड़ें। यह सहेजने में पासवर्ड को बचाने (संभवतः फ़ाइल नाम के रूप में दोहरीकरण) के रूप में सरल हो सकता है और इसे लोड पर मान्य कर सकता है, या आसपास के कई एन्क्रिप्शन लाइब्रेरी में से एक का उपयोग कर के रूप में जटिल है (जो कि बहुत मामूली है)।


इस उत्तर के बारे में कुछ भ्रम प्रतीत होता है।

1) सेशन बस एक पासवर्ड के लिए पूछा गया है कि देना उन्हें एक बचाने लोड है ... करना आवश्यक नहीं पासवर्ड है हो सेव।

2) कई खेलों में आज महत्वपूर्ण बचत की आवश्यकता है, हमने आंतरिक रूप से एक त्वरित सेव / लोड सिस्टम बनाया है जो कि 10MB फ़ाइलों का उत्पादन कर रहा था ... एक क्विज़ गेम के लिए! जोश पेट्री की बचत प्रणाली, जबकि वैध बहुत सीमित है - जैसे ही स्टोर सिस्टम गैर-तुच्छ हो जाता है, सभी प्रासंगिक डेटा को बनाए रखने के लिए पासवर्ड की लंबाई बहुत अधिक होगी।

उदाहरण के लिए, 30 बॉस होने पर क्या होता है? 20 उपलब्धियां? क्या हम एक उपलब्धि से आधे रास्ते पर हैं? वह किस स्तर पर है? हम स्वास्थ्य, जीवन, सिक्के, xp ​​के लिए कितने बिट्स अलग रख रहे हैं? क्या होगा अगर स्नैपशॉट स्तरों के बीच की स्थिति का नहीं है ... लेकिन एक स्तर के माध्यम से आधा-रास्ता - खिलाड़ी, दुश्मन, प्रोजेक्टाइल, नष्ट / परिवर्तित इलाके की स्थिति अचानक बहुत अधिक राज्य को जोड़ देती है जिसे संग्रहीत करने की आवश्यकता होती है।

परिप्रेक्ष्य के लिए, एक 30 वर्ण वर्णमाला और एक दस अक्षर का पासवर्ड मानते हुए हमारे पास स्टोर करने के लिए लगभग 50 बिट्स मूल्य की जानकारी है। केवल एक वस्तु की स्थिति, रोटेशन और स्केलिंग को स्टोर करने के लिए 320 बिट्स तक के खेल / इंजन का उपयोग करना असामान्य नहीं है। निश्चित रूप से, आप कम से अधिक करने के लिए सभी प्रकार के अनुकूलन ट्रिक्स कर सकते हैं ... लेकिन अंततः आप गेम को मज़ेदार बनाने के लिए समर्पित समय का उपयोग कर रहे हैं - सबसे खराब अनुकूलन जो आप कर सकते हैं।


3
मुझे लगता है कि समस्या यहाँ है, और ऊपर आपकी टिप्पणी के साथ, यह है कि क्रिप्टोग्राफ़िक सुरक्षा एक पासवर्ड के भीतर बिट्स के रूप में गेम की स्थिति को बचाने का लक्ष्य नहीं है। इस तरह से बनाए गए पासवर्ड आसानी से प्रतिवर्ती, लेकिन हैश का अनुमान लगाने में मुश्किल होते हैं , और इससे अधिक कुछ नहीं। और उसी कारण से, यह उस तरह से अनुचित युग्मन पैदा नहीं करता है जिस तरह से आप कल्पना कर रहे हैं; यदि खेल की स्थिति कम या ज्यादा जटिल हो जाती है, तो हैश (जो पिछले हैश को अमान्य करता है) करता है, लेकिन सिस्टम पहले और बाद में समान रूप से अच्छी तरह से काम करता है।
सेठ बट्टिन

@ सेठ बातिन "यह आप जिस तरह से कल्पना कर रहे हैं उसमें अनुचित युग्मन का कारण नहीं है" ओह कूल! इसलिए मैं जिस गेम पर काम कर रहा हूं, उसमें अब मेगाबाइट्स में मापी गई एक सेव फ़ाइल थी ... मुझे बस इतना करना है कि कुछ बेसिक ऑबफ्यूजन करें और इसे स्क्रीन और वॉइला पर प्रदर्शित करें! अब हमारे पास पूरी तरह से अच्छा पासवर्ड सिस्टम है?
NPSF3000

3
ऐसा लगता है कि आपका खेल इस पद्धति के लिए उपयुक्त नहीं है।
सेठ बत्तीन

@ NPSF3000 इस मामले में पासवर्ड की क्या बात है? अगर यह बिना अनुमति के अपने savegames का उपयोग करने से एक ही मशीन का उपयोग करने वाले अन्य लोगों को रोकने के लिए है, तो बस एक बार प्रति-गेम लॉगिन उपयोगकर्ता नाम / पास के साथ क्यों नहीं है? यदि यह निर्दिष्ट करना है कि वे कौन से बचत करना चाहते हैं, तो यह एक "savegame आईडी" है, पासवर्ड नहीं है, और संभवतः मित्रवत बनाया जाना चाहिए। वैसे भी, यदि मैं आपको सही पढ़ता हूं, तो आपको हर बार एक नया सेव लोड करने के लिए एक अलग, गैर-उपयोगकर्ता-निर्दिष्ट पासवर्ड की आवश्यकता होती है? क्यों? इससे किसी को क्या फायदा?
डेवी मॉर्गन

1
@DewiMorgan मुझे किसी भी चीज की आवश्यकता नहीं है, मैं शुद्ध रूप से op के सवाल का जवाब दे रहा हूं: "मैं एकल-खिलाड़ी गेम के लिए पासवर्ड सिस्टम कैसे बनाऊंगा? उदाहरण के लिए, मेगा मैन एक्स आपको संख्याओं की एक श्रृंखला देकर काम बचाता है? आप अपने बचत को लोड करने के लिए बाद में प्रवेश कर सकते हैं। " मेरा समाधान यह करता है कि, बिना सेविंग सिस्टम और पासवर्ड सिस्टम को एक साथ जोड़े। शीर्ष मतदान के जवाब में मेरी जैसी ही डाउनसाइड्स हैं, इसके साथ ही इस विधि को पूरा करने के लिए पूरे खेल को डिजाइन करने की आवश्यकता है।
NPSF3000
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.