यादृच्छिक स्पॉन अंक मेला बनाना?

inappropriateCode 08/22/2017. 9 answers, 4.496 views
game-design level-design

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

स्पॉन पॉइंट्स को आकार देने या मानचित्र को बदलने का कोई तरीका है, ताकि:

  1. सभी खिलाड़ियों के पास आसन्न दुश्मनों की सीमित संख्या है।
  2. सभी खिलाड़ियों के पास आसन्न दुश्मनों का सामना करने का बराबर मौका है।
  3. मानचित्र आकार को खिलाड़ियों की संख्या के अनुपात में वृद्धि नहीं करना है।
  4. इन सीमाओं को मनमाने ढंग से अपरिवर्तनीय रिक्त स्थान के साथ लागू नहीं किया जाता है।

जवाब को बिल्कुल सही नहीं होना चाहिए, बस विकल्प से स्पष्ट रूप से बेहतर है। स्वागत बॉक्स में से बाहर स्वागत है।

5 Comments
10 Zibelas 07/28/2017
एक सर्कल में स्पॉन?
1 inappropriateCode 07/28/2017
@ ज़िबेलस पारंपरिक दृष्टिकोण, लेकिन आवश्यकता 3 का उल्लंघन करता है, और कई खिलाड़ियों के साथ यह एक विशाल मानचित्र और खाली इंटीरियर बनाता है।
4 Zibelas 07/28/2017
यह आपके प्रकार के खेल पर निर्भर करता है। (2 डी / 3 डी, respawn / आखिरी आदमी खड़े, आदि) बिल्कुल सही स्पॉन उस मामले में केवल गेंद के आकार की दुनिया पर संभव है (अधिक खिलाड़ी, करीब स्पॉन लेकिन आप गारंटी दे सकते हैं कि उनके पास एक ही दूरी है)। निश्चित सीमाओं के साथ 2 डी दुनिया पर आपके पास हमेशा कम सीमा वाले खिलाड़ी होते हैं क्योंकि आपके पास उन्हें उत्पन्न करने के लिए कोई जगह नहीं है। यदि यह एक 3 डी गेम है, तो आपके पास कई परतें हो सकती हैं।
1 RothX 07/28/2017
मुझे लगता है कि यह जानने में मदद करेगा कि आप किस प्रकार का खेल बना रहे हैं। यह किसी तरह के युद्ध खेल की तरह लगता है, लेकिन विवरण क्या हैं? क्या यह एक शूटर है? क्या आप अपने सभी हथियारों से शुरू करते हैं, या क्या आपको चीजों का पता लगाना और ढूंढना है? जीत की स्थिति क्या है? एक मैच कब तक रहने की उम्मीद है?
3 Jan 'splite' K. 07/28/2017
पूर्ण उत्तर के लिए नहीं, लेकिन मुझे लगता है कि हर कोई "निष्पक्ष और संतुलित स्पॉन" की कोशिश कर रहा है जो ... मजेदार नहीं है। उत्कृष्ट पब (और अन्य बैटल रोयाले) को देखते हुए: खिलाड़ियों को "स्पॉन" (अच्छी तरह से, कूद और जमीन ...) लगभग कहीं भी वे चाहते हैं - यदि आप संघर्ष और नाटक चाहते हैं, तो आप उस स्थान का चयन करते हैं जहां अधिकांश खिलाड़ी भूमि / स्पॉन होते हैं। हाइट जोखिम हाइट इनाम, लेकिन केवल अगर खिलाड़ी इसे चाहते हैं। आप जंगल में कहीं जमीन ले सकते हैं, आपको खुद को तैयार करने के लिए समय मिल गया है - कम जोखिम कम इनाम लेकिन कुछ खिलाड़ी इसे पसंद कर सकते हैं (जैसे, उदाहरण के लिए;))। यह यादृच्छिक नहीं है, इसके खिलाड़ियों की पसंद से।

9 Answers


Philipp 07/28/2017.

खिलाड़ियों को अपने शुरुआती स्थानों को खुद चुनने दें।

खेल की शुरुआत में, मानचित्र के केंद्र में सभी खिलाड़ियों को उड़ाएं, लेकिन अन्य खिलाड़ियों को नुकसान पहुंचाने के किसी भी साधन के बिना। इसके बाद उन्हें एक दूसरे को शामिल करने के लिए झुकाव और साधनों को हासिल करना होगा (आधार बनाना, हथियार उठाएं, संसाधन इकट्ठा करना आदि)

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

5 comments
14 Shashimee 07/28/2017
हंगर गेम्स 1 फिल्म स्पॉन्गिंग सिस्टम का उपयोग करने के लिए +1।
3 Philipp 07/28/2017
@Shashimee वास्तव में मेरा मानना ​​है कि मैंने इस विधि को पहले एनो 1602 में देखा है। मुझे यह भी विश्वास है कि शुरुआती सीएंडसी खेलों में से कुछ ने इसे वैकल्पिक मल्टीप्लेयर गेम विकल्प के रूप में देखा था (लेकिन मुझे यकीन नहीं है कि मुझे सही तरीके से याद है)।
3 Zibelas 07/28/2017
कम से कम 15 साल की उम्र के कमोडोर 64 के लिए @ फिलिप म्यूएल और आपको अपनी स्थिति भी चुनने दें :)
Dent7777 07/28/2017
फिर आप उस मुद्दे पर चले जाते हैं जहां आप अपने स्पॉन पॉइंट के बाद जाते हैं। यह निश्चित रूप से वांछित गेम मैकेनिक हो सकता है, लेकिन यह भी बेहद निराशाजनक हो सकता है और ऐसा कुछ नहीं जिसे आप तय करते हैं कि आप अपने गेम में चाहते हैं। एक अच्छा विचार यह होगा कि पात्र अदृश्य और खिलाड़ी-टकराव मुक्त हो जाएं, और खेल शुरू करने से पहले अपना आधार ढूंढें।
Kroltan 07/28/2017
वॉरक्राफ्ट 3 पर कस्टम गेममोड्स के "वैम्पीरिज्म" और "ट्री टैग" लाइन द्वारा उपयोग की जाने वाली यह विधि है। यह सभी काम करता है क्योंकि सभी खिलाड़ियों का सहयोग होता है (कम से कम शुरुआत में) और विरोधी टीम बाद में रिलीज़ होती है।

Theraot 07/28/2017.

आवश्यकताओं को समझना

  1. सभी खिलाड़ियों के पास आसन्न दुश्मनों की सीमित संख्या है।

सबसे पहले, हम खिलाड़ियों के स्पॉन पॉइंट्स के बारे में बात कर रहे हैं, न कि खेल में दिए गए बिंदु पर खिलाड़ियों की वर्तमान स्थिति। Just getting that out of the way.

जब हम ग्राफ के बारे में बात करते हैं तो निकटतम परिभाषित किया जाता है। हम मानचित्र के बारे में सोच सकते हैं जो नक्शे पर नेविगेशन का प्रतिनिधित्व करता है - अब से "ग्राफ" पर।

यदि नोड में सबसे अधिक स्पॉन पॉइंट हो सकता है, तो उनके बारे में "आसन्न" होने की बात समझ में आता है। नोट: मैं नोड्स को अधिकतर एक सिंगल स्पॉन पॉइंट के लिए बाध्य नहीं करूंगा, कारणों के बाद जो बाद में स्पष्ट होंगे।

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

नोट: नोड्स के आकार और आकार को जानें, और वास्तव में आसन्न नोड्स के साथ काम करें। नोड्स को एक बिंदु पर विचार न करें। लंबाई होने के रूप में कनेक्शन पर विचार मत करो। इसके अलावा, उत्तल नोड्स का उपयोग करें।

ग्राफ precompiled किया गया था (नक्शा एक डिजाइनर द्वारा बनाया गया था); अन्यथा, यदि नक्शा यादृच्छिक रूप से जेनरेट किया गया है तो इसे फ्लाई पर बनाया जा सकता है।

  1. सभी खिलाड़ियों के पास आसन्न दुश्मनों का सामना करने का बराबर मौका है।

मैं मानता हूं कि दुश्मन अन्य खिलाड़ी हैं। Again, just getting that out of the way.

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

चूंकि हम ग्राफ पर काम कर रहे हैं, इसलिए हम ग्राफ पर मानों को एनोटेट करेंगे।

  1. मानचित्र आकार को खिलाड़ियों की संख्या के अनुपात में वृद्धि नहीं करना है।

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

  1. इन सीमाओं को मनमाने ढंग से अपरिवर्तनीय रिक्त स्थान के साथ लागू नहीं किया जाता है।

मैं समस्या को हल करने के लिए बाधाओं को जोड़ने का इरादा नहीं रखता हूं। Au contraire , मुझे बाधाओं के आसपास काम करने की जरूरत है। अगर वे वहां नहीं थे, तो कार्यान्वयन आसान होगा।


उपाय

हम एन स्पॉन पॉइंट्स को रखने की कोशिश कर रहे हैं जैसे कि उन सभी स्पॉन पॉइंट्स पर किसी अन्य खिलाड़ी का सामना करने का मौका बराबर है।

हम संभावनाओं के औसत के अवसरों के मतभेदों के योग के रूप में त्रुटि का एक उपाय प्राप्त कर सकते हैं। हम इसे कम करने की कोशिश कर रहे हैं (वास्तव में, हम इसे 0 बनाना चाहते हैं)।

ऐसा करने के लिए, हमें ग्राफ के प्रत्येक नोड पर एक खिलाड़ी का सामना करने का मौका जानने की आवश्यकता है।

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

नोट 1: स्पॉन पॉइंट जोड़ना या स्थानांतरित करना सभी मानचित्र के लिए प्लेयर का सामना करने का मौका प्रभावित करेगा।

नोट 2: इस ट्रैक को ट्रैक करना कि प्रत्येक स्पॉन पॉइंट मौका को कितना प्रभावित करता है, चीजों को आसान बना देगा।

नोट 3: चूंकि नोड्स का आकार होता है, इसलिए आप त्रुटि = शून्य को कितना करीब प्राप्त कर सकते हैं नोड्स के आकार पर निर्भर करता है। मूल्यों की श्रेणियों के साथ काम करके आप अधिक सटीक हो सकते हैं (नोड के भीतर स्पॉन पॉइंट की विशेष स्थिति के आधार पर, मिनीमुन और मैक्सिमन मौका)।

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

नोट 4: स्पॉन पॉइंट को ले जाने पर, आप किसी खिलाड़ी को सामना करने के मौके का उपयोग कर सकते हैं (स्पॉन पॉइंट को छोड़कर) यादृच्छिक रूप से एक स्पॉट पॉइंट के लिए एक नई स्थिति का चयन करने के लिए, जिस स्थिति में किसी खिलाड़ी को सामना करने का मौका मिलता है मतलब अधिक संभावना है। मैं आपको याद दिलाता हूं कि स्पॉन पॉइंट को ले जाने से मतलब प्रभावित होगा।

अपेक्षित व्यवहार यह है कि स्पॉन पॉइंट जो एक साथ बहुत करीब हैं अलग-अलग हो जाते हैं और स्पॉन पॉइंट जो बहुत दूर हैं, करीब आते हैं। जब तक वे संतुलन तक नहीं पहुंच जाते।

यदि किसी दिए गए पुनरावृत्ति पर आपके पास नोड पर एकाधिक स्पॉन पॉइंट होते हैं (जो असंभव है, क्योंकि उन्हें अलग-अलग स्थानांतरित करना चाहिए, लेकिन यदि आपके पास पर्याप्त पर्याप्त नोड्स हैं तो संभव है), नोड को विभाजित करें और हल करना जारी रखें। नोड का कोई भी विभाजन मान्य है।


उपर्युक्त समाधान त्रुटि = शून्य तक पहुंच जाएगा, लेकिन शून्य तक पहुंचने की गारंटी नहीं है। आप इसे तब तक चला सकते हैं जब तक कि यह स्थानीय न्यूनतम तक नहीं पहुंच जाता ... सिद्धांत रूप में, आप नोड्स को बिल्कुल शून्य बनाने के लिए विभाजित कर सकते हैं ... फिर भी, यह स्पॉन पॉइंट निर्देशांक को ट्वीव करने के बराबर है!

नोड के भीतर स्पॉन पॉइंट को स्थानांतरित करने के लिए नकली एनीलिंग का प्रयास करें। हालांकि, ईमानदारी से, शायद इस तरह के विस्तार से परेशान करने के लिए यह लायक नहीं है।


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


Zibelas 07/28/2017.

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

  • सीमा / अधिक संसाधनों में करीब / बेहतर हथियार
  • बेहतर कवर / अधिक छुपा / सिंहावलोकन
  • खिलाड़ियों का 'प्रवाह', कुछ स्थान दूसरों की तुलना में अधिक आकर्षक होते हैं (एक ही घर के साथ एक पूर्ण वन मानचित्र के बारे में सोचें, चाहे वह घर कहां है, अच्छा मौका है कि लोग इसे देख रहे हैं)

क्या आपका नक्शा एक निश्चित एक या प्रक्रियात्मक उत्पन्न है? और कभी 2 व्यक्तियों के मानचित्र पर 8 लोगों के साथ साम्राज्यों की आयु खेलने की कोशिश की? नक्शा आकार में समायोजन किए बिना खिलाड़ियों को अनंत बनाना संभव नहीं है। यहां तक ​​कि एक अनुचित प्रारंभ प्लेसमेंट खेल में बहुत गतिशील ला सकता है (वर्म्स श्रृंखला देखें)। यदि आप किसी बड़े खिलाड़ी के साथ गठबंधन करते हैं, तब तक कोई भी शिकायत नहीं करता है, जब तक कि एक अन्य खिलाड़ी के साथ आपका एक गठबंधन गठबंधन न हो या आप पहले दौर के बाद सबसे अधिक जीवित कीड़े नहीं थे।

(यदि मैं आपके प्रकार के खेल के बारे में और जानूं तो मैं कुछ और उदाहरण जोड़ूंगा)


Aric Fowler 07/28/2017.

अब तक सुझाए गए कुछ के लिए जा रहे हैं: इसे बनाओ ताकि मानचित्र का कोई केंद्र न हो। इसका मतलब यह है कि नक्शा किनारों के विपरीत पक्षों में शामिल हो जाते हैं। यह बहुत सारे प्रोग्रामिंग कार्य लेगा, लेकिन व्यावहारिक रूप से यदि आप एक दिशा में चलते हैं तो यह स्तर को अनन्त रूप से दोहरा सकता है। इसका मतलब है कि कोई केंद्र नहीं है, और एक यादृच्छिक स्पॉन स्थिति में कोई फायदे या नुकसान नहीं होंगे।

आप इसे एक फ्लैट नक्शा बनाकर कर सकते हैं जो वर्ग है, और प्रत्येक किनारे को विपरीत किनारे की एक प्रति में जोड़ रहा है। जब कोई खिलाड़ी पक्ष से बाहर निकलता है, तो उन्हें खिलाड़ी के ज्ञान के विपरीत विपरीत किनारे पर टेलीपोर्ट किया जाता है। बेशक, सैद्धांतिक रूप से आप सीमा के दूसरी तरफ खिलाड़ियों को नहीं देख पाएंगे। इसे ठीक करने के लिए, उस खिलाड़ी के क्लोन बनाएं जो सीमा के दूसरी तरफ घूमते दिखाई देते हैं ताकि आप उन्हें देख सकें, और जब आप उनके सामने दौड़ते हैं तो आप टेलीपोर्ट करते हैं और वास्तविक खिलाड़ी खड़ा होता है जहां डमी थी।

वैकल्पिक रूप से, पूरा नक्शा एक क्षेत्र के बाहर मौजूद हो सकता है, हालांकि इससे स्पॉन्गिंग के लिए समन्वय मुश्किल हो जाता है।

1 comments
2 Avery 07/29/2017
या एक नक्शा बनाएं, ठीक है, केंद्र में, आप शिकार कर सकते हैं या बहुत आसान शिकार कर सकते हैं, और लूट को भी आसान पा सकते हैं, लेकिन फिर से, आप इस तरह शिकार करने के लिए और गैर-केंद्र क्षेत्रों में, और अधिक संभव हैं, ऐसा इसलिए है कि खिलाड़ियों को अन्य उपयोगकर्ताओं और लूट खोजने की संभावना कम है, इसलिए यदि वे अधिक लूट चाहते हैं तो उन्हें केंद्र में जाना होगा, अगर वे लंबे समय तक जीवित रहना चाहते हैं, तो उन्हें रहना होगा जहां वे हैं। तो मूल रूप से यादृच्छिक spawns का लाभ एक लाभ बनाते हैं।

dnk drone.vs.drones 07/28/2017.

यहां कुछ संभावित समाधान दिए गए हैं:

  • सर्कल की परिधि पर यादृच्छिक रूप से स्पॉन करें
  • विकिरण पर बेतरतीब ढंग से स्पॉन (केंद्र को बंद करने के लिए spawning नहीं)
  • एक यादृच्छिक स्पॉन समय घटक जोड़ें

स्पॉन्गिंग तंत्र का आरेख

2 comments
Zanon 07/28/2017
दूसरी छवि एक अच्छा विकल्प है। यह पहले विकल्प की समस्या हल करता है जहां खिलाड़ी जानता है कि अन्य सभी खिलाड़ी कहां स्थित हैं।
Avery 07/29/2017
@Zanon हालांकि पहले छवि खिलाड़ियों के साथ (और संभावना है) किसी के आने से पहले चले जा सकते हैं। दूसरा, अनुचित स्पॉन्स का कारण बनता है, कुछ दूसरों के करीब। हो सकता है कि ऐसा कुछ ऐसा हो जहां 2 सर्किल हों और छोटे और बड़े के बीच का अंतर वह है जहां वे पैदा होते हैं, इसलिए दूसरी छवि की तरह, लेकिन केंद्र के लिए कम।

MrCranky 07/28/2017.

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

आदर्श नोड में तब है:

  • वर्तमान में इसमें कोई खिलाड़ी नहीं है
  • पास नोड्स में शून्य से अधिक खिलाड़ी (लिंक की कुछ छोटी संख्या दूर)

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

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

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

शोधन:

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

Aaron 07/28/2017.

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

अपने तीसरे और चौथे मानदंडों को संबोधित करते हुए: "The map shouldn't have to expand."

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

अपनी वांछित स्पॉन विशेषताओं के लिए हेरिस्टिक की गणना करें:

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


Anton Sherwood 07/29/2017.

यदि खेल का मैदान एक टोपोलॉजिकल टॉरस है (यानी एक आयत जहां "सीमाओं से बाहर" जा रहा है, तो विपरीत पक्ष में प्रवेश करना है), यह एक अच्छा जवाब होने की संभावना है: प्लेयर j x = (pjW/N) mod W, y = (qjH/N) mod H पर spawns x = (pjW/N) mod W, y = (qjH/N) mod H , जहां W,H आयताकार के आयाम हैं, N खिलाड़ियों की संख्या है, और p,q पूर्णांक निर्धारित करने के लिए हैं; वे अलग हैं, (शायद) अपेक्षाकृत प्रमुख, और sqrt(N) से बहुत दूर नहीं हैं। स्पॉन पॉइंट एक तिरछी 'वॉलपेपर' पैटर्न बनाते हैं।

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


NotThatGuy 07/31/2017.

कैसा रहेगा:

प्रत्येक खिलाड़ी एक गैर-स्पॉन्गिंग बॉक्स (या सर्कल) से घिरा हुआ है

जैसा कि, एक निश्चित आकार का एक वर्ग है जो हर खिलाड़ी के चारों ओर फैलता है और उस खिलाड़ी का अनुसरण करता है - उस वर्ग के भीतर कोई अन्य खिलाड़ी नहीं हो सकता है।

ये वर्ग केवल स्पॉन्गिंग को प्रभावित करते हैं और खेल के दौरान कोई अन्य आंदोलन नहीं करते हैं।

यह या तो प्रारंभिक केवल स्पॉन्गिंग या निरंतर स्पॉन्गिंग के साथ काम करता है।

(डॉट्स खिलाड़ियों को इंगित करता है और हरे नए खिलाड़ियों के लिए संभावित स्पॉन क्षेत्र इंगित करता है)

मानचित्र आकार को खिलाड़ियों की संख्या के अनुपात में वृद्धि नहीं करना है

इससे निपटने के लिए, आप दो चीजों में से एक कर सकते हैं: (या दोनों)

  • खिलाड़ियों की संख्या के आधार पर गैर-स्पॉन्गिंग बॉक्स के आकार को घटाएं।
  • प्रत्येक बॉक्स में एक्स दुश्मन खिलाड़ियों को उछालने की अनुमति दें।
    • जब आप जाते हैं तो यह संख्या बढ़ सकती है (0 से शुरू हो रही है)।
    • संस्करण 1: एक छोटा नो-स्पॉन बॉक्स और एक बड़ा सीमित-स्पॉन बॉक्स है।
    • संस्करण 2: वजन घटाने के अनुसार इस खिलाड़ी के लिए नया स्पॉन कितना करीब है (यदि बॉक्स के अंदर) - कुशलतापूर्वक कार्यान्वित करना मुश्किल हो सकता है।

Related questions

Hot questions

Language

Popular Tags