मैं एकल-प्लेयर गेम के लिए एक पासवर्ड सिस्टम कैसे बनाऊंगा जैसे पुराने कंसोल गेम में उपयोग किया जाता है?
उदाहरण के लिए, मेगा मैन एक्स आपको संख्याओं की एक श्रृंखला देकर काम बचाता है जिसे आप बाद में अपने बचत को लोड करने के लिए दर्ज कर सकते हैं।
मैं एकल-प्लेयर गेम के लिए एक पासवर्ड सिस्टम कैसे बनाऊंगा जैसे पुराने कंसोल गेम में उपयोग किया जाता है?
उदाहरण के लिए, मेगा मैन एक्स आपको संख्याओं की एक श्रृंखला देकर काम बचाता है जिसे आप बाद में अपने बचत को लोड करने के लिए दर्ज कर सकते हैं।
जवाबों:
सबसे पहले, अपने खेल राज्य को तोड़ दें (या बल्कि, जिस राज्य को आप बचाना चाहते हैं)। एक मेगा मैन स्टाइल गेम के मामले में, आप यह जान सकते हैं कि आपके द्वारा मारे गए एंड-लेवल बॉस में से किसके पास कितने ऊर्जा-टैंक-जैसे पावरअप हैं, और इसी तरह।
उस सभी डेटा को एक बिट फ़ील्ड में पैक करें, अर्थात्, प्रत्येक मान के लिए बिट्स की उचित संख्या असाइन करें:
हमारे उदाहरण में कुल 8 बिट्स हैं, जिसका मतलब है कि एक एकल वर्ण एक पासवर्ड का प्रतिनिधित्व कर सकता है। व्यवहार में, आपके खेल में अधिक स्थिति होने की संभावना है और इस प्रकार अधिक कुल बिट्स और इस प्रकार अधिक वर्णों की आवश्यकता होती है। जैसा कि यहां और अन्य प्रश्नों में टिप्पणियों में उल्लेख किया गया है, यह दृष्टिकोण "रेट्रो" गेम या अन्य खेलों के लिए काम करता है जहां कब्जा किए गए गेम राज्य का आकार उचित है। एक निश्चित बिंदु से परे, आपको पता चल सकता है कि आपके राज्य को एन्कोड करने के लिए आवश्यक पासवर्डों की जटिलता बहुत बड़ी है।
पासवर्ड को क्रैक करने वाले कैज़ुअल ऑब्ज़र्वेशन की संभावना को कम करने के लिए, आप बिट लेआउट को बदल सकते हैं ताकि आप डमी बिट्स का परिचय दें (जिसका गेम स्टेट पर कोई प्रभाव नहीं पड़ता है, लेकिन जब आप सभी बिट्स को वर्णों के रूप में व्याख्या करते हैं तो पासवर्ड अलग दिखता है) या चलाएं यह कुछ प्रतिवर्ती हैश-जैसे ऑपरेशन के माध्यम से बिट्स को चारों ओर बिखेरने के लिए है ताकि सभी "मारे गए बॉक्स X " बिट्स प्रत्येक अभिभावक के बगल में सही न हों, जिससे संबंधित अनुक्रमिक-स्टेट पासवर्ड बहुत अलग दिखते हैं, या चेकसम मानों को पेश करते हैं।
यदि आप चारों ओर खुदाई करते हैं, तो वहां से कुछ अधिक लोकप्रिय पासवर्ड वाले गेम के लिए नियोजित सिस्टम पर बहुत कम जानकारी है:
आप अतिरिक्त प्रेरणा के लिए उन पर पढ़ सकते हैं।
उन खेलों से मुझे विश्वास था कि केवल एक राज्य बचा है। पासवर्ड सिर्फ लोड करने के लिए एक स्तर का संदर्भ देता है। बस इस तरह से कुछ के लिए एक शब्दकोश का उपयोग करें।
यदि यह एक निश्चित हथियार या बूस्टर होने की तरह थोड़ा अधिक जटिल है, तो आप राज्य को कम (लेकिन लंबे समय तक) हैश कोड में एन्क्रिप्ट कर सकते हैं।
लेकिन मैं आपको सलाह देता हूं कि आप इसका इस्तेमाल न करें। पासवर्ड इंटरनेट पर तेजी से फैल जाएगा और जल्द ही सभी ने आपका गेम जीत लिया।
जबकि जोश पेट्री के चरित्र-से-राज्य प्रणाली जैसे समाधानों में लाभ (छोटे बचत आकार, खेल की सभी प्रतियों पर काम करता है) है, वे पासवर्ड प्रणाली के लिए आंतरिक रूप से होने के लिए खेल डिजाइन और राज्य प्रणाली को युगल करते हैं। पासवर्ड या स्थिति या डिज़ाइन में कोई भी परिवर्तन और पूरी प्रणाली अलग हो जाती है।
एक सरल उपाय यह होगा कि आप अपने सेव सिस्टम को सामान्य रूप से बनाएं, और बस ऊपर से एक पासवर्ड सिस्टम जोड़ें। यह सहेजने में पासवर्ड को बचाने (संभवतः फ़ाइल नाम के रूप में दोहरीकरण) के रूप में सरल हो सकता है और इसे लोड पर मान्य कर सकता है, या आसपास के कई एन्क्रिप्शन लाइब्रेरी में से एक का उपयोग कर के रूप में जटिल है (जो कि बहुत मामूली है)।
इस उत्तर के बारे में कुछ भ्रम प्रतीत होता है।
1) सेशन बस एक पासवर्ड के लिए पूछा गया है कि देना उन्हें एक बचाने लोड है ... करना आवश्यक नहीं पासवर्ड है हो सेव।
2) कई खेलों में आज महत्वपूर्ण बचत की आवश्यकता है, हमने आंतरिक रूप से एक त्वरित सेव / लोड सिस्टम बनाया है जो कि 10MB फ़ाइलों का उत्पादन कर रहा था ... एक क्विज़ गेम के लिए! जोश पेट्री की बचत प्रणाली, जबकि वैध बहुत सीमित है - जैसे ही स्टोर सिस्टम गैर-तुच्छ हो जाता है, सभी प्रासंगिक डेटा को बनाए रखने के लिए पासवर्ड की लंबाई बहुत अधिक होगी।
उदाहरण के लिए, 30 बॉस होने पर क्या होता है? 20 उपलब्धियां? क्या हम एक उपलब्धि से आधे रास्ते पर हैं? वह किस स्तर पर है? हम स्वास्थ्य, जीवन, सिक्के, xp के लिए कितने बिट्स अलग रख रहे हैं? क्या होगा अगर स्नैपशॉट स्तरों के बीच की स्थिति का नहीं है ... लेकिन एक स्तर के माध्यम से आधा-रास्ता - खिलाड़ी, दुश्मन, प्रोजेक्टाइल, नष्ट / परिवर्तित इलाके की स्थिति अचानक बहुत अधिक राज्य को जोड़ देती है जिसे संग्रहीत करने की आवश्यकता होती है।
परिप्रेक्ष्य के लिए, एक 30 वर्ण वर्णमाला और एक दस अक्षर का पासवर्ड मानते हुए हमारे पास स्टोर करने के लिए लगभग 50 बिट्स मूल्य की जानकारी है। केवल एक वस्तु की स्थिति, रोटेशन और स्केलिंग को स्टोर करने के लिए 320 बिट्स तक के खेल / इंजन का उपयोग करना असामान्य नहीं है। निश्चित रूप से, आप कम से अधिक करने के लिए सभी प्रकार के अनुकूलन ट्रिक्स कर सकते हैं ... लेकिन अंततः आप गेम को मज़ेदार बनाने के लिए समर्पित समय का उपयोग कर रहे हैं - सबसे खराब अनुकूलन जो आप कर सकते हैं।