में नेटवर्किंग समस्याएं मैं नेटवर्किंग डिज़ाइन और गेम के लिए विशिष्ट चाल की तलाश में हूं। मुझे कुछ समस्याओं के बारे में पता है और उनमें से कुछ के लिए मेरे कुछ आंशिक समाधान हैं लेकिन ऐसी समस्याएं हो सकती हैं जिन्हें मैं अभी तक नहीं देख सकता। मुझे लगता है कि इसका कोई निश्चित जवाब नहीं है, लेकिन मैं वास्तव में एक उत्तर स्वीकार करूंगा। मैं समस्याओं की 4 श्रेणियों के बारे में सोच सकता हूं।गेम
बुरा नेटवर्क
ग्राहकों द्वारा भेजे गए संदेशों को कुछ समय लगेगा सर्वर तक पहुंचने का। सर्वर केवल उन्हें एफसीएफएस संसाधित नहीं कर सकता क्योंकि यह उच्च विलंबता वाले खिलाड़ियों के खिलाफ अनुचित है। इसके लिए आंशिक समाधान संदेशों पर टाइमस्टैम्प होगा, लेकिन इसके लिए आपको 2 चीजों की आवश्यकता है:
- ग्राहकों की घड़ी पर भरोसा करने में सक्षम होना चाहिए। (मुझे लगता है कि यह असंभव है।)
- निरंतर विलंबताएं जिन्हें आप माप सकते हैं। परिवर्तनीय विलंबता के बारे में आप क्या कर सकते हैं?
बहुत सारे गेम यूडीपी का उपयोग करते हैं जिसका अर्थ है कि संदेश खो सकते हैं। उस स्थिति में वे खेल की स्थिति का अनुमान लगाने की कोशिश करते हैं जो उनके पास पहले से मौजूद जानकारी के आधार पर है। यदि आप फिर से काम कर रहे हैं तो अनुमानित स्थिति सही है या नहीं, तो आप कैसे जानते हैं?
एमएमओ गेम में सर्वर बड़ी मात्रा में ग्राहकों को संभालता है। भार वितरित करने का सबसे अच्छा तरीका क्या है? खेल में स्थान के आधार पर? ग्राहकों के समूह को सर्वर पर बांधें? क्या आप सर्वर के माध्यम से सब कुछ भेजने से बच सकते हैं?
खिलाड़ियों छोड़ने
जब ऐसा होता है मैं 2 अलग व्यवहार देखा है। अधिकांश एफपीएस गेम में यदि खिलाड़ी जिसने गेम होस्ट किया है (मुझे लगता है कि वह सर्वर है) छोड़ देता है अन्य लोग नहीं खेल सकते हैं। अधिकांश आरटीएस खेलों में यदि कोई खिलाड़ी दूसरों को छोड़ देता है तो उसके बिना खेलना जारी रख सकता है। समर्पित सर्वर के बिना यह कैसे संभव है? क्या हर कोई पूर्ण राज्य जानता है? क्या वे किसी भी तरह सर्वर की भूमिका को स्थानांतरित कर रहे हैं?
जानकारी
अगले समस्या के लिए प्रवेश एक समर्पित सर्वर द्वारा हल किया जा सकता है, लेकिन मैं उत्सुक हूँ अगर यह एक के बिना किया जा सकता है। कई खेलों में खिलाड़ियों को खेल की पूरी स्थिति नहीं जाननी चाहिए। आरपीएस में फॉग-ऑफ-वॉर और एफपीएस में दीवारें अच्छे उदाहरण हैं। हालांकि, उन्हें यह जानने की जरूरत है कि कोई कार्रवाई मान्य है या नहीं। (उदा। क्या आप मुझे वहां से शूट कर सकते हैं या आप मानचित्र के दूसरी तरफ हैं।) इस मामले में ग्राहकों को अज्ञात स्थिति में परिवर्तनों को सत्यापित करने की आवश्यकता है। ऐसा कुछ ऐसा लगता है जिसे क्रिप्टोग्राफिक प्राइमेटिव्स के चालाक उपयोग के साथ हल किया जा सकता है। कोई विचार?
धोखा
ऊपर समस्याओं में से कुछ के लिए एक विश्वसनीय ग्राहक वातावरण में आसान कर रहे हैं, लेकिन वह नहीं माना जा सकता। क्या ऐसे समाधान हैं जो उदाहरण के लिए 80% सामान्य उपयोगकर्ता - 20% धोखेबाज वातावरण में काम करते हैं? क्या आप वास्तव में एंटी-चीट सॉफ़्टवेयर बना सकते हैं जो काम करता है (और कर्नेल मॉड्यूल जैसे हास्यास्पद चीजों की आवश्यकता नहीं है)?
मैंने इस प्रश्न और कुछ उत्तर https://stackoverflow.com/questions/901592/best-game-network-programming-articles-and-books पढ़े लेकिन अन्य उत्तर अनुपलब्ध/प्रतिबंधित सामग्री से लिंक हैं। यह एक मंच/ओएस स्वतंत्र प्रश्न है लेकिन विशिष्ट प्लेटफॉर्म/ओएस के लिए समाधान भी स्वागत है।
महान प्रश्न। –
शायद यह साइट इस सवाल को और अधिक सही है? http://gamedev.stackexchange.com/ – Nakilon
मुझे नहीं पता था कि साइट का एक गेम विशिष्ट संस्करण था। धन्यवाद, मैं निश्चित रूप से इसे देख लूंगा। – stribika