मैं सिर्फ मनोरंजन के लिए एक साधारण सा MOBA बना रहा हूं। मैं सब कुछ एकल-खिलाड़ी बना रहा था तब मुझे एहसास हुआ कि "ओह बकवास मुझे शायद मल्टीप्लेयर जोड़ना चाहिए, हुह।"
मैंने पहले कभी भी नेटवर्किंग के साथ कुछ नहीं किया है, इसलिए अपने खेल में लिडग्रेन को एकीकृत करना सीखना मजेदार और भयानक था। बात यह है, मैं बहुत ज्यादा जानता हूं कि मैं जिस तरह से चीजें कर रहा हूं वह गलत है, क्योंकि यह मुख्यधारा के खेलों का उपयोग करने के लिए पर्याप्त मजबूत नहीं है, जहां तक मुझे पता है, लेकिन इसमें क्या गलत है?
मैं जो कर रहा हूं, मूल रूप से, जब भी कोई खिलाड़ी कोई कार्रवाई करता है, तो यह सर्वर को एक संदेश भेजता है जिसमें कहा जाता है, "अरे, मैंने यह काम किया।" सर्वर और क्लाइंट दोनों एक ही सिमुलेशन चला रहे हैं। सर्वर तब अन्य सभी क्लाइंट को एक संदेश भेजता है जो उन्हें बताता है कि उस व्यक्ति ने उस चीज़ को किया था।
अधिकांश मामलों के लिए, कुछ मामलों को छोड़कर, जब कोई खिलाड़ी कोई काम करता है, तो ग्राहक मानता है कि यह अच्छा है और अपने दम पर आगे बढ़ता है। इसलिए जब आप कहीं जाने के लिए राइट-क्लिक करते हैं, तो उस खिलाड़ी का क्लाइंट बस अपने आदमी को वहां ले जाना शुरू कर देता है, और फिर सर्वर को संदेश भेजकर इसके बारे में बताता है।
तो मूल रूप से:
- खिलाड़ी 1 उसे छह सेकंड के लिए 100% तेजी से आगे बढ़ने के लिए एक जादू देता है
- प्लेयर 1 का स्थानीय क्लाइंट उस बफ़ को अपने यूनिट ऑब्जेक्ट में जोड़ता है
- प्लेयर 1 का क्लाइंट सर्वर को एक संदेश भेजता है जिसमें कहा जाता है "अरे मैंने अभी यह जादू डाला है"
- सर्वर सुनिश्चित करता है कि उसके पास वास्तव में उस वर्तनी को डालने के लिए पर्याप्त मान था, और यदि ऐसा है, तो उस इकाई ऑब्जेक्ट के सर्वर की प्रति में उस बफ़ को जोड़ता है
- सर्वर यह कहते हुए सभी अन्य ग्राहकों को संदेश भेजता है कि "अरे इस आदमी ने अभी यह जादू डाला है"
- हर दूसरा क्लाइंट संदेश प्राप्त करता है और "आह ओके कूल," जाता है और उस खिलाड़ी के लिए उस स्थानीय यूनिट ऑब्जेक्ट में उस बफ़ को जोड़ता है
मैं सामान के माध्यम से यह देख रहा हूं कि मल्टीप्लेयर कितने बड़े खेल करता है, और यह किसी ऐसे व्यक्ति के लिए भ्रामक है, जो अभी इस सामान को कुतरना शुरू कर रहा है , लेकिन ऐसा लगता है कि स्रोत इंजन एक पैकेट भेजता है जिसमें सभी परिवर्तनों के लिए सब कुछ है। दुनिया हर टिक? फिर, इस सामान के लिए पूरी तरह से नया है, लेकिन क्या आप वास्तव में उस डेटा को अक्सर पुश कर सकते हैं?
क्षमा करें यदि यह थोड़ा सा विचित्र है, लेकिन मूल रूप से, मैं सोच रहा था कि मेरी सरल प्रणाली जाने का सही तरीका क्यों नहीं है, क्योंकि अगर यह होता, तो अन्य खेल इसका उपयोग करते, सही?