दो नेटवर्क वाले राज्यों के बीच इंटरपोलिंग?


11

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

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

जवाबों:


9

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

"आगे" शब्द के सभी उदाहरणों के लिए इस लेख को खोजें और मुझे लगता है कि आप चित्र को बेहतर तरीके से प्राप्त करना शुरू कर देंगे, जैसा कि मैंने ऊपर बताया है।


ठीक है, तो क्या आप समझ रहे हैं कि मुझे वास्तव में खिलाड़ी को प्रस्तुत करना चाहिए क्योंकि वे 300 एमएस थे और भविष्य की ओर इशारा कर रहे थे? (एक अलग स्थिति में, जब एक नया राज्य आता है, तो यह स्विच हो जाएगा)
वॉन हिल्ट्स

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

2

जब आप कहें:

इन खिलाड़ियों को कुछ समय बाद उतरना शुरू हो जाता है

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

यदि सिंक गेम की घड़ियाँ वास्तव में एक समस्या हैं, तो आपको अपने अपडेट लूप पर बहुत ध्यान से देखने की ज़रूरत है और सुनिश्चित करें कि हर अपडेट गेम-टाइम पास (या तो तय या परिवर्तनीय) की मात्रा पर आधारित है, और गेम समय दीवार-घड़ी की तरह कुछ का उपयोग कर उन्नत है (समय या अन्य चर प्रदान नहीं)। इस पर Gaffer के कुछ अच्छे लेख हैं , और यहाँ पर एक अच्छा सवाल है जो फिक्स्ड बनाम वैरिएबल टाइमस्टेप्स के बारे में बात कर रहा है । उम्मीद है की यह मदद करेगा।


यह मामला नहीं है, मामला वास्तव में यह है कि मैं बहुत दूर मर चुका हूं (एक अंतराल स्पाइक या कुछ - पैकेट को 'बंद' करने के लिए समय पर प्राप्त नहीं किया जाता है और ग्राहक समय पर खुद को सही नहीं कर सकता है। मुझे यह पता है। मामला क्योंकि क्लाइंट के रुकने के बाद मैं सबसे ज्यादा DEFINTELAY को वापस स्थिति में ला सकता हूं।
वॉन हिल्ट्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.