मैं एक साहसिक खेल की योजना बना रहा हूं, और यह नहीं जान सकता कि कहानी प्रगति की स्थिति के आधार पर एक स्तर के व्यवहार को लागू करने का सही तरीका क्या है।
मेरे एकल-खिलाड़ी गेम में एक विशाल दुनिया है जहाँ खिलाड़ी को खेल के विभिन्न बिंदुओं पर एक शहर में लोगों के साथ बातचीत करनी होती है। हालाँकि, कहानी की प्रगति के आधार पर, खिलाड़ी को विभिन्न चीजें प्रस्तुत की जाएंगी, उदाहरण के लिए, गिल्ड लीडर शहर के चारों ओर के स्थानों को शहर के चौक से विभिन्न स्थानों में बदल देगा; दरवाजे केवल एक विशेष दिनचर्या को खत्म करने के बाद दिन के कुछ समय में अनलॉक होंगे; अलग-अलग कट-स्क्रीन / ट्रिगर इवेंट एक विशेष मील का पत्थर तक पहुंचने के बाद ही होते हैं।
मैंने शुरू में NPC को क्या कहना चाहिए या क्या पाया जा सकता है, यह तय करने के लिए शुरू में एक स्विच {} स्टेटमेंट का उपयोग करने के बारे में सोचा और एक वैश्विक game_state वैरिएबल की स्थिति की जांच करने के बाद ही खोज उद्देश्यों को इंटरैक्ट कर सकने योग्य बनाया। लेकिन मुझे एहसास हुआ कि किसी वस्तु के व्यवहार को बदलने के लिए मैं जल्दी से विभिन्न गेम स्टेट्स और स्विच-केस में चला जाऊंगा। यह स्विच स्टेटमेंट डिबग करने के लिए बड़े पैमाने पर कठिन होगा, और मुझे लगता है कि यह एक स्तर संपादक में उपयोग करने के लिए भी कठिन हो सकता है।
इसलिए मैंने सोचा, कई राज्यों के साथ एक ही वस्तु होने के बजाय, शायद मेरे पास एक ही राज्य के साथ एक ही वस्तु के कई उदाहरण हैं। इस तरह, अगर मैं एक स्तर के संपादक की तरह कुछ का उपयोग करता हूं, तो मैं उन सभी अलग-अलग स्थानों पर एनपीसी का एक उदाहरण रख सकता हूं जो वह कभी भी देख सकता है, और प्रत्येक वार्तालाप राज्य के लिए भी वह एक उदाहरण है। लेकिन इसका मतलब है कि स्तर के आसपास बहुत सारे निष्क्रिय, अदृश्य गेम ऑब्जेक्ट होंगे, जो स्मृति के लिए परेशानी हो सकती है, या बस एक स्तर संपादक में देखने के लिए मुश्किल हो सकती है, मुझे नहीं पता।
या बस, प्रत्येक खेल राज्य के लिए एक समान, लेकिन अलग स्तर बनाएं। यह चीजों को करने के लिए सबसे साफ और बग-मुक्त तरीका महसूस करता है, लेकिन यह महसूस करता है कि बड़े पैमाने पर मैनुअल काम यह सुनिश्चित करता है कि स्तर का प्रत्येक संस्करण वास्तव में एक दूसरे के समान है।
मेरे सभी तरीके इतने अकुशल लगते हैं, इसलिए मेरे सवाल को सुनाने के लिए, कहानी प्रगति की स्थिति के आधार पर एक स्तर के व्यवहार को लागू करने के लिए एक बेहतर या मानकीकृत तरीका है?
पुनश्च: मेरे पास अभी तक एक स्तर का संपादक नहीं है - जेएमई एसडीके जैसी किसी चीज का उपयोग करने या अपना खुद का बनाने की सोच।