इस संबंध में एक निष्कर्ष पर आने का सबसे अच्छा तरीका है - जैसे खेल के विकास में अधिकांश चीजें - पहले इस बारे में सोचें कि आप खेल को कैसे खेलना चाहते हैं , और फिर गणित करें, जिसके परिणामस्वरूप खेल उसी तरह से खेलेंगे।
आप कब तक खिलाड़ी को प्रत्येक स्तर पर खेलना चाहते हैं?
एक कहानी-केंद्रित एकल-खिलाड़ी आरपीजी में आप संभावित स्तर को निरंतर इनाम की धारा के रूप में रखना चाहते हैं और पूरे खेल के दौरान हर कुछ मिनटों में खिलाड़ी का स्तर बढ़ा सकते हैं। लेवलअप की दर स्थिर रहती है, इसलिए आपका मिनट-प्रति-स्तर फ़ंक्शन एक स्थिर ( time = c
) है।
एक अधिक उपलब्धि-केंद्रित गेम पर, एक MMORPG की तरह, आप आमतौर पर शुरुआती लोगों के लिए लेवलअप होना चाहते हैं, लेकिन खिलाड़ी के आगे बढ़ने पर कम और कम लगातार हो जाते हैं। उस स्थिति में आपका मिनट-प्रति-स्तर फ़ंक्शन बहुपद ( time = Level ^ c
) या यहां तक कि घातीय ( time = c ^ Level
) होगा। स्तर-संख्या को एक घातीय सूत्र में लेना आमतौर पर बहुत अधिक चरम होता है, हालांकि। यह एक अच्छा विचार हो सकता है कि इसे स्थिर बनाने के लिए इसे बहुत अधिक धीमा कर दिया जाए जबकि यह अभी भी घातांक ( time = c1 ^ (1 + Level / c2)
) हो।
मैं आपको संख्याओं को क्रंच करने के लिए स्प्रेडशीट का उपयोग करने की सलाह दूंगा। अपने अपेक्षित अधिकतम स्तर पर 1 से संख्याओं वाले स्तंभ के साथ एक तालिका बनाएँ, और स्तर सूत्र के साथ एक दूसरा स्तंभ। यह आसानी से आपको संख्याओं को खोजने के लिए विभिन्न सूत्रों के साथ प्रयोग करने की अनुमति देता है जो आपकी पसंद के अनुसार हैं। हो सकता है कि जब आप बहुपद को एक घातीय घटक के साथ जोड़ते हैं तो आपको बेहतर परिणाम मिलते हैं?
याद रखें कि आप यहां नेट फाइट टाइम देख रहे हैं। खेल का समय खिलाड़ी सक्रिय रूप से अनुभव अंक एकत्र कर रहा है। यह उस समय की गणना नहीं करता है जब खिलाड़ी एनपीसी के साथ बात करने में खर्च करता है, उनके उपकरणों की तुलना करता है और अन्य कार्य करता है जो सीधे प्रगति का कारण नहीं बनता है।
मेरे वर्तमान खेल (एक MMORPG) में मैं सूत्र के साथ आया था seconds(level) = 10 ^ (1 + Level / 20)
। पहले कुछ स्तर केवल वास्तविक मुकाबला (ट्यूटोरियल चरण के दौरान बहुत त्वरित संतुष्टि) के स्तर को ले जाते हैं, स्तर 20 - 40 मिनट लगते हैं, 50 के दशक में यह प्रति घंटे घंटे हो जाता है और जब 100 के अधिकतम स्तर के पास इसे देखने के लिए पूरे सप्ताह लगते हैं। प्रगति।
प्रति दुश्मन का अनुभव कितना अलग होना चाहिए?
यहां तक कि जब आपके दुश्मनों के पास एक स्पष्ट (या सार्थक) स्तर की मूर्ति नहीं है, तो आप उन्हें एक निश्चित चरित्र स्तर के लिए संतुलित चुनौती के रूप में डिजाइन करना चाहेंगे। लेकिन किसी शत्रु को स्तर 40 के लिए स्तर 40 के इनाम की सिफारिश करने के लिए कितना अधिक अनुभव होना चाहिए?
इस सवाल का जवाब बारीकी से संबंधित है कि चरित्र प्रति स्तर कितना अधिक शक्तिशाली हो जाता है और आप उन्हें अपने चरित्र स्तर के साथ वर्तमान दुश्मनों से आगे या पीछे होने देना चाहते हैं।
कुछ गेम सिस्टम, उदाहरण के लिए, Warcraft की दुनिया की तरह, खिलाड़ी के चरित्र के स्तर से थोड़ा ऊपर या नीचे किसी भी दुश्मन के साथ किसी भी लड़ाई का पीछा करने के लिए इसे काफी व्यर्थ बनाते हैं। ऊपर दिए गए कुछ स्तरों से कुछ भी खिलाड़ी को नष्ट कर देगा, कुछ स्तरों के नीचे कोई चुनौती नहीं होगी (और कोई इनाम नहीं)।
एक प्रति-उदाहरण डिसगिया श्रृंखला होगी। जब आप इसे स्मार्ट खेलते हैं तो उस गेम में आप अपने खुद के पात्रों के स्तर के साथ कई बार दुश्मनों को आसानी से हरा सकते हैं ।
आप जितना अधिक प्रतिबंध स्तरीय ब्रैकेट में रखना चाहते हैं, जो खिलाड़ी के लिए उचित लड़ाई है, उतना ही आपको यह सुनिश्चित करने की आवश्यकता है कि खिलाड़ी वर्तमान में लड़ रहे दुश्मनों के स्तर से पीछे नहीं है या आगे नहीं बढ़ सकता है। जब खिलाड़ी दुश्मनों के पीछे पड़ जाता है, तो खेल बिना पीस के निराशाजनक रूप से कठिन हो जाएगा। जब खिलाड़ी राक्षसों से आगे निकल जाता है, तो खेल बहुत आसान और उबाऊ हो जाएगा।
स्तर ब्रैकेट के अंदर खिलाड़ी को रखने का एक अच्छा तरीका है कि प्रति स्तर एक्सप इनाम बढ़ाया जाए। एक ओर, यह आसानी से खिलाड़ी को पकड़ने की अनुमति देगा जब वे अनुशंसित स्तर से थोड़ा नीचे होंगे। दूसरी ओर, यह उन्हें एक कठिन क्षेत्र में प्रगति के बिना कमजोर दुश्मनों पर कुशलता से ऊपर ले जाने की अनुमति नहीं देगा।
बहुपद एक्सपी कर्व ( exp = Level ^ c
) आमतौर पर अच्छी तरह से काम करता है। जितना बड़ा मूल्य c
, उतना ही आप खिलाड़ी को उन राक्षसों के वर्तमान स्तर के ब्रैकेट में मजबूर करते हैं।
ध्यान रखें कि हारने में अधिक समय लेने वाले दुश्मनों को भी आनुपातिक रूप से अधिक अनुभव देना चाहिए। एक लड़ाई जिसमें 20 सेकंड लगते हैं, उसे दो बार उतना ही एक्सपोज करना चाहिए, जिसमें केवल 10 सेकंड लगते हैं। यह आपके सूत्र का विस्तार करता है exp = (Level ^ c) * minutes_per_combat
।
अंतिम विस्तार-प्रति-स्तरीय सूत्र
अंतिम सूत्र अब दोनों से लिया जा सकता है। experience per level
है time per level in minutes
के साथ बढ़ी experience gained per minute
। तो बस पिछले दो खंडों में आपके द्वारा आए दो फार्मूले को लें और उन्हें गुणा करें। वहां यह है: आपका अनुभव-प्रति-स्तरीय सूत्र।
एक बहुपद समय-प्रति स्तर की वृद्धि के साथ, सूत्र होगा
exp(level) = (level ^ c1) * (level ^ c2)
कहाँ पे
c1
इस बात पर निर्भर करता है कि आप प्रत्येक स्तर को कितना समय लेना चाहते हैं
c2
इस बात पर निर्भर करता है कि आप खिलाड़ी को अपने दुश्मनों के स्तर के कितने करीब रखना चाहते हैं
क्या गलत हो सकता था?
यहां तक कि सबसे अच्छा विचार-आउट अवधारणा उचित नाटक की जगह नहीं ले सकती है। क्या आपके प्लेटिंग को पता होना चाहिए कि औसत खिलाड़ी आपकी तुलना में बहुत तेज या धीमी गति से प्रगति करते हैं, यह आमतौर पर एक संकेत है कि आपने अपने दुश्मनों के अनुशंसित स्तरों को कम या अधिक कर दिया है और औसत खिलाड़ी को उन्हें मारने में कितना समय लगता है। अपने playtesters के साथ मिलकर विश्लेषण करने का प्रयास करें कि कौन से शत्रु हैं जो कि चरित्र स्तर पर मारना कितना मुश्किल है और अपने एक्सपोज़ मूल्य या आंकड़ों को तदनुसार समायोजित करें।