मैं एक ऐसे खेल का बीटा-परीक्षण कर रहा हूं जो वर्तमान में सौर स्थानों ( स्टार एम्पायर एलीट ) का एक सरल संस्करण है , और मैंने अमित के समीकरणों (ऊपर) के समान कुछ का उपयोग करके शुरू किया। विशेष रूप से, मुझे लड़ाई के तीन चरण होने का विचार पसंद आया, जहां आपको तीन में से दो जीतने थे। लेकिन मैं लड़ाई में यादृच्छिकता का एक तत्व भी पेश करना चाहता था, और इसके लिए मैं कुछ टेबलटॉप गेम्स से प्रभावित था।
यदि खेल पैमाने पर है, तो प्रसंस्करण एक चिंता का विषय है, इसलिए मैं ऊपर दिए गए sum1stolemyname द्वारा सुझाई गई विधि का पालन नहीं करना चाहता, हालांकि यदि आपका गेम क्लाइंट का उपयोग परिणामों को संसाधित करने के लिए कर रहा है, जैसा कि एक सर्वर के विपरीत है, तो यह एक अच्छा लगता है अच्छी एप्रोच।
मैंने लड़ाई को दो चरणों में तोड़ने का फैसला किया (अमित के मॉडल में तीन के अनुरूप): हवा और जमीन। मैं हमले और बचाव शक्ति की गणना करता हूं, और हमले की ताकत को एक अंश से नीचे समायोजित करता हूं (रक्षक को लाभ देने के लिए)। उस बिंदु पर, यदि हमले की ताकत और बचाव की शक्ति बराबर है, तो हमले में जीत की 50% संभावना है। वहां से, मैं बचावकर्ता की तुलना में हमलावर की ताकत को कम या ज्यादा (या कम) के आधार पर जीत के प्रतिशत की संभावना को समायोजित करता हूं। यहाँ हवा के लिए कुछ सरलीकृत समीकरण हैं:
air_attack_strength = 1 * soldiers + 10 * fighters
air_defence_strength = 2 * soldiers + 25 * stations
differential = (air_attack_strength - air_defence_strength) * constant
chance_of_victory = 50 - differential
मैं निर्दिष्ट करता हूं कि chance_of_victory कभी भी 80 से बड़ा या 5 से कम नहीं हो सकता है। वहां से, मैं सिर्फ 100 में से एक यादृच्छिक संख्या उत्पन्न करता हूं, और फिर उस लड़ाई को आगे बढ़ाता हूं जिसके परिणामस्वरूप भूमि की लड़ाई होती है।
एक चीज जो मैंने अपनी संतुष्टि से हल नहीं की है, वह है आकस्मिक दर। लेकिन मैं सोच रहा हूं कि यह पता लगाने का एक अच्छा तरीका यह होगा कि आप चेंज किए गए रैंडम नंबर की chance_of_victory की तुलना करें, और इसका उपयोग करें कि हमलावर-बचाव बलों के एक अंश को हताहत के रूप में लें।