खैर, यह किताब है - जो अब थोड़ी पुरानी है, और मैंने इसे कभी नहीं पढ़ा है, लेकिन यह एक प्रतिष्ठित प्रकाशक से है। मैंने यह भी पाया कि यह एक है, जो नया है, लेकिन मैं के पहले कभी नहीं सुना है। दोनों खेल के विकास के मुद्दों (या कम से कम ऑनलाइन) को कवर करने का दावा करते हैं; कहा कि, क्लाइंट-साइड भविष्यवाणी आपके समवर्ती खिलाड़ी आधार के पैमाने की परवाह किए बिना कमोबेश एक ही है, और Google के पास इसके बारे में बहुत सारी जानकारी है ।
यह महसूस करना महत्वपूर्ण है कि एक व्यावहारिक दृष्टिकोण से यह एक इंडी / शौक डेवलपर के लिए एक खेल को एक साथ रखने के लिए कठिन है, जो कि पर्याप्त रूप से पर्याप्त खिलाड़ियों को एक सैद्धांतिक शिखर समरूपता प्राप्त करने के लिए पर्याप्त रूप से लोकप्रिय बना देगा, जिसे "बड़े पैमाने पर" माना जाता है। लेकिन तकनीक अभी भी अनुसंधान के लिए शैक्षिक हो सकती है।
आप कर सकते हैं चीजों के दो प्रमुख वर्गीकरण हैं:
- ग्राहकों को न्यूनतम सेट डेटा की न्यूनतम मात्रा भेजने के बारे में आक्रामक रहें, जिन्हें इसकी आवश्यकता है।
- एक ऐसा गेम डिज़ाइन करें जो खिलाड़ियों को बहुत अधिक झगड़ने का प्रोत्साहन नहीं देता है, आपको सामान्य रूप से छोटी चीज़ों की ज़रूरत वाले "ग्राहकों के सेट" को बनाए रखने में मदद करता है।
दूसरा वास्तव में एक गेम डिज़ाइन और सामाजिक हेरफेर समस्या है - यह विशेष रूप से मुश्किल है क्योंकि मल्टीप्लेयर गेम स्वाभाविक रूप से सामाजिक हैं, यह उनकी अपील का हिस्सा है, इसलिए आप खिलाड़ियों के समूहों को बहुत अधिक हतोत्साहित नहीं करना चाहते हैं। दूसरी ओर, एक ऐसा खेल जहां दुनिया में हर कोई स्पैन-कैंपिंग करता है, जो उस गेम में सबसे अच्छा लूटता है, वह बड़े पैमाने पर मुश्किल होता है।
पहले विकल्प के लिए आप टियर मैसेजिंग करने पर विचार कर सकते हैं - अन्य खिलाड़ियों के बारे में कुछ बातें हैं जो हमेशा जानना महत्वपूर्ण हैं, जैसे कि स्थिति। लेकिन अन्य चीजें, जैसे स्वास्थ्य, उन वस्तुओं के लिए उतना महत्वपूर्ण नहीं हो सकती हैं, जो वर्तमान खिलाड़ी अभी तक नहीं देख सकता है, इसलिए आप उस खिलाड़ी को उसके आसपास के अन्य सभी संस्थाओं की सापेक्ष दूरी के आधार पर उस खिलाड़ी को भेजते हैं - यह अनिवार्य रूप से थ्रॉटलिंग है आपके द्वारा भेजे गए डेटा, जैसा कि आपने अपने प्रश्न के अंतिम बिट में उल्लेख किया है, साथ ही इसे फ़िल्टर करना भी है।
बहुत बड़े पैमाने पर मल्टीप्लेयर आर्किटेक्चर भी उन रिपोर्टों को बफर कर देंगे, जिन पर तत्काल कार्रवाई करने की आवश्यकता नहीं है। सर्वर पर भेजे गए कैरेक्टर सेव संदेशों को केवल महत्वपूर्ण बिंदुओं पर पूर्ण अपडेट के साथ डेल्टास में किया जा सकता है, और ये अपडेट थ्रॉटलिंग सर्वर पर बफ़र किए जा सकते हैं ताकि वे सर्वर पर भेजे जा सकें जो वास्तव में एक स्थिर में वर्ण डेटा को रखते हैं, समय-समय पर फैशन - अपने खिलाड़ी आधार के रूप में, आपको डिस्क IO के साथ-साथ नेटवर्क ट्रैफ़िक को अनुकूलित करने के बारे में चिंता करनी होगी। आप अपने चरित्र डेटाबेस को थ्रैश करना नहीं चाहते हैं।
पैकेट दर और आकार गेम से गेम में व्यापक रूप से भिन्न होते हैं, जैसे कि यह गैर-MMO गेम के लिए होता है। यह वास्तव में एक बहुत ही विशिष्ट-विशिष्ट चीज है और सामान्यीकृत मानक नहीं हैं।