erlang - अभिनेता मॉडल और टक्कर का पता लगाना




interaction actor-model (2)

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

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

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

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

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

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


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





actor-model