2011-05-25 12 views
7

मैं वर्तमान में वास्तविक समय में एक सी # ऑनलाइन मल्टीप्लेयर गेम पर काम कर रहा हूं। इसका उद्देश्य यूडीपी प्रोटोकॉल का उपयोग कर क्लाइंट/सर्वर आधारित कनेक्शन होना है। अब तक मैंने खिलाड़ियों के आंदोलनों और घटनाओं के लिए टीसीपी (एक खिलाड़ी शूटिंग, जीवन खोने वाला खिलाड़ी) के लिए यूसीपी का उपयोग किया है क्योंकि मुझे यह सुनिश्चित करने की ज़रूरत है कि इस तरह के डेटा सर्वर से जुड़े सभी खिलाड़ियों तक पहुंच जाएंगे। मुझे पता है कि यूडीपी को 'अविश्वसनीय' कहा जाता है और कुछ पैकेट खो सकते हैं। लेकिन मैंने कभी भी टीसीपी और यूडीपी को मिश्रण करने के लिए हर जगह पढ़ा है क्योंकि यह कनेक्शन को प्रभावित कर सकता है।ऑनलाइन मल्टीप्लेयर गेम मूल बातें

मुख्य प्रश्न यह है कि मैं अपने नेटवर्क को कैसे व्यवस्थित करना चाहिए?

यूडीपी कनेक्शन रहित है, मुझे कैसे बचाया जाना चाहिए कि कौन है? क्या मुझे किसी सूची में क्लाइंट के आईपी एड्रेस को सहेजना चाहिए?

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

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

+8

यह प्रश्न हमारे गेम डेवलपमेंट स्टैक एक्सचेंज में बेहतर हो सकता है: http://gamedev.stackexchange.com/ –

+1

बंद करने के लिए वोट दिया गया, लेकिन गेम देव पर माइग्रेट हो गया। – user7116

+0

[लिंक] (http://gamedev.stackexchange.com/questions/12716/online-multiplayer-game-basics) पोस्ट माइग्रेटेड – Lowip

उत्तर

1

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

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

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

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

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

संबंधित मुद्दे