MMORPGs अभी भी कई सर्वरों का उपयोग क्यों करते हैं?


18

MMORPG, कुछ MOBAs जैसे लीग ऑफ लीजेंड या यहां तक ​​कि StarCraft 2 आमतौर पर आपको एक सर्वर लेने के लिए मजबूर करता है। आमतौर पर वे यूएसए, ईयू और एसईए, प्रत्येक स्थान पर MMORPGs में होते हैं। मैं देख सकता हूं कि कुछ साल पहले यह आवश्यक था, लेकिन अब एडब्ल्यूएस और इसी तरह के प्रसाद के आगमन के साथ जो आपको मूल रूप से अपने "सर्वर-पावर" की अनुमति देते हैं, फिर भी अलग-अलग सर्वर क्यों हैं?

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

तो क्यों खेल इस ग्रह के लिए एक उदाहरण नहीं बना सकता। यह उदाहरण (और केवल यह एक) आपके डेटाबेस में आपका वर्तमान डेटा है और x खिलाड़ियों का प्रबंधन करता है। जैसे ही x-50 खिलाड़ी इस उदाहरण पर हैं, एक नया सर्वर आग लग जाएगा और नए लोग उस उदाहरण पर स्पॉन करेंगे। आपके समूह, आदि पर स्विच करने के लिए 50 स्पॉट आरक्षित हैं।

विलंबता को कम रखने के लिए सभी तीन प्रमुख क्षेत्रों के लिए एक उदाहरण हो सकता है, लेकिन यह आपको अभी भी SEA के अन्य खिलाड़ियों के साथ खेलने की अनुमति देगा यदि आप 140ms देरी के साथ रह सकते हैं (जो अभी भी कुछ नहीं imho है)।

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

जब आप लॉग ऑफ करते हैं या सर्वर कनेक्शन खो देता है, तो डेटा को एक विशाल डेटाबेस में स्थानांतरित किया जा सकता है जो डेटा को संग्रहीत करने के लिए अनुकूलित है। उदाहरण के सर्वर को तब उच्च थ्रूपुट के लिए अनुकूलित किया जा सकता है।

क्या कोई विशेष कारण है कि यह काम नहीं करेगा? क्या अन्य समस्याएं हैं जो मुझे याद आ रही हैं?


इस तथ्य के बारे में क्या है कि उन खेलों में से कई का समर्थन करने के लिए अपने इंजन के बड़े वर्गों के लिए उदारवादी फिर से लिखना होगा? और उस समय और धन को अधिक सामग्री को जोड़ने में बेहतर खर्च किया जा सकता है।
Xavon_Wrentaile 22

मैंने मौजूदा खेलों को बदलने का सुझाव नहीं दिया, लेकिन बहुत अधिक क्यों डिजाइन को चुना गया जिस तरह से इसे शुरू करना था।
mmlac

जवाबों:


12

MMORPG, कुछ MOBAs जैसे लीग ऑफ लीजेंड या यहां तक ​​कि StarCraft 2 आमतौर पर आपको एक सर्वर लेने के लिए मजबूर करता है। आमतौर पर वे यूएसए, ईयू और एसईए, प्रत्येक स्थान पर MMORPGs में होते हैं। मैं देख सकता हूं कि कुछ साल पहले यह आवश्यक था, लेकिन अब एडब्ल्यूएस और इसी तरह के प्रसाद के आगमन के साथ जो आपको मूल रूप से अपने "सर्वर-पावर" की अनुमति देते हैं, फिर भी अलग-अलग सर्वर क्यों हैं?

AWS उतना स्पष्ट समाधान नहीं है जितना लगता है। यह महंगा हो सकता है, कुछ मामलों में इन-हाउस डेटा केंद्रों का उपयोग करने से अधिक (एक प्रकाशक के लिए इनका उपयोग कई उत्पादों में किया जा सकता है, उदाहरण के लिए)। इसके अतिरिक्त, संवेदनशील बायनेरी और लॉग को किसी के नियंत्रण से बाहर हार्डवेयर पर संग्रहीत करने के बारे में चिंता हो सकती है। अंत में, वास्तविक गणना शक्ति हमेशा MMOs में "सर्वर" आबादी को अलग करने का कारण नहीं है।

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

गिल्ड वॉर्स 2, वास्तव में, इसके साथ बहुत कुछ करता है। मानचित्रों को व्यक्तिगत सर्वर प्रक्रियाओं द्वारा सिम्युलेटेड किया जाता है, और नक्शे के प्रदर्शन के आधार पर मानचित्र की आबादी की टोपी और कुछ अनुमानों के आधार पर अतिप्रवाह उदाहरण बनाए जाते हैं।

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

क्या कोई विशेष कारण है कि यह काम नहीं करेगा? क्या अन्य समस्याएं हैं जो मुझे याद आ रही हैं?

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


@ जोश, क्या आप कहेंगे कि दुनिया के अलग-अलग क्षेत्रों के लिए अलग-अलग सर्वर बनाने और बनाए रखने के निर्णय में वितरण अधिकार भी एक बड़ा कारक है?
ट्रेवर पॉवेल

मुझे यकीन नहीं है कि आपका क्या मतलब है, क्या आप मूल्य समायोजन उद्देश्यों के लिए यूरोपीय संघ के संस्करण को एक अलग SKU के रूप में प्रस्तुत करने के बारे में बात कर रहे हैं (और परिणामस्वरूप सर्वर बैकएंड को भी अलग रखना चाहते हैं?)।

7

अधिकतर यह विलंबता के बारे में है।

सबसे पहले, भौगोलिक रूप से आपके पास एक सर्वर होने से विलंबता में कटौती होती है। यदि सर्वर दुनिया के दूसरी तरफ है, तो आपको सर्वर से कुछ ही दूर होने पर अधिक विलंबता दिखाई देगी।

दूसरे, AWS जैसी सेवाओं को वास्तविक समय के काम के लिए डिज़ाइन नहीं किया गया है। वे थोड़ी विलंबता की कीमत पर उच्च थ्रूपुट के लिए डिज़ाइन किए गए हैं। यदि आपका वेब पेज एक अवसर पर लोड करने के लिए सामान्य से 250 सेंटीमीटर अधिक समय लेता है, तो कोई भी परवाह नहीं करता है, लेकिन यदि आपका गेम किसी संदेश को संसाधित करने के लिए सामान्य से 250ms अधिक समय लेता है, तो गेमप्ले गंभीर रूप से प्रभावित हो सकता है। यही कारण है कि MMO हमेशा समर्पित हार्डवेयर पर होस्ट किया जाता है।

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

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


"यदि आपके पास पूरी तरह से अलग सर्वर हैं तो कम से कम यहां कोई आश्चर्य नहीं है।" ठीक है, तुम तो अपने दोस्तों के साथ खेल नहीं सकते। SW में: TOR यह बताता है कि ग्रुप लीडर कौन सा उदाहरण है और आप तुरंत उस पर स्विच कर सकते हैं। मुझे (व्यक्तिगत रूप से) लगता है कि यह पर्याप्त है। तकनीकी अंतर्दृष्टि के लिए धन्यवाद, यह वास्तव में मुझे हाथ में मुद्दों को समझने में मदद करता है!
mmlac

1
निश्चित रूप से कुछ गेम आपको इस तरह से स्विच करने की सुविधा दे सकते हैं, लेकिन यह साझा मीटिंग और सामाजिक क्षेत्रों के लिए काल कोठरी और खोज क्षेत्रों के लिए बहुत बेहतर काम करता है। अंतत: हालांकि तकनीकी समस्याएं अधिक महत्वपूर्ण हैं।
काइलोटन

और जैसा कि फिलीपींस में मेरी टिप्पणी में उल्लेख किया गया है, मुझे नहीं लगता कि आप राजधानियों और मुख्य शहरों को बिना उदाहरणों के चला सकते हैं।
मिमीलैक

3

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

एक और कारण यह है कि दुनिया के बीच एक अलगाव पैदा करना है ताकि अगर कोई ऐसा समूह हो जो बहुत मजबूत हो, तो वे खेल को हर किसी के लिए खेलेंगे नहीं, और आप हमेशा कम "चुनौतीपूर्ण" दुनिया में जा सकते हैं।

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


खैर कम से कम दप में: टीओआर केवल उस वर्तमान उदाहरण पर प्रभाव है जो आप पर हैं। जिसका अर्थ है कि दुनिया के बॉस आप उदाहरण के तौर पर हत्या करते हैं, उदाहरण के लिए अभी भी अनहोनी / छीनी जाएगी। इसलिए अलगाव पहले से ही है। मैं अलग-अलग सर्वरों का कारण बिजली की तरफ देख सकता हूं, लेकिन बेल्ट के नीचे, वे इस तरह से स्केल कर सकते हैं, इसलिए आपके पास कृत्रिम पैर की सीमा नहीं है। समय किसी भी चिंता का विषय नहीं होना चाहिए, क्योंकि स्थानीय कार्यक्रमों में स्थानीय लोग शामिल होते हैं। यदि आप ऑनलाइन होते हैं, तो आपको शामिल होने की अनुमति क्यों नहीं दी जानी चाहिए? यह सिर्फ आपके समयक्षेत्र के अनुरूप नहीं है।
एमएमएलएसी

मैं यूरोपीय संघ के समय पर होने से पहले एक अमेरिकी सर्वर पर वंशावली खेलता था (इससे पहले कि वे यूरोपीय संघ के सर्वर बनाए गए), और मैं आपको बता सकता हूं कि यह एक कुतिया है! मुझे सुबह 3 बजे उठना था अगर मैं छापे और महल की घेराबंदी में भाग लेना चाहता था, क्योंकि जब यह सब हुआ था। इसलिए समय निश्चित रूप से एक चिंता का विषय है।

खैर, समय एक चिंता का विषय है जब आपके पास गलत टाइमज़ोन में केवल एक सर्वर है। मेरे विचार से आपके पास पूरी दुनिया के लोग ऑनलाइन हैं। यदि आप उस 3am छापे में भाग लेना चाहते हैं, तो आगे बढ़ें! अभी, आप एसओएल हैं और "आपके" सर्वर के छापे तक इंतजार करना पड़ता है - जो कि हर शनिवार सुबह 10 बजे हो सकता है - जहां आपके पास समय नहीं है। इसलिए दोपहर 3 बजे ईयू छापे के लिए जाएं। क्या इसका कोई मतलब है?
mmlac

2

ऑटो-इंस्टेंस में क्या गड़बड़ है? जब कोई स्थान बहुत अधिक आबादी वाला हो जाता है, तो आप सिर्फ 1000 खिलाड़ियों को 10 अलग-अलग उदाहरणों में डालते हैं।

इसके साथ समस्या यह है कि ऑनलाइन गेम सभी समुदाय के बारे में हैं। कल्पना कीजिए कि आप उन लोगों के साथ एक बैठक की व्यवस्था कर रहे हैं जिनसे आप पहले मिले थे, और जब आप सभी दिए गए समय पर आप एक-दूसरे को नहीं देखते हैं क्योंकि आप सभी अलग-अलग उदाहरणों में हैं? यह कष्टप्रद है और यह विसर्जन को तोड़ देता है।

इसे कैसे रोका जा सकता है? यह हर समय एक ही उदाहरण में लगाकर किया जा सकता है, ताकि जब आप किसी अन्य खिलाड़ी से एक बार मिलते हैं, तो आप इस खिलाड़ी से फिर से मिलना सुनिश्चित कर सकते हैं जब आप दोनों एक ही स्थान पर होंगे। आप उन खिलाड़ियों से कभी नहीं मिलेंगे जिन्हें अन्य उदाहरणों के लिए सौंपा गया है।

लेकिन क्या जब आप खेल के बाहर से किसी से मिलना चाहते हैं? एक वास्तविक जीवन के दोस्त की तरह आपने अपने साथ खेल खेलने के लिए आमंत्रित किया? ऐसा होने देने के लिए, आपको अपना चरित्र बनाते समय उदाहरण चुनने की क्षमता की आवश्यकता होगी। उदाहरणों की सूची से जैसे नामों को याद रखना आसान है। दुर्भाग्य से, नाम "उदाहरण" औसत उपयोगकर्ता के लिए भ्रामक लगता है। वे उस शब्द के अभ्यस्त नहीं हैं। क्या उनके लिए उपयोग किए जाने वाले शब्द का उपयोग करना बेहतर नहीं होगा? एक शब्द की तरह ... सर्वर ?


1
शब्द आवृत्ति और सर्वर को भ्रमित न करें। उदाहरण आपको एक दूसरे के बीच स्विच करने की अनुमति देते हैं। सर्वर आमतौर पर परमाणु होते हैं। अंदर और बाहर नहीं। लोगों से मिलने के लिए: सभी को एक उदाहरण में रखें और आपकी राजधानियों में 20.000 लोग होंगे। एक ही समय पर। यह न तो काम करेगा और न ही वांछनीय होगा, इसीलिए आपको वैसे भी उदाहरण बनाने होंगे। मेरे विचार की ट्रेन इन उदाहरणों को एक सर्वर तक सीमित करने के बजाय वैश्विक बना रही थी।
3

लेकिन मुझे लगता है कि मुद्दा यह है कि आप आम तौर पर चाहते हैं कि लोगों को जानबूझकर साझा किए गए क्षेत्रों में एक पूर्वानुमानित अनुभव हो। आपको उन्हें प्रदर्शन कारणों से विभाजित करना होगा, लेकिन उन्हें 'सबके साथ' साझा किया जाना चाहिए, इसलिए आदर्श रूप से आपके पास चर (उदाहरण के लिए) के बजाय एक निश्चित विभाजन (जैसे सर्वर) है। बहुत कम पैराग्राफ मुझे पता है कि इस प्रकार के क्षेत्र का उदाहरण दिया जाएगा, क्योंकि यह समुदाय और समूहीकरण कारणों के लिए महत्वपूर्ण माना जाता है जो हर कोई हर किसी को वहां देख सकता है।
काइलोतन K
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.