2010-05-16 11 views
7

एक दोस्त और मैं इस बारे में चर्चा कर रहा था कि एक एफपीएस सर्वर इससे जुड़े ग्राहकों को कैसे अपडेट करता है। हमने Battlefield: Bad Company 2 में धोखा देने वाले लड़के के video को देखा और देखा कि स्क्रीन पर दुश्मनों की स्थिति को कैसे हाइलाइट किया गया और यह हमें सोचने लगा।अपने ग्राहकों को अपडेट करने के लिए एक एफपीएस मल्टीप्लेयर गेम के सर्वर के लिए सामान्य रणनीतियों क्या हैं?

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

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

तो प्रश्न: कुछ सामान्य नीतियां या रणनीतियों क्या हैं जो आधुनिक प्रथम व्यक्ति शूटर सर्वर अपने ग्राहकों को अद्यतन रखने के लिए नियोजित हैं?

उत्तर

11

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

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

कुछ अतिरिक्त पठन:

+0

क्या आपके पास कोई ऑनलाइन संसाधन है जहां मैं इसके बारे में और जान सकता हूं? –

+2

मैंने उत्तर के कुछ लिंक जोड़े। मैं विशेष रूप से Gamedev.net मंच पढ़ने से बहुत कुछ सीखता हूं। – Kylotan

+1

उत्कृष्ट संसाधन; विशेष रूप से स्रोत मल्टीप्लेयर नेटवर्किंग। मैं उस के साथ जवाब देने जा रहा था। +1 – Leftium

3

सामान्य नीति ग्राहकों को भरोसा नहीं करना चाहिए, इस अर्थ में कि डेवलपर को यह मानना ​​चाहिए कि कोई भी ग्राहक को स्क्रैच से फिर से लिखने में सक्षम है।

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

+1

दुर्भाग्य से, * शुड बी भूमि * एक दूर देश, वास्तविकता की अप्रतिनिधिक है। ;) –

+1

बिंदु अभी भी खड़ा है - आप _shouldnt_ ग्राहकों पर भरोसा करते हैं, क्योंकि लोग धोखा देने के लिए इस ट्रस्ट का फायदा उठाते हैं।यह क्लाइंट को अधिक जानकारी देने के साथ-साथ सटीक आदेश प्राप्त करने के साथ-साथ क्लाइंट को सर्वर को बताता है कि यह दीवारों के माध्यम से क्लिपिंग कर रहा है) पर लागू होता है। – Numeron

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