मैंने यह एक वाणिज्यिक PSP रेसिंग गेम के लिए किया है, जो एक तदर्थ नेटवर्क पर और एक वायरलेस हॉटस्पॉट के माध्यम से काम करता है। (या वांछित होने पर इंटरनेट पर एक स्थिर सर्वर के लिए)
बिंदु 2 के कारण प्रणाली को अनुकूलन के संबंध में जटिल होने की आवश्यकता नहीं है
मेरे अनुभव में, यह सच नहीं है। वायरलेस डिवाइस (विशेष रूप से छोटे पोर्टेबल वाले) वायर्ड नेटवर्क कनेक्शन वाले कंप्यूटर की तरह नहीं होते हैं - स्मार्टफोन और वायरलेस गेम कंसोल में गेम उद्देश्यों के लिए धीमी नेटवर्क इंटरफेस होता है।
मुझे गलत मत समझो - उनका थ्रूपुट आमतौर पर अच्छा होता है (यानी, प्रति सेकंड डेटा की मात्रा; फिल्मों को स्ट्रीमिंग करने के लिए महान) या आदि, लेकिन किसी विशेष पैकेट की डिलीवरी पर विलंबता बहुत खराब हो सकती है, और ऐसा हो सकता है अत्यधिक परिवर्तनशील है कि किसी भी पैकेट को वितरित करने में कितना समय लगेगा, इसका अनुमान लगाना भी मुश्किल है। यह भिन्नता और भी बदतर हो जाती है क्योंकि अधिक वायरलेस उपकरण एक साथ एक सामान्य क्षेत्र में पैक किए जाते हैं, क्योंकि उनके संकेत एक दूसरे के साथ हस्तक्षेप करना शुरू करते हैं। इसके परिणामस्वरूप, मेरा काफी समय पैकेटों की संख्या को कम करने में खर्च हुआ, जिसे भेजने की आवश्यकता थी, इसलिए हमारे पास कम पैकेट टकराव होंगे। (ध्यान दें कि यह उस स्थिति में कुछ हद तक कम है जहां एक संचालित नेटवर्क हॉटस्पॉट शामिल है, बजाय इसके कि डिवाइस एक दूसरे से सीधे एक तदर्थ नेटवर्क पर बात करें)
इस तरह के अनुकूलन के एक उदाहरण के रूप में, हमारा रेसिंग गेम एक ऐसी दुनिया में हुआ, जिसमें ट्रैफिक लाइट्स थीं। उनमें से हजारों। और हमें यह सुनिश्चित करने की आवश्यकता थी कि उनके संकेत एक नेटवर्क सत्र में सभी खिलाड़ियों के बीच एक समान हो। सभी को यह बताने के लिए पैकेट भेजने की कोशिश करने के बजाय कि कौन सी रोशनी किस राज्य में है, हमने सभी ट्रैफ़िक लाइटों के लिए एक स्थैतिक अनुसूची निर्धारित की, और फिर बस यह सुनिश्चित किया कि सभी ग्राहक वर्तमान "गेम टाइम" पर सहमत हों। चूंकि वे सभी खेल के समय को जानते थे, और सभी ट्रैफिक लाइट की स्थिति खेल के समय से निर्धारित की जा सकती थी, हमने वास्तव में कोई विशेष डेटा भेजे बिना उस सभी राज्य डेटा को सिंक्रनाइज़ किया। इस एक बदलाव ने हमारे नेटवर्किंग प्रदर्शन के लिए बहुत बड़ा बदलाव किया।
जो कहा गया, कई वायरलेस उपकरणों (अत्यधिक भिन्न पिंग समय के कारण बड़े पैमाने पर पैकेट हानि के बीच) के साथ एक विश्वसनीय घड़ी सिंक स्थापित करना एक बड़ी चुनौती थी। अगर आपको कोई दिलचस्पी है, तो इसके बारे में अधिक बात करने में खुशी होगी।
प्रत्येक ग्राहक अपने और अपने तात्कालिक वातावरण (उदाहरण के लिए गोलियों) के बारे में डेटा का एक आधिकारिक स्रोत हो सकता है।
यह वही है जो हमने किया, और इसने हमारी स्थिति (कारों) में हमारे लिए अच्छा काम किया। समस्याग्रस्त हिस्सा, निश्चित रूप से, जब कोई वस्तु खिलाड़ी 'बी' की तुलना में खिलाड़ी 'ए' के करीब हो जाती है, और इसका स्वामित्व इसलिए एक खिलाड़ी से दूसरे खिलाड़ी में स्थानांतरित हो जाता है।
यह वास्तव में खिलाड़ियों के बीच एक आश्चर्यजनक रूप से जटिल बातचीत है, जहां गेम 'ए' गेम 'बी' का प्रस्ताव करता है: "मुझे लगता है कि यह ऑब्जेक्ट आपके करीब है। आपको इसे नियंत्रित करना चाहिए।" और फिर गेम 'बी' स्थिति के अपने दृष्टिकोण के आधार पर या तो स्वीकार कर सकता है, या अस्वीकार कर सकता है। 'ए' और 'बी' के बीच कथित खेल की स्थिति में अंतर, और अनुरोध और प्रतिक्रिया भेजे जाने और प्राप्त होने के बीच के समय में बदलाव यह विश्वसनीय होने के लिए एक विशेष रूप से बहुत कम बातचीत बनाता है, और यह आसानी से एक गेम में पतित हो सकता है "हॉट पोटैटो", कई खिलाड़ियों के बीच वस्तु स्वामित्व के साथ लगातार उछलता रहता है। और यहां तक कि जब यह ठीक से काम करता है, जब गेम 'ग' के सहूलियत बिंदु से देखा जाता है, तो '
मेरा अभिप्राय यह है कि इस तरह के "ऑब्जेक्ट ओनरशिप" दृष्टिकोण को गोलियों जैसी छोटी, अल्पकालिक वस्तुओं के लिए बहुत बोझिल होने की संभावना है। हमने इसे ट्रैफिक कारों और एआई रेसर्स के लिए इस्तेमाल किया, जो अपेक्षाकृत लंबे समय तक सिमुलेशन में रहने के लिए प्रेरित हुए। ऐसा लगता है कि यदि आप ग्राहकों पर भरोसा करने के इच्छुक हैं, तो प्रत्येक खिलाड़ी का खेल उनकी स्थिति और उनके प्रोजेक्टाइल के अनुरूप होगा, और यह घोषणा करें कि उस खिलाड़ी को किसी अन्य व्यक्ति के प्रोजेक्टाइल ने मारा है। (इसलिए "गेम ए" के रूप में, मैं यह कहने के लिए जिम्मेदार हूं कि खिलाड़ी ए और खिलाड़ी ए के प्रोजेक्टाइल कहां हैं, लेकिन खिलाड़ी बी यह कहने के लिए जिम्मेदार है कि क्या मैंने खिलाड़ी बी को मारा है)। कुछ अच्छे डेड-रेकिंग के साथ, आपको इस तरह की प्रणाली से सुंदर उचित व्यवहार प्राप्त करने में सक्षम होना चाहिए।