2012-04-29 18 views
10

मैं गेम सर्वर के लिए Erlang की संभावना के बारे में सोच रहा हूं। (ओह, मैं एर्लांग विशेषज्ञ नहीं हूं, बस मंच पर विचार कर रहा हूं) इसका मतलब गेम सिमुलेशन के लिए अभिनेता मॉडल का उपयोग करना है। बेशक, सबसे बड़ा आकर्षण कई नोड्स पर वितरित इसकी समवर्तीता है।अभिनेता मॉडल और टकराव का पता लगाने

मेरा वर्तमान बड़ा सवाल यह है कि मैं टकराव का पता लगाने जैसे बहु-अभिनेता इंटरैक्शन कैसे करना चाहिए। (यह सिर्फ एक उदाहरण है)

हालांकि किसी भी गेम में टक्कर का पता लगाने की आवश्यकता है, लेकिन अभिनेता मॉडल की प्रकृति में, यह कुशल नहीं दिखता है और यहां तक ​​कि समझ में नहीं आता है, क्योंकि इसे वैश्विक रूप से सिंक्रनाइज़ किए गए राज्य क्वेरी की आवश्यकता है और सभी लक्ष्यीकरण कलाकारों पर अपडेट करें। और यदि मैं किसी भी सिंक्रनाइज़ेशन का उपयोग करता हूं, तो यह एरलांग के अभिनेता मॉडल के सभी लाभों को ओवरराइड करता है।

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

उत्तर

9

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

+0

इंटरैक्शन की घटती सीमा को जाने का एकमात्र तरीका दिखता है। धन्यवाद। – Eonil

7

मेरे पास एरलांग में सर्वर करने वाला एक स्पेस-आधारित गेम है। चाल यह है कि प्रत्येक स्थान/नोड/आदि भी एक अभिनेता है। यह भौतिकी को लगातार चलाता है और नियमित रूप से प्रत्येक गेम इकाई अभिनेता को जानकारी भेजता है।

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

+0

तो क्या एक ही अभिनेता में किए गए सभी भौतिकी हैं? आपने भौतिकी कैसे की? – Eonil

+2

हां। मैं भौतिकी चलाने के लिए बुलेट का उपयोग कर रहा हूँ। इकाई अभिनेता अपने स्वयं के खेल राज्य को ट्रैक करते हैं, एक दूसरे को गोली मारते हैं, आंदोलन का फैसला करते हैं, आदि। वे स्थान पर आदेश भेजते हैं, जो सिमुलेशन चलाते हैं। स्थान निरंतर चलता है और समय-समय पर संस्थाओं के लिए "आप यहां हैं" और "आप एक्स के साथ टक्कर" भेजते हैं। संस्थाएं स्थान पर प्रश्न भी भेजती हैं। – Nialscorva

संबंधित मुद्दे