2012-04-06 2 views
6

मैं वर्तमान में जावा सर्वर पक्ष और एएस 3 क्लाइंट पक्ष के साथ काम कर रहा हूं। मैं सोच रहा हूं कि उनके बीच घड़ी को सिंक्रनाइज़ करने के लिए वहां एक चांदी की बुलेट है या नहीं। परिवर्तनीय विलंबता और परिवर्तनीय घड़ी की गति के बीच ऐसा लगता है कि प्रत्येक पैकेट को टाइमस्टैम्प की आवश्यकता होगी।खेल (एमएमओआरपीजी) क्लाइंट और सर्वर के बीच समय/घटनाओं को सिंक्रनाइज़ करें?

धन्यवाद!

+0

एनटीपी या इसका एक संस्करण? – Thomas

+0

@ थॉमस यह सिस्टम के समय के लिए अच्छा है - लेकिन यह घटना सिंक्रनाइज़ेशन और विलंबता का विषय है और क्लाइंट को धोखा देने या अविश्वसनीय] अविश्वसनीय जानकारी प्रदान करने से बचने के लिए –

+0

सर्वर मॉडलिंग और क्लाइंट साइड दोनों मॉडलिंग करें। माउस और कीबोर्ड के लिए क्लाइंट इनपुट सीमित करें। आप समय के साथ 100% सटीक कभी नहीं प्राप्त कर सकते हैं और अनुमान लगाना होगा और क्रमिक सुधारात्मक कार्रवाई करना होगा। – dqhendricks

उत्तर

0

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

2

यह किसी भी कोड के बिना, मेरे सिर के शीर्ष से बाहर है।

  1. एक पिंग भेजने और प्राप्त करने के लिए सर्वर और क्लाइंट में कोड डालें।
  2. ग्राहक द्वारा कनेक्ट होने पर क्लाइंट से सर्वर पर एक पिंग भेजें।
  3. समय भेजने के समय वर्तमान समय रिकॉर्ड करें।
  4. जब ग्राहक पिंग प्राप्त करता है, तो प्राप्त समय पर वर्तमान समय रिकॉर्ड करें।
  5. प्रेषण समय प्राप्त करने के समय प्राप्त करने में समय व्यतीत करें और इसे 2 से विभाजित करें।
  6. क्या सर्वर क्लाइंट को वर्तमान समय भेजता है।
  7. भेजे गए समय सर्वर से समय अंतर घटाएं।
  8. कदम 6.

-समय पर सेट करें ग्राहक समय मुझे यकीन है कि अगर यह 100% सही ढंग से काम करेंगे नहीं हूँ, लेकिन मुझे आशा है कि इस मदद करता है!

+1

हाँ, मुझे लगता है, यह सही तरीका है। संकल्पनात्मक रूप से, आपको प्रत्येक क्लाइंट के साथ-साथ सर्वर पर टाइम टिकटें स्टोर करनी होंगी। और समय ऑफसेट जानने के द्वारा उनमें से प्रत्येक पर समय समायोजित करें। –

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