गेमेडेव में सबसे मौलिक नियमों में से एक है अपने गेमप्ले को परिभाषित करने वाली सभी संभावित बाधाओं का शोषण करके अपने एल्गोरिदम से बीजेबर को अनुकूलित करना - यह मुख्य कारण है कि आप किसी दिए गए शीर्ष पर बने जंगली रूप से अलग-अलग गेम नहीं देखते हैं कंपनियां गेम इंजन, उन्होंने अपनी बाधाओं का इतना कुशलता से शोषण किया है कि वे इन बाधाओं के भीतर नहीं होने वाली किसी भी चीज़ से निपट नहीं सकते हैं।
उस ने कहा, आप कहते हैं कि इकाइयां सीधे लाइनों में जाती हैं - और आप कहते हैं कि खिलाड़ी 3000 इकाइयां कर सकते हैं - भले ही मुझे लगता है कि आठ खिलाड़ियों के लिए 3000 इकाइयां हैं, यह प्रति खिलाड़ी 375 इकाइयां हैं, इसलिए मुझे लगता है कि मैं सुरक्षित हूं यह मानते हुए कि गेम खेलने के प्रत्येक चरण पर (और मुझे लगता है कि प्रत्येक चरण में आपके द्वारा ऊपर वर्णित गणना शामिल है) कि अधिक इकाइयां दिशाओं को बदलने वाली इकाइयों की तुलना में अपनी दिशा नहीं बदलेगी। उन है कि अंतिम चरण में दिशा बदलने किया था, और उन है कि नहीं था -
तो, अगर यह सच है, तो आप दो समूहों में अपने सभी टुकड़ों को विभाजित करना चाहते हैं।
उन लोगों के लिए, आपको कुछ दो विरोधी बलों की इकाइयों के लिए कुछ कैलुलेटिंग करने की आवश्यकता है, आप पूछना चाहते हैं कि 'यूनिट ए को यूनिट बी कब मिलेगा, न कि यूनिट ए और न ही इकाई बी दिशा या गति को बदल देगा ? (आप त्वरण/विलुप्त होने से निपट सकते हैं, लेकिन फिर यह अधिक जटिल हो जाता है) - इसकी गणना करने के लिए आपको पहले यह निर्धारित करने की आवश्यकता है कि यूनिट ए और यूनिट बी पर ट्रैक्टर यात्रा कर रहे हैं या नहीं (सरल 2 डी लाइन चौराहे की गणना, एक के साथ संयुक्त गणना जो आपको बताती है कि प्रत्येक इकाई इस छेड़छाड़ को हिट करती है) - अगर वे नहीं करते हैं, और वे अब एक-दूसरे को नहीं देख पा रहे हैं, तो वे कभी-कभी एक दूसरे को नहीं देख पाएंगे जब तक कि उनमें से कम से कम एक दिशा बदल नहीं लेता। यदि वे छेड़छाड़ करते हैं, तो आपको पहली और दूसरी इकाई चौराहे के बिंदु से गुजरने के बीच के समय अंतर की गणना करने की आवश्यकता है - यदि यह दूरी एलओएस रेंज से अधिक है, तो ये इकाइयां एक-दूसरे को कभी नहीं देखेगी जब तक कोई दिशा बदल नहीं लेता - यदि यह अंतर एलओएस रेंज से कम है तो कुछ और (लहर हाथ जोर से) गणना आपको बताएंगे जब यह धन्य घटना होगी।
अब, आपके पास जो तत्व है, वह उन तत्वों में विभाजित है जो कभी-कभी एक-दूसरे को नहीं देख पाएंगे और तत्व जो भविष्य में कुछ समय में एक दूसरे को देखेंगे - प्रत्येक चरण, आप बस उन इकाइयों से निपटते हैं जो बदले हैं दिशा और शेष इकाइयों के साथ उनकी बातचीत की गणना। (ओह, और उन इकाइयों से निपटें जिन्हें पिछली गणनाओं ने बताया था कि आप एक-दूसरे के विचार में आ जाएंगे - इन्हें एक डालने योग्य आदेशित संरचना में रखना याद रखें) आपने जो प्रभावी ढंग से किया है, वह आपके प्रश्न को बदलने के लिए सिस्टम के रैखिक व्यवहार का शोषण करता है करने के लिए 'जब इच्छा इकाई एक इकाई B देखें'
अब, ने कहा कि सभी को ' इकाई एक इकाई बी देखना है', इस स्थानिक डेटा संरचना जवाब पर छूट देने का नहीं है - यह एक अच्छा जवाब है - हालांकि, यह यादृच्छिक गति में इकाइयों से निपटने में भी सक्षम है, इसलिए आप इस प्रक्रिया को और अनुकूलित करने के तरीके पर विचार करना चाहते हैं - आपको क्रॉस क्षेत्र की दृश्यता से निपटने के बारे में भी सावधान रहना होगा, यानी दो अलग-अलग क्षेत्रों की सीमाओं पर इकाइयां हो सकती हैं एक दूसरे को देखने में सक्षम - यदि आपके पास टुकड़े हैं जो आप को पकड़ने के लिए जाते हैं, तो आप वैरिएबल आयामों के साथ एक स्थानिक डेटा संरचना गाएं, जवाब हो सकता है, जहां एक ही क्षेत्र में नहीं होने वाले टुकड़े एक दूसरे को देखने में सक्षम नहीं होने की गारंटी देते हैं।
मैं भी http://gamedev.stackexchange.com/ पर इस पूछ की सलाह देते हैं, अगर खेल प्रोग्रामिंग रत्न पुस्तकों में से एक में इस बारे में एक लेख (पहले तीन में से एक, मुझे लगता है।) था आप पहले से नहीं हैं – cHao
3000/8 = 375, एससी 2 में आपके पास अधिकतम 200 भोजन हो सकता है, जो 375 इकाइयों को ठीक से मैक्रो कर पाएगा! :) –
ओहके, आरटीएस = वास्तविक समय रणनीति! – Lazer