आरपीजी नुकसान के फार्मूले कैसे विकसित करें?


117

मैं एक शास्त्रीय 2d आरपीजी विकसित कर रहा हूं (अंतिम फंतासी के समान नस में) और मैं सोच रहा था कि क्या किसी को संसाधनों / उदाहरणों के लिए नुकसान के सूत्र / लिंक करने के बारे में कुछ सलाह थी? मैं अपना वर्तमान सेटअप समझाता हूँ। उम्मीद है कि मैं इस प्रश्न के साथ अति नहीं कर रहा हूं, और यदि मेरे प्रश्न बहुत बड़े / व्यापक हैं तो मैं माफी चाहता हूं

मेरे वर्ण आँकड़े निम्नलिखित से बने हैं:

enum Stat
{
    HP = 0,
    MP = 1,
    SP = 2,
    Strength = 3,
    Vitality = 4,
    Magic = 5,
    Spirit = 6,
    Skill = 7,
    Speed = 8, //Speed/Agility are the same thing
    Agility = 8,
    Evasion = 9,
    MgEvasion = 10,
    Accuracy = 11,
    Luck = 12,
};

जीवन शक्ति मूल रूप से शारीरिक हमलों की रक्षा है और आत्मा जादू के हमलों की रक्षा है।

सभी आँकड़े अधिकतम तय किए हैं (HP के लिए 9999, MP / SP के लिए 999 और बाकी के लिए 255)। क्षमताओं के साथ, अधिकतम वृद्धि की जा सकती है (एचपी / एसपी के लिए ९९९९, एचपी / एसपी के लिए ९९९९, बाकी के लिए ९९९) विशिष्ट मूल्यों के साथ (स्तर १००) से पहले / बाद में क्षमता + उपकरण + आदि ,००० / २०,००० एचपी, im०० / के लिए होंगे। एसपी / एमपी के लिए 2000, अन्य आँकड़ों के लिए 180/350

लेट गेम शत्रु एचपी आमतौर पर निचले लाखों में होगा (एक सुपर बॉस जिसमें अधिकतम ~ 12 मिलियन होंगे)।

मैं सोच रहा था कि लोग वास्तव में उचित पैमाने पर नुकसान के फार्मूले कैसे विकसित करते हैं? उदाहरण के लिए, इस डेटा के आधार पर, फ़ाइनल फ़ंतासी X के लिए फ़ार्मुलों के नुकसान का उपयोग आधार के रूप में बहुत आशाजनक लगा। यहाँ एक पूरा संदर्भ http://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381 है, लेकिन एक त्वरित उदाहरण के रूप में: Str = 127, 'Attack' कमांड का उपयोग, दुश्मन Def = 34।

1. Physical Damage Calculation:
Step 1 ------------------------------------- [{(Stat^3 ÷ 32) + 32} x DmCon ÷16]
Step 2 ---------------------------------------- [{(127^3 ÷ 32) + 32} x 16 ÷ 16]
Step 3 -------------------------------------- [{(2048383 ÷ 32) + 32} x 16 ÷ 16]
Step 4 --------------------------------------------------- [{(64011) + 32} x 1]
Step 5 -------------------------------------------------------- [{(64043 x 1)}]
Step 6 ---------------------------------------------------- Base Damage = 64043
Step 7 ----------------------------------------- [{(Def - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------ [{(34 - 280.4)^2} ÷ 110] + 16
Step 9 ------------------------------------------------- [(-246)^2) ÷ 110] + 16
Step 10 ---------------------------------------------------- [60516 ÷ 110] + 16
Step 11 ------------------------------------------------------------ [550] + 16
Step 12 ---------------------------------------------------------- DefNum = 566
Step 13 ---------------------------------------------- [BaseDmg * DefNum ÷ 730]
Step 14 --------------------------------------------------- [64043 * 566 ÷ 730]
Step 15 ------------------------------------------------------ [36248338 ÷ 730]
Step 16 ------------------------------------------------- Base Damage 2 = 49655
Step 17 ------------ Base Damage 2 * {730 - (Def * 51 - Def^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ---------------------- 49655 * {730 - (34 * 51 - 34^2 ÷ 11) ÷ 10} ÷ 730
Step 19 ------------------------- 49655 * {730 - (1734 - 1156 ÷ 11) ÷ 10} ÷ 730
Step 20 ------------------------------- 49655 * {730 - (1734 - 105) ÷ 10} ÷ 730
Step 21 ------------------------------------- 49655 * {730 - (1629) ÷ 10} ÷ 730
Step 22 --------------------------------------------- 49655 * {730 - 162} ÷ 730
Step 23 ----------------------------------------------------- 49655 * 568 ÷ 730
Step 24 -------------------------------------------------- Final Damage = 38635

मैंने हथियारों के हमले की रेटिंग और कवच की कवच ​​रेटिंग को शामिल करने के लिए बस डिवाइडर को संशोधित किया।

मैजिक डैमेज की गणना निम्नानुसार की जाती है: Mag = 255, अल्टिमा का उपयोग किया जाता है, दुश्मन MDef = 1

Step 1 ----------------------------------- [DmCon * ([Stat^2 ÷ 6] + DmCon) ÷ 4]
Step 2 ------------------------------------------ [70 * ([255^2 ÷ 6] + 70) ÷ 4]
Step 3 ------------------------------------------ [70 * ([65025 ÷ 6] + 70) ÷ 4]
Step 4 ------------------------------------------------ [70 * (10837 + 70) ÷ 4]
Step 5 ----------------------------------------------------- [70 * (10907) ÷ 4]
Step 6 ------------------------------------ Base Damage = 190872 [cut to 99999]
Step 7 ---------------------------------------- [{(MDef - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------- [{(1 - 280.4)^2} ÷ 110] + 16
Step 9 ---------------------------------------------- [{(-279.4)^2} ÷ 110] + 16
Step 10 -------------------------------------------------- [(78064) ÷ 110] + 16
Step 11 ------------------------------------------------------------ [709] + 16
Step 12 --------------------------------------------------------- MDefNum = 725
Step 13 --------------------------------------------- [BaseDmg * MDefNum ÷ 730]
Step 14 --------------------------------------------------- [99999 * 725 ÷ 730]
Step 15 ------------------------------------------------- Base Damage 2 = 99314
Step 16 ---------- Base Damage 2 * {730 - (MDef * 51 - MDef^2 ÷ 11) ÷ 10} ÷ 730
Step 17 ------------------------ 99314 * {730 - (1 * 51 - 1^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ------------------------------ 99314 * {730 - (51 - 1 ÷ 11) ÷ 10} ÷ 730
Step 19 --------------------------------------- 99314 * {730 - (49) ÷ 10} ÷ 730
Step 20 ----------------------------------------------------- 99314 * 725 ÷ 730
Step 21 -------------------------------------------------- Final Damage = 98633

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

धन्यवाद


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

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

4
ऐसा करने के लिए एक्सेल का उपयोग करने पर विचार करें। अच्छी तरह से कार्य के अनुकूल लगता है और आपको कोड की एक पंक्ति नहीं लिखनी होगी।
एलेक्स शियरर

2
सबसे महत्वपूर्ण सवाल यह है कि कौन सा फॉर्मूला खिलाड़ियों को सबसे मज़ेदार बनाता है ? (पृष्ठ को "मज़ेदार" के लिए खोजा और उनमें से गैर-जवाबों का उल्लेख किया: P) यदि यह आँकड़े या क्षति बढ़ जाती है तो बहुत तेज़ खिलाड़ी असंवेदनशील हो जाते हैं, यदि यह धीरे-धीरे ऊब जाता है। खिलाड़ियों को एक स्तर हासिल करने पर खुशी महसूस करने की आवश्यकता होती है, इसलिए उन्हें यह महसूस करने की ज़रूरत है कि वे इसमें काम करते हैं और यह भी कि उनके खेल के प्रदर्शन पर इसका कुछ ध्यान देने योग्य प्रभाव होगा। (वह मेरी 2 पेंस है)
अन्नान

3
"(डेफ - 280.4) ^ 2" हुह? खैर, मैं चीजों को डीआईजी> 255 या डीआईएस> 300 के लिए अजीब नहीं होने की उम्मीद करूंगा लेकिन डेफ 2804 के लिए बहुत ज्यादा;) उसके बाद, उच्चतर डीप प्रभावी रूप से सूत्र के इस बिंदु पर एक कम डिफ का मतलब होगा, जबकि व्यवहार करना जारी रहेगा। अन्य बिंदुओं पर उम्मीद है। BTW, आप सिर्फ वुल्फराम अल्फा या तो के साथ इस सामान की साजिश कर सकते हैं। केवल दो रखने के लिए पर्याप्त चर को ठीक करें और आपको एक अच्छा सतह प्लॉट मिलेगा।
ईसाई

जवाबों:


140

इस तरह के सूत्र बनाने के लिए प्राथमिक गणितीय कार्यों के ज्ञान की आवश्यकता होती है - जिन चीजों के बारे में आपने बीजगणित और पूर्व-गणना वर्ग में सीखा है।

एक बार जब आप उन में महारत हासिल कर लेते हैं, तो बस अपने आप से पूछें ("मूल्य" को "क्षति," या "स्वास्थ्य," या "गति" के साथ और जो कुछ भी कहें) :

तब तक इसे ट्विस्ट करें (सामान जोड़ें / गुणा करें, बेस-वैल्यू आदि को बदल दें) जब तक यह सही न लगे। एक रेखांकन कैलकुलेटर आपको यह कल्पना करने में मदद करेगा कि मापदंडों में परिवर्तन फ़ंक्शन को कैसे प्रभावित करेगा।


वैसे, आप जिन समस्याओं का सामना कर रहे हैं, वे पूर्णांक ओवरफ्लो के कारण हैं ।

उन चर-प्रकारों का उपयोग करें जो आपके द्वारा काम कर रहे नंबरों को रखने के लिए पर्याप्त बड़े हैं। C ++ में प्लेटफ़ॉर्म द्वारा भिन्न आकार, लेकिन 32-बिट विज़ुअल स्टूडियो कंपाइलर का उपयोग करते हुए, unsigned int32-बिट है, जबकि unsigned __int64 (MS-specific) 64-बिट है। एक का उपयोग करने पर भी विचार करें double

इसके अतिरिक्त, अपने संचालन को पुनर्गठित करने का प्रयास करें ताकि आप पहली बार में इतनी बड़ी संख्या का सामना न करें (उदाहरण के लिए, इसके बजाय MDef * MDef / 110, करें (int)((float)MDef / 110 * MDef))


3
यदि आप पूर्णांक ओवरफ़्लो में चल रहे हैं, तो फ़्लोट में रूपांतरण - जो केवल पूर्णांक भाग के 24 बिट्स का समर्थन करता है - इसमें सटीकता की समस्याओं का एक अलग सेट है।

@ जो: मैंने अपना संपादन वापस ले लिया है; मैं विशेष रूप से चुना है __int64से अधिक uint64_tहै क्योंकि stdint.hविजुअल स्टूडियो 2008 और नीचे पर उपलब्ध नहीं है, और मैं गरीब लड़का किसी भी अधिक की तुलना में वह पहले से ही है भ्रमित करने के लिए नहीं चाहता था।
ब्लूराजा - डैनी पफ्लुगुफ्ट

1
@BlueRaja: मुझे ऐसा कोई सबूत नहीं दिख रहा है जो पूछने वाला विजुअल स्टूडियो का उपयोग कर रहा हो, और यह हर दूसरे मानक टूलकिन (विजुअल स्टूडियो 2010 सहित) में मौजूद है।

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

1
user127817: यह सब वास्तव में महत्वपूर्ण है कि फ़ंक्शन कैसे बढ़ता है। बाकी के लिए, इसे तब तक परखें जब तक यह संतुलित न लगे। यदि आपको लगता है कि चरित्र बहुत शक्तिशाली है, तो उसकी क्षति कम करें। यदि आपको लगता है कि किसी विशेष बॉस या दुश्मन को मारने में बहुत समय लगता है, तो दुश्मन के स्वास्थ्य या कवच को कम करें। और इसी तरह।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

31

मेरे वर्ण आँकड़े निम्नलिखित से बने हैं:

आपकी वास्तविक समस्या है: आपने अपने आँकड़ों को परिभाषित करने से पहले परिभाषित किया है कि उन आँकड़ों का वास्तव में क्या मतलब है । आप घोड़े से पहले गाड़ी लगा रहे हैं।

डीएंडडी (टेबलटॉप) कैसे काम करता है, इसे देखें। "स्ट्रेंथ" का अपने आप से कोई मतलब नहीं है; यह केवल कुछ का मतलब है क्योंकि वहाँ एक नियम है जो कहता है, "अपने हाथापाई हमले में अपनी ताकत बोनस जोड़ें।" यह नियम डी एंड डी के युद्ध नियमों का हिस्सा है। मुकाबला नियमों के बिना, "ताकत" आम तौर पर एक अर्थहीन मात्रा है।

पहला सवाल जो आपको खुद से पूछना है, वह यह है: मुझे पात्रों में कितना अंतर चाहिए? फिर से, डी एंड डी को देखें। वहां, उनके पास 6 बुनियादी आँकड़े हैं। ये आँकड़े वर्णों के लिए विभिन्न आयामों को परिभाषित करते हैं। उच्च निपुणता वाले चरित्र में निम्न निपुणता वाले चरित्र से अलग विकल्प होंगे।

लेकिन उस अंतर के लिए भी सभी नियमों में वापस आता है। एक उच्च निपुणता का मतलब होता है बोनस से लेकर हमलों तक; आप अधिक बार हमलों पर हमला कर सकते हैं। तो बस स्ट्रेंथ और निपुणता के बीच, आपके पास खेलने के दो आयाम हैं: बनाम बनाम हाथापाई।

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

आपको विकास प्रगति कार्यों और इस तरह परिभाषित करने से पहले आँकड़ों के आसपास बुनियादी नियमों को परिभाषित करने की आवश्यकता है । आपको बारीकियों की आवश्यकता नहीं है; आपको यह कहने की ज़रूरत नहीं है कि "शक्ति का प्रत्येक बिंदु यादृच्छिक रोल में जोड़ा जाता है ताकि यह निर्धारित किया जा सके कि हाथापाई का दौरा पड़ता है या नहीं।" आपको मेटा-नियमों की आवश्यकता है जैसे "निपुणता हमलावरों को बेहतर बनाती है।" आप यह पता लगा सकते हैं कि यह बाद में उन्हें कैसे बेहतर बनाता है।

पात्रों की प्रगति के लिए अलग-अलग तरीके हैं। एक आम पुराने स्कूल की फाइनल फंतासी चाल थी, बस चरित्र के स्तर को उनकी क्षति गणनाओं के हिस्से के रूप में उपयोग करना। यह केवल उचित स्टेट द्वारा स्तर को गुणा कर सकता है, या इसका मतलब चरित्र के स्तर पर फ़ंक्शन को लागू करना हो सकता है। कहो, एक द्विघात प्रगति, ताकि एक चरित्र की क्षति की दर प्रति स्तर बढ़ जाए।

हालाँकि आप चाहते हैं कि आपके लड़ाकू कार्य काम करें, उन्हें प्रगति को ध्यान में रखना होगा। आपके कार्यों को प्रगति के लिए हुक की आवश्यकता होती है।

D & D में प्रगति का एक मज़ेदार तरीका है। यह भाग वर्ग-आधारित है; हर बार जब आप स्तर में ऊपर जाते हैं, तो आपको अपने चरित्र वर्ग के आधार पर, आपके हिट-टू में नए वर्ग के फीचर्स और फ्लैट बोनस मिलता है। हालांकि, कुछ क्लास फीचर्स अपने आप बेहतर हो गए। D & D में मंत्रों की प्रगति उनके भीतर निर्मित होगी। एक जादू पहले के ऊपर एक वर्तनीकार के 2 स्तरों के 1d4 नुकसान कर सकता है। तो हर दूसरे जादूगर का स्तर उस मंत्र को बेहतर बनाता है।

D & D ने आइटम-आधारित प्रगति का भी भारी उपयोग किया। चौथे संस्करण तक, आइटम-आधारित प्रगति मुख्य रूप से लड़ने वाले पात्रों के लिए थी, लेकिन पुराने संस्करणों में भी, वर्तनीकारों के पास ऐसे आइटम थे जो उन्हें स्टेट बफ़र्स या अन्य समायोजन (या फ्लैट आउट ने उन्हें मंत्र दिए) थे।

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


6
" आपकी वास्तविक समस्या है: आपने अपने आँकड़ों को परिभाषित करने से पहले परिभाषित किया है कि उन आँकड़ों का वास्तव में क्या मतलब है। आप गाड़ी को घोड़े के आगे रख रहे हैं। " मैं दृढ़ता से असहमत हूँ; अपने आप में संख्याएं उसकी शक्ति के खिलाड़ी को सूचित करने का एक तरीका है, आदि यह गेम डिज़ाइन का हिस्सा है। यदि आप दूसरे तरीके से आगे बढ़ते हैं, तो आप 147hp के साथ एक अंत बॉस के साथ समाप्त हो सकते हैं ... जो वास्तव में चाहता है?
जोनाथन कॉनेल

8
खैर, सारेवॉक (बाल्डर्स गेट में) केवल 135 एचपी था ...
मार्टिन सोज्का

12
@ 3nixios: अगर अंत बॉस के पास 147Hp हो तो क्या फर्क पड़ता है? क्या मायने रखता है कि अंतिम बॉस चुनौतीपूर्ण, दिलचस्प और हार के लिए पुरस्कृत करने वाला है। एचपी के बहुत से मालिक दिलचस्प नहीं है; यह समय की बर्बादी है। एक बॉस जो आपकी पार्टी के साथ खिलवाड़ कर सकता है, जिसके लिए विशेष रणनीति की आवश्यकता होती है जो पल-पल बदलती रहती है, इसके लिए आवश्यक है कि आपको अपनी अधिकतम क्षमता के लिए हर क्षमता का उपयोग करना होगा, यही एक महान अंतिम बॉस के लिए बनाता है। मैं किसी भी दिन Hp के उबाऊ ब्लॉक पर दिलचस्प 147Hp बॉस लूंगा।
निकोल बोलस

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

2
@ 3nixios: लेकिन यह मेरी बात का हिस्सा है। डी एंड डी में निपुणता हाथापाई विशेषज्ञ पात्रों और रेंज किए गए विशेषज्ञों के बीच भेदभाव की अनुमति देने के लिए मौजूद है। अगर हाथापाई और राउंडेड हमलों (और उदाहरण के लिए कई एफएफ गेम्स में) की कोई अवधारणा नहीं थी, तो इस अंतर को मौजूद होने की आवश्यकता नहीं होगी। आप 6 के बजाय 5 आँकड़ों से दूर हो सकते हैं। Hp रेंज को परिभाषित करना एक बात है, लेकिन आपके पास जो मूल आँकड़े हैं, उन्हें परिभाषित करना एक और बात है। इससे पहले कि आप यह समझ सकें कि स्टैट्स को नियमों की आवश्यकता होती है, और आपको यह जानना होगा कि आप क्या करना चाहते हैं, इससे पहले कि आप कह सकें कि यह एक अच्छा विचार है।
निकोल बोलस

22

आपके सूत्र बहुत जटिल लगते हैं। मुझे यकीन नहीं है कि पेशेवर आरपीजी डेवलपर्स इसे कैसे संभालते हैं, लेकिन मैं सरलता पर ध्यान देने की सलाह दूंगा। सबसे सरल संभव फार्मूला खोजने की कोशिश करें जो अभी भी आपके द्वारा उपयोग किए जाने वाले आँकड़ों की सीमा को सम्मिलित करता है। उदाहरण के लिए, क्या आप गणना के दौरान नुकसान को संशोधित करने के बजाय, गणना के नुकसान से पहले एक दूसरे को संशोधित कर सकते हैं? एक बार जब आप मन में एक सूत्र प्राप्त कर लेते हैं, तो मैं इसे संभावित मूल्यों की एक विस्तृत श्रृंखला के लिए रेखांकन करने की कोशिश करूँगा कि यह कैसे खिलाड़ियों के स्तर के रूप में व्यवहार करेगा। जाहिर है आपके पास जितने कम वैरिएबल होंगे, वे उतने ही अधिक व्यावहारिक होंगे।

इसके अतिरिक्त, BlueRaja ने एक महत्वपूर्ण विवरण प्रदान किया कि आप उच्च स्टेट स्तर पर अप्रत्याशित मान क्यों देख रहे हैं। अहस्ताक्षरित प्रकारों का उपयोग करना और ओवरफ्लो के लिए जांच करना महत्वपूर्ण होगा।


10
सरल के लिए +1। किसी को भी मुश्किल से जटिल सामान बना सकते हैं, हालांकि यह एक अच्छा खेल नहीं है।
आआआआआआआआआ आआआआआम

8
@ रैंडॉल्फ जब तक आप एक Apple 2 या कुछ पर नहीं चल रहे हैं, यह अत्यधिक संदिग्ध है कि यहां एक गुणा या विभाजन को हटाने और किसी भी औसत दर्जे में प्रदर्शन को प्रभावित करने वाला है।
तेतड़

8
@ रैंडॉल्फ एक आरपीजी में एक बड़ी लड़ाई का मतलब कुछ हो सकता है जैसे कि प्रति सेकंड 10 क्षति गणना, एक आधुनिक सीपीयू प्रति सेकंड कई बिलियन ऑपरेशन कर सकता है। आप सुरक्षित रूप से मान सकते हैं कि इस तरह के "दृश्यमान" गणित का प्रदर्शन प्रभाव नगण्य है। इस मामले में सरल उन लोगों के लिए है जो डिजाइन करते हैं और जो हमारे कंप्यूटर के लिए नहीं बल्कि गेम खेलते हैं।
आआआआआआआआआ आआआआआ

6
@ रैंडॉल्फ रिचर्डसन: मुझे लगता है कि आप इस मामले में लक्ष्य को थोड़ा याद कर रहे होंगे। एक MMO के लिए एक अच्छा फास्ट नो-फैट प्रोटोकॉल सर्वोपरि है, और भौतिकी जैसे भारी कार्यों को प्रदर्शन को ध्यान में रखकर डिजाइन करने की आवश्यकता है। लेकिन नुकसान की गणना कोर गेमप्ले है, इसे गेमप्ले को ध्यान में रखकर डिजाइन किया जाना चाहिए, यदि आप प्रदर्शन संबंधी चिंताओं को ऐसे प्रश्न में लाते हैं जिससे आप गेमप्ले भाग से समझौता कर सकते हैं। प्रदर्शन के बारे में बात करें जब यह मायने रखता है, तो आप यह धारणा देने का जोखिम उठाते हैं कि यह अनुकूलन करने के लिए एक महत्वपूर्ण क्षेत्र है, इस प्रकार वास्तविक प्रदर्शन पापियों से ध्यान चुरा रहा है।
आआआआआआआआआआआआआआआआआआआना

5
@ रैंडल्फ़: मैं कुछ भी नहीं कर रहा हूँ; मैं कह रहा हूँ कि एक अड़चन नहीं है कि कुछ का अनुकूलन समय की बर्बादी है।
निकोल बोलस

11

लेट गेम शत्रु एचपी आमतौर पर निचले लाखों में होगा (एक सुपर बॉस जिसमें अधिकतम ~ 12 मिलियन होंगे)।

इससे मुझे समस्या है। आपको अपने बॉस का निर्माण करना चाहिए जो आपको लगता है कि आपके खिलाड़ियों को संभालने में सक्षम होना चाहिए। आप अपने खिलाड़ियों का निर्माण कर रहे हैं और जो आप चाहते हैं, उसके आसपास के फॉर्मूले का मुकाबला करें।

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


4
+1 दुश्मन का स्वास्थ्य इस बात पर आधारित होना चाहिए कि खिलाड़ी उस बिंदु पर क्या कर सकता है, अन्य तरीके से नहीं।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

7

आपके द्वारा उद्धृत उन संख्याओं की संभावना सिर्फ एक सिमुलेशन से जुड़ने से होती है, हजारों रनों से अधिक।

तो आपको एक अनुकार लिखना चाहिए कि एक स्तर 20 वर्ण बनाएं, और देखें कि वह 200 लड़ाइयों के माध्यम से किराए पर कैसे लेता है या दुश्मन के प्रकारों के खिलाफ वह उस बिंदु पर लड़ रहा है। इसे फिर से एक स्तर 30 के चरित्र के लिए करें (संभवतः दुनिया के अगले भाग में)।

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


5

मुझे लगता है कि आप गलती करते हैं कि आप एक उचित डिज़ाइन को ध्यान में रखे बिना एक सूत्र बनाना चाहते हैं।

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

दुश्मनों के "प्रकार" को लागू करने की कोशिश करें, उदाहरण के लिए "बख्तरबंद" => एक खिलाड़ी पर हमला अगर यह प्रकार का है तो यह 50% तक कम हो जाता है। अमूर्त के लिए एक लड़ाई प्रवाह न बनाएं, इस बारे में सोचें कि क्या प्रासंगिक है और क्या नहीं है।

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


मैं पहले से ही इस तरह की चीजों को शामिल कर रहा था - जब तक कि हमले को कवच भेदी के रूप में चिह्नित नहीं किया जाता है या एक% आधारित क्षति फार्मूला का उपयोग नहीं करता है, तब तक कवच रेटिंग को कम कर देता है
user127817

5

यद्यपि मेरे डिजाइन ने स्प्रेडशीट चरण नहीं छोड़ा है, मैं आरपीजी के लिए गणित डिजाइन करने के बारे में एक निष्कर्ष पर आया हूं:

उन्हें यथासंभव सरल रखें। जिस डिजाइन पर मैं काम कर रहा हूं, उसमें मैंने बहुत ही सरल फॉर्मूलों का इस्तेमाल किया है, जो सेमी क्लास-लेस सिस्टम के लिए पर्याप्त हैं। अर्थात। फायरबॉल स्पेल में 30 का नुकसान होता है।

BaseSpellDamage * Attribute (5 * 6)

हम इस तरह से संशोधक भी जोड़ सकते हैं:

Result = (BaseSpellDamage * Attribute) (5*6)
Result = Result + (Result * 50%) (30 = 30 + (30 * 50%))

तो अंतिम परिणाम 45 नुकसान होगा। मैंने पाया कि प्रीसेंटेज मल्टीप्लायरों का उपयोग करना बहुत आसान है, और इसके साथ काम करने के लिए बहुत ही स्केलेबल समाधान है। हम चाहते हैं कि परिणाम जानने के लिए जटिल गणित के साथ कुछ विषम संख्याओं के साथ आने के बजाय।

अब हम क्षति पुनर्जीवन को शांत कर सकते हैं, जो कि निर्धारित प्रकार के नुकसान के खिलाफ बचाव को शांत करेगा। दो दृष्टिकोण हैं और मैंने ईमानदारी से निर्णय नहीं लिया है जो बेहतर होगा, लेकिन वे दोनों सरल और व्यवहार्य हैं:

DamageResult = Resistance * Damage ( 50% * 45)

तो अंतिम परिणाम 22 पद पर लिया जाएगा (मैंने आंशिक परिणाम में कटौती की है)।

अन्य सूत्र:

DamageResult = Damage - Resistnace (45 - 22).

तो अंतिम परिणाम 23 होगा। यदि ऐसा होता है कि प्रतिरोध क्षति से बड़ा है तो चरित्र केवल किसी भी क्षति को दूर नहीं करता है। बेशक यह सुनिश्चित करने के लिए आप पर निर्भर है कि ऐसी स्थिति के लिए कोई जगह नहीं है, सिवाय इसके कि आप चाहते हैं कि यह मामला हो।

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

संभवतया उस मामले में इष्टतम समाधान दोनों दृष्टिकोणों का उपयोग करना है जब वे फिट होते हैं। या अगर आप 1000 से शुरू होने वाले बड़ी संख्या के प्रशंसक हैं।

और समापन पर। मैं इस निष्कर्ष पर पूरी तरह से नहीं आया हूं। मैंने वास्तव में विभिन्न आरपीजी मैनुअल (हीरो, डीएनडी) को पढ़ने में काफी समय बिताया है। विशेष रूप से डीएनएनडी मददगार था, क्योंकि यह समान सिद्धांतों पर काम करता है, लेकिन विशेषताओं के बजाय इसके सूत्रों के लिए स्तरों का उपयोग कर रहा है, वे कभी-कभी अधिक जटिल हो सकते हैं। मैंने यहां जो प्रस्तुत किया है, उसकी तुलना में।

किसी भी चढ़ाई में, सबसे अच्छी सलाह है: उन्हें यथासंभव सरल रखने की कोशिश करें। किसी भी उन्नत गणित, या लंबे समीकरणों का उपयोग न करें, क्योंकि वे त्रुटियों से ग्रस्त हैं, जो कि स्पॉट करना मुश्किल है, जब आपको एक ही समय में 87234 अन्य चीजों से निपटना पड़ता है।


3

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

विशुद्ध रूप से स्टेट-बेस्ड

यह एक अच्छा विचार है यदि आप चाहते हैं कि आपके चरित्र दुश्मनों के स्तर के अनुसार लचीला हों, तो वे चुनौती दे सकते हैं। इस तरह का एक सूत्र केवल खिलाड़ी के आंकड़ों, उनके उपकरणों और दुश्मनों के आंकड़ों पर निर्भर करने वाला है। ये सूत्र आमतौर पर काफी सरल होते हैं। अंतिम काल्पनिक किंवदंती II ( उदाहरण के लिए http://www.shenafu.com/ffl2/weapon.php देखें) , ऐसे हथियार हैं जो सरल सूत्र के आधार पर नुकसान करते हैं:

(Stat+StatBonus)*WeaponStrength - Defense*4

इस तरह का एक फार्मूला अच्छा है यदि आप क्षति का आकलन करने का एक बहुत ही सरल तरीका चाहते हैं, या कौशल और तात्विक कमजोरियों जैसे अन्य कारकों के आधार पर नुकसान को संशोधित करने के लिए एक त्वरित कूद बिंदु है।

यह दिखाने के लिए कि इस तरह का सूत्र वास्तव में कितना व्यापक हो सकता है, इन्फ्लेशन आरपीजी, एक एंड्रॉइड और आईओएस गेम (देखें http://inflation-rpg.wikia.com/wiki/Calculations ) के लिए क्षति सूत्र पर विचार करें । सूत्र भारी रूप से स्टेट और उपकरण दोनों पर निर्भर है। प्रत्येक उपकरण के दो आँकड़े होते हैं - एटीके स्टैट के लिए एक बोनस और एक गुणक मूल्य। उपकरण के कुछ टुकड़ों में कम गुणक होते हैं, लेकिन उच्च बोनस, अन्य में कम बोनस लेकिन उच्च गुणक होते हैं। केवल 10 एटीके के साथ एक चरित्र के लिए, बैटल एक्स इसके साथ 5000 एटीके बोनस है लेकिन कम 145% गुणक एक शानदार विकल्प है। कुल नुकसान है (10+5000)*1.45 = 7264, लेकिन एस्टोक 0 बोनस और 300% के गुणक के साथ एक खराब विकल्प है - नुकसान है (10+0)*3 = 30। बाद में खेल में, 5000 हमले वाला एक चरित्र हथियार स्विच करना पसंद करेगा।

स्टेट- और स्तर-आधारित:

इसका एक अच्छा उदाहरण अंतिम काल्पनिक V, VI और अंतिम काल्पनिक XII है ( उदाहरण के लिए http://www.gamefaqs.com/ps2/459841-final-fantasy-xii/faqs/45900 देखें )। FFXII में तलवारों का सूत्र है:

DMG = [ATK x RANDOM(1~1.125) - DEF] x [1 + STR x (Lv+STR)/256]

और सीढ़ियों के लिए क्षति का सूत्र है:

DMG = [ATK x RANDOM(1~1.125) - DEF] x [1 + STR x (Lv+MAG)/256]

वे बहुत समान हैं, लेकिन ध्यान दें कि तलवार का फॉर्मूला केवल ताकत और स्तर पर निर्भर करता है, जबकि स्टाफ फॉर्मूला ताकत, जादू और स्तर पर निर्भर करता है। इस तरह के सूत्र का लाभ यह है कि यह खिलाड़ी को विकास के दो रास्ते देता है - उनके आँकड़े बनाना, या उनके स्तर का निर्माण करना। नकारात्मक पक्ष यह है कि यह पात्रों को दोनों तरीकों से भी दंडित करता है। यह वास्तव में समाप्त हो रहा है कि खिलाड़ी अपने नुकसान के आउटपुट को बढ़ाने के लिए स्तर को अनुमति दे रहा है (एफएफएक्सआईआई के लिए यह मात्रा उनके नुकसान के उत्पादन को बढ़ाकर ~ स्तर 50 के स्तर के आसपास प्रति स्तर 50 के स्तर पर 4% तक बढ़ जाती है जब आप स्टेटस गेन में फैक्टर करते हैं) आराम का स्तर।

नियत क्षति:

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

यह एक अच्छी कार्यप्रणाली है यदि आप ऐसे हथियार रखना चाहते हैं जो पात्रों के बीच स्थानांतरित करना आसान हो या क्षति के आउटपुट को सावधानीपूर्वक नियंत्रित करना हो जो खेल के कुछ बिंदुओं पर वर्णों को कर सकते हैं यदि आप जानते हैं कि उनके पास कौन से उपकरण हैं (ड्रॉप टेबल, चेस्ट के माध्यम से)। , और टेबल चोरी)।

एक अन्य स्थान जिस पर आप चलेंगे, वह अंतिम काल्पनिक में कुछ विशेष प्रकार के उपकरणों या वस्तुओं के साथ है। उदाहरण के लिए, 1000 सुई हमेशा 1000 नुकसान का सामना करती है। अंतिम काल्पनिक किंवदंती द्वितीय में, मार्शल आर्ट सूत्र के आधार पर नुकसान का सौदा करते हैं:

Damage = WeaponStrength*(90-UsesLeft) - 4*Defense

फ़ाइनल फ़ैंटेसी XII में बंदूकों के लिए कुछ हद तक नुकसान है, सूत्र के अनुसार नुकसान से निपटने:

DMG = [ATK x RANDOM(1~1.125)]^2

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


2

अंतिम फंतासी श्रृंखला के सभी खेलों में 255 की स्टेट कैप होती है क्योंकि आप जिस समस्या का सामना कर रहे हैं। स्तर पर 100 आँकड़े 255 होंगे।

आप क्षमताओं और उपकरणों के साथ आँकड़े बढ़ाने के बारे में कहते हैं और मुझे याद है कि यह खेलों में है लेकिन जिस तरह से यह किया गया है वह सूत्र में है। वहाँ एक अतिरिक्त कदम है कि क्षमता और उपकरण संशोधक के लिए जाँच करता है और आँकड़ों के उपयोग के बाद उन्हें लागू करता है।

आपके मामले में यह चरण 21 होगा: क्षमता संशोधक चरण 22 लागू करें: उपकरण संशोधक चरण 23 लागू करें: अंतिम क्षति।

यदि आप अंतिम फंतासी फ़ार्मुलों के लिए Google में रुचि रखते हैं, तो वे वहां से बाहर हैं। मेरे पास वास्तविक लड़ाई यांत्रिकी के एआई सहित अंतिम फंतासी 4, 6, 7 और 9 के लिए हैं। लोगों ने उन्हें मूल गेम से क्रैक किया जब वे एमुलेटर के लिए रोम बना रहे थे। वहाँ नहीं है कि अगर आप काफी मुश्किल लग रहे खोजने के लिए मुश्किल है।

सूत्र बनाने के लिए सबसे बड़ी बात परीक्षण है। दोनों तरफ अपनी लड़ाई बुद्धि एआई चलाने के लिए एक स्क्रिप्ट सेट करें और कई सौ लड़ाईएं चलाएं। राक्षसों और आँकड़ों को अलग-अलग करें और देखें कि क्या यह काम करता है या यदि lv 40 सब कुछ मारता है, तो यह पूरी तरह से संभव है कि एक मालिक वास्तव में योग्य को मारना असंभव है। एक टिप सभी एनीमेशन को बंद करने के लिए होगा क्योंकि यह प्रभावशाली है कि एआई कितनी तेजी से लड़ाई कर सकता है जब कोई नहीं देख रहा हो।


2

मैं सोच रहा था कि लोग वास्तव में उचित पैमाने पर नुकसान के फार्मूले कैसे विकसित करते हैं?

पहले 2 चीजें हैं:

  • तय करें कि आप 'सही' से क्या मतलब रखते हैं - 'सही नुकसान' के बारे में आपका क्या विचार है?
  • तय करें कि आप 'स्केल' से क्या मतलब रखते हैं - किन मूल्यों में बदलाव होने जा रहा है, और आप उन बदलावों का क्या प्रभाव चाहते हैं?

एक बार जब आप जानते हैं कि, आपके पास गणितीय सूत्रों का उपयोग करने के लिए पर्याप्त जानकारी है, जिसका ब्लूराज ने अपने उत्तर में उल्लेख किया है । बस याद रखें कि 'उचित' क्षति के फार्मूले जैसी कोई चीज नहीं है - बस एक ऐसा जो आपके डिजाइन के अनुभव से मेल खाता है जो आप चाहते हैं कि आपके खिलाड़ी हों।


यह एक बहुत ही बेकार टिप्पणी है। यह "मुझे नहीं पता" तक बोला जाता है और इसकी वजह से यह समय की बर्बादी है। हटाने के लिए फ्लैगिंग।
क्रीथिक

1

वैकल्पिक रूप से, यदि आपकी तलाश बहुत ही सरल फॉर्मूला की है, तो निम्न कार्य करें:

(ध्यान दें कि यह एक सूत्र के लिए मेरा विचार है,)

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

फिर, MovePower नामक एक चर बनाएं। यह चाल पर निर्भर करेगा, और बेहतर चाल से एक बेहतर मूवपावर होगा। मेरे सूत्र के लिए, सामान्य "अटैक" कमांड में 5 का मूवपॉवर है।

फिर, रक्षा को प्रतिशत आधारित स्टेट बनाएं (और, निश्चित रूप से, क्षति पर 100% रक्षा प्राप्त करना असंभव है)

फिर, हमले के चरण के दौरान, बस चाल शक्ति द्वारा हमले की मूर्ति को गुणा करें, और दुश्मनों की रक्षा के आधार पर क्षति को हटा दें! सरल!

आप अन्य मॉडिफ़ायर्स का भी विकल्प चुन सकते हैं, जैसे कि अगर चाल हिट होगी (सटीकता), अगर इस कदम का एक और जोड़ा प्रभाव (जैव, जहर,) है और हिट करने के लिए चुनते हैं, (सटीकता फिर से,) क्षति उन्नयन / डाउनग्रेडिंग है आँकड़ों को बदलने वाली चालें, ect। इसके साथ मजे करो!


एक अन्य विकल्प जो कवच को प्रतिशत के मुद्दे के रूप में बचा लेता है (इस प्रकार इसके मूल्यों को समान दिखने की अनुमति देता है) एक गुणक के रूप में एक तुलना के रूप में क्षति बनाम कवच की गणना करना है। आधार के रूप में Ln (atk / def) जैसा कुछ। यह रक्षात्मक कवच आँकड़ों को स्केल करने की अनुमति देता है क्योंकि समय उसी शैली में चलता है। पता लगाएँ कि जब क्षति और कवच आँकड़े समान हैं और वहां से एक्सट्रपलेट के लिए अपनी मूल वांछित क्षति सीमा कैसे प्राप्त करें। यह "कवच से बचने" के हमलों को बनाने के लिए एक चाल की आवश्यकता है, लेकिन यह रचनात्मकता का हिस्सा है।
Avi

1

संक्षेप में, आपको दो चीजों का पता लगाने की आवश्यकता है।

  1. बड़ी संख्या के साथ कम्प्यूटेशन को ठीक से प्रीफ़ॉर्म कैसे करें।
  2. आप कैसे चाहते हैं और कमजोर और मजबूत विरोधियों के खिलाफ व्यवहार करने के लिए हमले के नुकसान की उम्मीद करते हैं।

1

आप या तो उपयोगकर्ता doubleया एक बड़ी संख्या पुस्तकालय कर सकते हैं। बड़ी संख्याओं के साथ गणना करना (जैसे क्लिक / निष्क्रिय खेल अक्सर ऐसी बड़ी संख्या पुस्तकालयों पर निर्भर करता है)। आपके मामले में, संख्याएं अपेक्षाकृत कम हैं, इसलिए 64-बिट फ्लोटिंग पॉइंट का उपयोग करने से आवश्यक लचीलापन मिलेगा।

2

आप खेल को कैसे व्यवहार करना चाहते हैं? कुछ उदाहरण:

  • एक दृष्टिकोण का उपयोग ATKयह तय करने के लिए करना है कि आप हिट करते हैं या नहीं और एक मृत क्षति को हथियार के आधार पर रेटिंग के साथ रोल करें: उदाहरण के लिए लंबी तलवार 1d8, दो हाथ की तलवार 1d10, डैगर 1d4। यह आश्चर्यजनक रूप से अच्छी तरह से पैमाने पर नहीं होगा यदि एचपी आगे और पीछे बढ़ सकता है। यदि आप ATKयह निर्धारित करने के लिए उपयोग करते हैं कि क्या अक्षर हिट या मिस करते हैं, तो आप ATKक्रिट निर्धारित करने के लिए * 80% के साथ सफल हिट के बाद एक और थ्रो कर सकते हैं ।
  • यदि आप एक क्षति सूत्र का उपयोग करना चाहते हैं, तो क्षति सूत्र उतना ही सरल हो सकता है जितना (ATK - DEF) +/- 20%कि वर्ल्ड्स एंड (आरपीजी रणनीति गेम) में है। इसका मतलब यह होगा कि एक प्रतिद्वंद्वी के खिलाफ मजबूत हमलों के साथ DEFकोई नुकसान नहीं कर सकता है। Instace के लिए ATK = 10, ENEMY DEF = 12, (ATK - DEF) = -2और यह भी मतलब है कि उच्च हमले बनाम थोड़ा कम डीईएफ़, थोड़ा नुकसान संभावित कर सकता है, हिमाचल प्रदेश में वृद्धि के साथ लंबे समय तक लड़ाई बना रही है। उदाहरण के लिए ATK = 1010, ENEMY DEF = 1005नुकसान 5 होगा। नुकसान भी नाटकीय रूप ATKसे बढ़ेगा यदि छोटे प्रतिशत से वृद्धि हुई है। उदाहरण के लिए ATK = 1055, केवल 5% ATKमूल्य में वृद्धि के साथ 900% अधिक नुकसान करेगा ।
  • इससे बचने के लिए, आप ऐसा कुछ कर सकते हैं ATK / DEF * WEAPON_DAMAGEयह धीरे-धीरे बड़े पैमाने पर होगा जब वृद्धि की जाती है ATKया DEFकमजोर हमलावर को एक प्राणी को मजबूत करने के लिए नुकसान की अनुमति देता है DEF

tl; dr आपको अपने नंबरों का जिम्मेदारी से इलाज करना होगा और यह पता लगाना होगा कि आप गेम को विभिन्न स्थितियों में कैसे व्यवहार करना चाहते हैं। कुछ सवाल खुद से पूछने के लिए:

  1. कितने हमले (मोड़), उस बॉस / मिनियन को हराने के लिए करना चाहिए?
  2. विभिन्न कौशल, शौकीन, वाद-विवाद को xयुद्ध को कैसे प्रभावित करना चाहिए ? क्या यह निराशाजनक होना चाहिए, जीतने की y%संभावना कम / अधिक होनी चाहिए ?
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.