XNA और Xbox 360 के साथ नेटवर्किंग संभावनाएँ क्या हैं?


11

मुझे पता है कि Xbox 360 के लिए XNA के पास नेटवर्किंग तक सीमित पहुंच है, केवल एक प्रॉपर्टीज Microsoft प्रोटोकॉल के माध्यम से अन्य Xbox 360 इकाइयों को संचार की अनुमति देने की अफवाह है।

XNA ऑफ़र की नेटवर्किंग संभावनाएँ क्या हैं? कितनी Xbox 360 इकाइयों को एक ही सबनेट से जोड़ा जा सकता है? 16 अधिकतम? क्या कोई भी Xbox पीयर-टू-पीयर संचार जैसे सबनेट पर किसी अन्य Xbox के लिए डेटा भेज सकता है? क्या Xbox Xbox के साथ Windows PC पर संवाद कर सकता है? क्या कोई अन्य उपकरण हैं जिनसे आप संवाद कर सकते हैं?

और गेम सर्वर के बारे में क्या? क्या आप अपने खुद के मल्टीप्लेयर गेम सर्वर को सेटअप कर सकते हैं और इसमें Xbox के कनेक्ट कर सकते हैं और स्वतंत्र रूप से संवाद कर सकते हैं? आप किस प्लेटफ़ॉर्म में गेम सर्वर कोड लिखेंगे? यूनिक्स पर सी ++? एक समय में कितनी Xbox इकाइयाँ एक सर्वर से जुड़ सकती हैं? यदि आप अपना गेम सर्वर सेटअप नहीं कर सकते हैं तो अनौपचारिक 'हैक' हैं जो इंडी डेवलपर्स को गेम सर्वर विकसित करने और चलाने में सक्षम बनाते हैं?

चूँकि मैं कोई Xbox डेवलपर नहीं हूं (अर्थात, मेरे पास $ 10000 देवकी नहीं है) मैं Z ++ com जैसी C ++ पुस्तकालयों का उपयोग नहीं कर सकता ।

जवाबों:


10

LAN या इंटरनेट पर डेटा ट्रांसफर

जब आप XNA गेम स्टूडियो के साथ नेटवर्क गेम बनाते हैं तो दो प्रकार के ऑनलाइन मल्टीप्लेयर गेम उपलब्ध हैं:

  1. सिस्टम लिंक गेम सत्र (LAN)
  2. लाइव सत्र। (इंटरनेट)

उपलब्ध सत्र प्रकार :

  1. लोकल एरिया नेटवर्क गेमप्ले के लिए सिस्टम लिंक का उपयोग करें
  2. Xbox LIVE और Windows के लिए खेलों में साइन इन करें - LIVE सर्वर
  3. खेल के विकास के दौरान इंटरनेट पर अन्य मशीनों से कनेक्ट करने के लिए LIVE का उपयोग करें

कनेक्ट किए गए Xbox और PC इकाइयों के बीच डेटा ट्रांसफर को LocalNetworkGamer वर्ग (Xbox 360 पर समर्थित) का उपयोग करके कार्यान्वित किया जाता है और डेटा एक PacketWriter का उपयोग करके लिखा जाता है:

foreach (LocalNetworkGamer gamer in session.LocalGamers)
{
    // Get the tank associated with this player.
    Tank myTank = gamer.Tag as Tank;
    // Write the data.
    packetWriter.Write(myTank.Position);
    packetWriter.Write(myTank.TankRotation);
    packetWriter.Write(myTank.TurretRotation);
    packetWriter.Write(myTank.IsFiring);
    packetWriter.Write(myTank.Health);

    // Send it to everyone.
    gamer.SendData(packetWriter, SendDataOptions.None);

}

नेटवर्क टोपोलॉजी

सिस्टम लिंक गेम के लिए, आप नेटवर्क गेम का परीक्षण करने के लिए निम्न हार्डवेयर कॉन्फ़िगरेशन में से किसी एक का उपयोग कर सकते हैं :

  • एक विकास कंप्यूटर और एक Xbox 360
    (विकास कंप्यूटर पर खेल का एक उदाहरण और Xbox 360 पर चल रहा है)। निर्माता को Xbox 360 पर कोड चलाने के लिए एक Xbox LIVE रजत और एक निर्माता क्लब सदस्यता की आवश्यकता होती है।

  • एक विकास कंप्यूटर और एक क्लाइंट कंप्यूटर
    (प्रत्येक कंप्यूटर पर गेम का एक उदाहरण चलाना)। निर्माता एक ही समय पर एक ही कंप्यूटर पर दो नेटवर्क वाले XNA फ्रेमवर्क गेम नहीं चला सकते हैं। परीक्षण उद्देश्यों के लिए दूसरा गेम इंस्टेंस चलाने के लिए रचनाकारों को दूसरी मशीन की आवश्यकता होती है। इस परिदृश्य के लिए कोई Xbox LIVE सदस्यता या निर्माता क्लब सदस्यता आवश्यक नहीं है।

  • एक विकास कंप्यूटर और दो Xbox 360 कंसोल
    (प्रत्येक Xbox 360 पर गेम का एक उदाहरण चल रहा है)। यहाँ एक निर्माता ने दो Xbox 360s पर गेम को डिप्लॉय और डिबग किया। इस परिदृश्य के लिए निर्माता को कम से कम दो Xbox LIVE सिल्वर सदस्यता और दो निर्माता क्लब सदस्यता (प्रत्येक Xbox 360 के लिए एक जोड़ी) की आवश्यकता होती है।

नेटवर्क पर वॉइस ट्रांसफर

वॉयस डेटा स्वचालित रूप से प्रसारित किया जाता है और किसी भी शीर्षक प्रयास के बिना दोहराया जाता है। टीम चैट या निकटता की आवाज़ को लागू करने के लिए टाइटल इसका उपयोग कर सकते हैं।

XNA फ्रेमवर्क वॉयस डेटा स्ट्रीम में सीधे प्रोग्राम एक्सेस को उजागर नहीं करता है।

  • क्या उनके पास वॉयस एक्सेस है? - NetworkGamer.HasVoice
  • क्या वे वर्तमान में बात कर रहे हैं? - NetworkGamer.IsTalking
  • क्या वे मौन हैं? - NetworkGamer.IsMutedByLocalUser

4

360 पर XNA गेम्स और उपयोग करने के लिए आवश्यक हैं Live- जो कि मुझे याद है कि प्रति "गेम" अधिकतम उपयोगकर्ता 32 है, और आप किसी भी बाहरी सेवाओं से बिल्कुल भी नहीं जुड़ सकते हैं।


अपडेट 1: 32 खिलाड़ी अधिकतम की पुष्टि करने वाला फॉर्म पोस्ट - http://forums.create.msdn.com/forums/t/27446.aspx


अद्यतन 2: यह ध्यान दिया जाना चाहिए XNA on Windows != (XNA on Xbox | XNA on Windows Phone)कि यह कहना है कि विंडोज पर, XNA कुछ भी कर सकता है। कोई भी अन्य .NET अनुप्रयोग कर सकता है; Xbox और WP7 XNA पर Xbox Live गेमिंग सेवाओं का उपयोग करने के लिए प्रतिबंधित है।

Xbox Live और XNA पर MSDN दस्तावेज़ - http://msdn.microsoft.com/en-us/library/bb975642.aspx


उसी मंच पृष्ठ पर: "मेरे लिए, मैं अपने नेटवर्क घटक के लिए बिल्डिंग बेस के रूप में System.Net का उपयोग करता हूं। मुझे पसंद है कि इसके निम्न-स्तर के पर्याप्त कैसे मुझे" सॉकेट "," बाइंड () "जैसे सामान प्रदान कर सकते हैं। आदि लेकिन आप किसी भी अन्य नेटवर्क लाइब्रेरी का उपयोग कर सकते हैं, यह व्यक्ति के स्वाद पर निर्भर है। :) "
रॉबिनिक्स

1
आपका भ्रम समझ में आता है, लेकिन विंडोज पर XNA किसी भी नेटवर्किंग घटक का उपयोग कर सकता है क्योंकि Windows XNA पर सिर्फ .NET कोड है; हालाँकि, Xbox पर आप Live का उपयोग करने के लिए मजबूर हैं क्योंकि .NET फ्रेमवर्क के Xbox के कार्यान्वयन में लाइव गेमिंग नेटवर्क के अलावा कोई नेटवर्क कार्यान्वयन नहीं है।
नैट

2
XNA Games on 360 use and are required to use Live- बिल्कुल गलत। MSDN स्वयं पुष्टि करता है कि Xbox 360 गेम मल्टीप्लेयर गेमप्ले के लिए सिस्टम लिंक (जो LAN है) या LIVE गेम सर्वर का उपयोग कर सकता है। बेहद बेख़बर जवाब। आपके द्वारा लिंक किए गए बहुत MSDN लेख को खोलें और "XNA क्रिएटर्स क्लब और Xbox लाइव सदस्यता आवश्यकताएँ" अनुभाग पर जाएं और प्रारंभिक पैराग्राफ पढ़ें।
रॉबिनक्स

मैंने यह धारणा बना ली कि यह प्रश्न इंटरनेट आधारित गेम से संबंधित था; चूंकि मेरे अनुभव में, LAN पर सिस्टम-लिंक एक बहुत ही दुर्लभ परिदृश्य है ...
Nate

यह एक उत्सुक धारणा है क्योंकि मेरे सवाल का उद्देश्य संभावनाओं के लिए पूछना था, और आपके जवाब ने नेटवर्किंग में खुली संभावनाओं के पूरे व्यापक क्षेत्र को बंद कर दिया। सौभाग्य से मुझे विश्वास नहीं हुआ कि आप तुरंत और अपने लिए शोध कर रहे हैं। अन्यथा हम में से बहुत से लोग यह मानते होंगे कि Xbox 360 में लगभग LIVE सर्वर के अलावा कोई नेटवर्किंग क्षमता नहीं है।
रॉबिनिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.