2009-12-12 12 views
6

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

+0

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

उत्तर

1

मैंने गलती (पारंपरिक ग्राहक भविष्यवाणी के बिना) कैसे सामान्य रूप में वितरित नेटवर्क भौतिकी करने के लिए पर एक excruciatingly fine blog post बारे में जाना। मैं अत्यधिक अनुशंसा करता हूं कि जीडीसी स्लाइड्स फिडलर ने कुछ साल पहले प्रस्तुत किया था। सौभाग्य!

+0

धन्यवाद, मुझे लंबे समय से उन ब्लॉग पोस्ट याद हैं जब श्रृंखला अपूर्ण थी। नेटवर्किंग पर अंतिम एक महान है, और बहुत मदद करनी चाहिए! – Alex

0

यह एक बहुत ही दिलचस्प सवाल है। दुर्भाग्य से कोई आसान जवाब नहीं है। तुम बस अच्छी तरह से इस मुद्दे को understnad और एक समाधान है कि आपके आवेदन के लिए पर्याप्त अच्छा है के लिए समझौता किया है।

मेरी पहली वृत्ति कि एनटीपी सर्वर से मशीन घड़ियों की स्थापना के लिए Network Time Protocol (NTP) इस मुद्दे को संबोधित किया था। वहां संबोधित मुद्दों में से एक Jitter Buffers से संबंधित है, जिसमें packet delay variation शामिल है। यह RFC 3393; IP Packet Delay Variation Metric for IP Performance Metrics (IPPM) में विस्तारित है।

+0

मैं एनटीपी में देखूंगा, जो वास्तव में मेरी स्थिति में कुछ अंतर्दृष्टि प्रदान कर सकता है। – Alex

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