2011-02-23 16 views
5

मैं एक शौक परियोजना पर काम कर रहा हूं जिसमें एक बहु-खिलाड़ी वेब ब्राउज़र गेम शामिल है। यह मेरा पहला है और मैंने अभी विलंबता मुद्दे में ठोकर खाई है।मुझे गेम विकास में विलंबता से कैसे निपटना चाहिए?

मैं उपयोगकर्ता नियंत्रण को यथासंभव चिकनी बनाने की कोशिश कर रहा हूं और विलंबता रास्ते में हो रही है।

मुझे लगता है कि औसत विलंबता लगभग 80-200ms हो सकती है और यह लगभग-चिकनी नियंत्रण के लिए कमांड-एक्शन देरी 100ms से कम होने की आवश्यकता है।

मैं कुछ प्रश्न हैं:

  • यह कोशिश करते हैं और भेज उपयोगकर्ता क्रियाओं 100ms से पहले आवश्यक करना एक अच्छी आदत होगा? जैसे उपयोगकर्ता दबाए गए '->' तीर कुंजी को दबाता है, मैं सर्वर पर कार्रवाई की आवश्यकता होने से पहले दायां तीर कुंजी क्रिया 100ms सबमिट करता हूं।

  • डेवलपर ऑनलाइन सर्वर और क्लाइंट पर क्या हो रहा है के बीच स्थिरता/synchonise कैसे रखता है?

  • कोई सुझाव या सिफारिशें?


धन्यवाद दोस्तों, मदद की बहुत सराहना की जाएगी। :)

+4

http://gamedev.stackexchange.com/ –

+0

@ralu पर पूछने का प्रयास करें: धन्यवाद! मुझे नहीं पता था कि यह अस्तित्व में था! : डी – RadiantHex

उत्तर

5

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

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

प्रश्न 3) फिर प्रोफ़ाइल विकसित करें। इसे जिस तरह से आप तर्कसंगत रूप से चाहते हैं उसे बनाएं। फिर, यदि आपको लगता है कि प्लेबिलिटी बहुत लगी है, तो इंटरफ़ेस और नेटवर्किंग परत को अनुकूलित करने पर काम करें। आपको यह ठीक लग सकता है!

+0

इसके लिए धन्यवाद! मैं लोगों से बहुत सामान्य होने के बारे में शिकायत करने की उम्मीद कर रहा था, भले ही मुझे वास्तव में यह नहीं पता कि इससे कैसे बचें। आपके उत्तर बहुत उपयोगी हैं, धन्यवाद! क्या कोई उपयोगी संसाधन है जो आप मुझे मौका दे सकते हैं? – RadiantHex

+1

@RadiantHex कोई समस्या नहीं है। पहले दो प्रश्न बिल्कुल सामान्य नहीं थे, और आखिरी व्यक्ति व्यक्तिगत टिप्पणी के लिए निमंत्रण था, जो एसओ का सबसे अच्छा हिस्सा है। संसाधनों के लिए, मैं बस इतना कह सकता हूं कि वे सवाल उठते हैं (जाहिर है, Google पहले !!) एक साइड नोट के रूप में, मुझे लगता है कि गेमेडेव पर जवाब बहुत अधिक बंद हैं और एसओ पर उन लोगों की तुलना में विचार किया जाता है। मेरी सलाह यह है कि यदि आपके पास कोई प्रश्न है तो उसे एक और आवेदन किया जाएगा, लेकिन यह एक खेल होता है, इसे खेल के संदर्भ में अनुवादित करें, इसे गेम-देव के साथ टैग करें और उससे पूछें। {जारी रखा ...} – corsiKa

+1

यह आपको हर किसी की विशेषज्ञता पर आकर्षित करने देता है, भले ही यह ऑर्डर-एंट्री सिस्टम या टेलीकॉम है, लेकिन जो लोग जीवित/अपने खाली समय में गेम करते हैं वे अभी भी उस बिंदु, विशिष्ट अंतर्दृष्टि की पेशकश करने में सक्षम होंगे। अगर आपने इसे एजेक्स ऑर्डर-एंट्री सिस्टम के बारे में पूछा था, तो मैंने आपको तीनों सवालों के लिए एक ही जवाब दिया होगा। प्रस्तुत करें, फिर मान्य करें। नियमित अंतराल पर वर्कस्पेस स्थिति अद्यतन करें। विकास, फिर प्रोफ़ाइल। Gamedev पर, आप "omg खेल के लिए अजगर का उपयोग नहीं करते" या कुछ मिलता है। – corsiKa

1

आवश्यकता होने पर संसाधनों को लोड करना एक महत्वपूर्ण बात है। यही है, अधिकांश 3 डी 'मूविंग' गेम में, संसाधनों को लोड करने के लिए वस्तुओं की पहुंच के रूप में लोड करें।

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