क्या मुझे गेम सर्वर से अलग लॉगिन सर्वर रखना चाहिए?


15

मैं एक MMO सर्वर बनाने के बारे में सोच रहा हूं, और मैं देख रहा हूं कि अन्य गेम अपने नेटवर्क को कैसे बनाते हैं। मैंने जिन चीजों पर ध्यान दिया है, उनमें से एक यह है कि हमेशा एक लॉगिन सर्वर और फिर गेम सर्वर (एस)।

मैं अभी भी तय कर रहा हूं कि मुझे ऐसा करना चाहिए, लेकिन मैं पहले कुछ राय सुनना चाहूंगा। इसके क्या फायदे हैं, और लॉगिन सर्वर लॉगइन को संभालने के लिए गेम सर्वर के साथ कैसे संवाद करता है?


1
सवाल "भार संतुलन कैसे हासिल किया है? दिलचस्प हो सकता है: gamedev.stackexchange.com/q/5956/450
हेंड्रिक ब्रूमरमैन

जवाबों:


15

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

इसके अलावा, लॉगिन सर्वर एक संभावित हमले वेक्टर हैं, इसलिए उन्हें सुरक्षा के दृष्टिकोण से अलग करना अच्छा है।

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


अधिकांश समय मैं गेमरवर डीबी और लॉगरसेवर डीबी के अंदर ऐसा झंडा देखता हूं, इसलिए लॉगिन सर्वर एक दूसरे के खिलाफ जांच कर सकता है और अगर logindb! = Gamerserverdb उपयोगकर्ता लॉग आउट हो जाता है।
डेमोनफ़ेयर 300

10

MMOs के विकास में एक बहुत महत्वपूर्ण पहलू स्केलेबिलिटी को प्राप्त करना और लोड संतुलन के लिए अनुमति देना है।

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

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

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


2

पूर्व वाह खिलाड़ी के रूप में, मेरा अनुभव यह था कि लॉगिन सर्वर हमेशा श्रृंखला की सबसे कमजोर कड़ी थी।

विश्व सर्वर आमतौर पर प्रभावशाली रूप से स्थिर थे, यहां तक ​​कि असाधारण भार (जैसे नए विस्तार पैक रिलीज) को काफी अच्छी तरह से संभालना।

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

और अब जब WoW लॉगिन सिस्टम को Battle.Net में विलय कर दिया गया है, तो Starcraft 2 तब अनुपलब्ध हो सकता है जब WoW भारी लोड के तहत हो (जैसा कि कुछ घंटों के लिए हुआ जब Cataclysm लॉन्च हुआ)

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


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

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