हाय मैं node.js और socket.io का उपयोग कर रीयलटाइम मल्टीप्लेयर गेम बनाने की कोशिश कर रहा हूं।node.js/socket.io का उपयोग कर रीयलटाइम बड़े पैमाने पर मल्टीप्लेयर गेम बनाने में कितना महंगा है?
अब, कोडिंग के मामले में स्वयं को लागू करना कोई समस्या नहीं होगी, लेकिन पारंपरिक http अनुरोध-प्रतिक्रिया वेब प्रोग्रामिंग मॉडल से आ रहा है, मुझे नहीं पता कि यह यातायात और सर्वर के मामले में कितना महंगा होगा भार। असल में एक गेम के दौरान, एक खिलाड़ी के ब्राउज़र को रीयलटाइम माउस इनपुट इवेंट ट्रैक करना चाहिए और उन्हें उसी गेम में अन्य सभी खिलाड़ियों को प्रसारित करना चाहिए।
यहां एक उदाहरण है, मान लें कि मेरा अवतार स्क्रीन पर मेरे माउस पॉइंटर के आसपास आता है, और इसे रीयलटाइम में स्क्रीन पर शेष खिलाड़ियों को प्रसारित किया जाना चाहिए। मैं कुछ ऐसा करना होगा:
// client side
$(document).on("mousemove", function(event){
io.emit("coordinate", {x: event.pageX, y: event.pageY});
});
और सर्वर पर:
// server side
io.sockets.on("connection", function(socket){
...
socket.on("coordinate", function(coordinate){
socket.get("username", function(err, username){
socket.broadcast.emit("move", {username: username, coordinate:coordinate});
});
});
...
});
मुझे लगता है कि यह काम करना चाहिए, लेकिन इस सर्वर, जो बाद में उन्हें प्रसारित करना चाहिए करने के लिए प्रति सेकंड कई घटनाओं उत्सर्जक ब्राउज़र की आवश्यकता है एक ही खेल में बाकी खिलाड़ियों के लिए, और मैं इसके निहितार्थ के बारे में चिंतित हूं। हालांकि एक बात यह है कि प्रसारित होने वाले डेटा के प्रत्येक टुकड़े का आकार इतना बड़ा नहीं है (मूल रूप से यह केवल एक एक्स और वाई समन्वय है)। यदि यह बहुत महंगा है, इससे कोई फर्क नहीं पड़ता कि यह गेम कितना अच्छा है, मुझे नहीं लगता कि मैं इसे भेज सकता हूं। क्या कोई मुझे प्रबुद्ध कर सकता है? धन्यवाद।
[संपादित करें] स्पष्ट करने के लिए, मैं इस वास्तुकला को और अधिक कुशल बनाने के तरीके के बारे में नहीं पूछ रहा हूं। मैं सिर्फ यह जानना चाहता हूं कि इस प्रकार की प्रणाली सिस्टम लोड (और रखरखाव लागत) के मामले में पर्याप्त यथार्थवादी है, सामान्य वेब सेवाओं के लिए मैं केवल पृष्ठ दृश्य संख्याओं को देखकर लागत का अनुमान लगा सकता हूं लेकिन वेबस्केट एक बिल्कुल नया क्षेत्र है, मुझे पता नहीं है के, तो मैं पूछना चाहता था।
उत्तर के लिए धन्यवाद, लेकिन स्पष्ट करने के लिए, मुझे यह नहीं कहना था कि इसे और कैसे बनाना है कुशल। मैं जानना चाहता था कि इस प्रकार के ऐप के पास कितना भार होगा - चाहे कल्पना संभव है या नहीं। इसके बाद मैं इसे और अधिक कुशल बनाने के बारे में सोच सकता हूं। लेकिन अभी के लिए मैं इस प्रकार के ऐप को कितना भार बनाएगा इस बारे में एक बॉलपार्क आंकड़ा भी जानना चाहता हूं। – Vlad