विंडोमैकसॉफ्टवेयरसेटिंग्ससुरक्षाउत्पादकतालिनक्सएंड्रॉइडप्रदर्शनकॉन्फ़िगरेशनएप्पल सभी

यूनिटी में मल्टीप्लेयर सेट अप कैसे करें

संपादित 3 महीने पहले द्वारा ExtremeHow संपादकीय टीम

यूनिटीमल्टीप्लेयरनेटवर्किंगखेल विकासऑनलाइनलैन्सस्क्रिप्टिंगसी#सर्वरक्लाइंटफोटॉनमिररविंडोमैकलिनक्स

यूनिटी में मल्टीप्लेयर सेट अप कैसे करें

अनुवाद अपडेट किया गया 3 महीने पहले

यूनिटी वीडियो गेम विकसित करने के लिए सबसे लोकप्रिय प्लेटफार्मों में से एक है, और मल्टीप्लेयर कार्यक्षमता सेट अप करने से खिलाड़ियों को एक-दूसरे के साथ इंटरैक्ट करने की अनुमति देकर गेमिंग अनुभव को बढ़ाया जा सकता है। इस विस्तृत गाइड में, हम यूनिटी में मल्टीप्लेयर सेट अप करने की प्रक्रिया को शुरू से अंत तक कवर करेंगे। यह गाइड शुरुआती और मध्यम स्तर के यूनिटी डेवलपर्स के लिए है जो मल्टीप्लेयर गेम सेट अप में नए हैं।

यूनिटी में मल्टीप्लेयर का परिचय

मल्टीप्लेयर गेम्स कई खिलाड़ियों को एक ही गेम वातावरण में इंटरैक्ट और खेलना संभव बनाते हैं, चाहे वे एक ही डिवाइस पर हों या इंटरनेट से जुड़े हों। यूनिटी में मल्टीप्लेयर सेट अप करते समय, हमें जरूरी मूलभूत घटकों जैसे नेटवर्किंग, सिंक्रनाईज़ेशन और खिलाड़ी संचार को समझना होगा।

सही नेटवर्किंग समाधान का चुनाव

शुरू करने से पहले, यह महत्वपूर्ण है कि आप अपने प्रोजेक्ट के लिए एक नेटवर्किंग समाधान चुनें जो सबसे उपयुक्त हो। यूनिटी नेटवर्किंग के लिए कई विकल्प प्रदान करता है, जिनमें से प्रत्येक के अपने फायदे हैं:

इस गाइड के लिए, हम यूनिटी के लिए गेम ऑब्जेक्ट्स का नेटकोड का उपयोग करेंगे क्योंकि यह एक सीधी विधि प्रदान करता है और यूनिटी के मौजूदा सिस्टम्स के साथ अच्छी तरह से एकीकृत होता है।

चरण 1: प्रोजेक्ट सेट अप

नया यूनिटी प्रोजेक्ट बनाकर शुरू करें। यूनिटी हब खोलें, नया प्रोजेक्ट बटन पर क्लिक करें, एक टेम्पलेट चुनें जो आपके खेल के लिए उपयुक्त है (2D या 3D) और अपने प्रोजेक्ट को नाम दें।

गैम ऑब्जेक्ट्स के लिए नेटकोड इंस्टॉल करना

अपने प्रोजेक्ट को बनाने के बाद, आपको यूनिटी के लिए गेम ऑब्जेक्ट्स का नेटकोड पैकेज इंस्टॉल करना होगा:

  1. अपना यूनिटी प्रोजेक्ट खोलें।
  2. विंडोज > पैकेज मैनेजर पर जाएं।
  3. पैकेज मैनेजर में, + ऐड आइकन पर क्लिक करें और पैकेज को नाम से जोड़ें... चुनें।
  4. डायलॉग बॉक्स में com.unity.netcode.gameobjects दर्ज करें और जोड़ें पर क्लिक करें।

चरण 2: मूलभूत नेटवर्किंग सेट अप

नेटकोड पैकेज इंस्टॉल करने के बाद, आप मूलभूत नेटवर्किंग इन्फ्रास्ट्रक्चर सेट अप करना शुरू करेंगे। नेटवर्किंग लॉजिक को संभालने के लिए एक स्क्रिप्ट बनाकर शुरू करें।

नेटवर्क मैनेजर बनाना

NetworkManager आपके मल्टीप्लेयर गेम की स्थिति और लॉजिक को प्रबंधित करने के लिए आवश्यक है। एक नई स्क्रिप्ट बनाएँ जिसका नाम NetworkManager हो:

// NetworkManager.cs
using Unity.Netcode;
using UnityEngine;
public class NetworkManagerScript : MonoBehaviour {
    private void Start() {
        Debug.Log("नेटवर्क मैनेजर प्रारंभ।");
    }
    public void StartHost() {
        NetworkManager.Singleton.StartHost();
    }
    public void StartClient() {
        NetworkManager.Singleton.StartClient();
    }
    public void StartServer() {
        NetworkManager.Singleton.StartServer();
    }
}

यह स्क्रिप्ट खेल को होस्ट, सर्वर या क्लाइंट मोड में शुरू करने के लिए विधियाँ प्रदान करती है। इस स्क्रिप्ट को आपके दृश्य में एक गेम ऑब्जेक्ट, उदाहरण के लिए, एक गेमकंट्रोलर पर अटैच करें।

नेटवर्क प्रीफैब्स को कॉन्फ़िगर करना

एक मल्टीप्लेयर गेम में, खिलाड़ियों और वस्तुओं को सभी क्लाइंट्स और होस्ट्स के बीच सिंक्रोनाइज किया जाना चाहिए। एक खिलाड़ी प्रीफैब सेट करें जिसे गेम में शामिल होने वाले प्रत्येक खिलाड़ी के लिए इंस्टेंशिएट किया जाएगा:

  1. अपने दृश्य में आपका खिलाड़ी ऑब्जेक्ट बनाएँ, उदाहरण के लिए, एक साधारण क्यूब या एक चरित्र मॉडल।
  2. अपने खिलाड़ी ऑब्जेक्ट को Assets फोल्डर में घसीटकर Prefab बनाएं।
  3. खिलाड़ी प्रीफैब में NetworkObject घटक जोड़ें।
  4. यूनिटी संपादक में, उस गेम ऑब्जेक्ट पर क्लिक करें जिसमें आपने NetworkManagerScript को अटैच किया है।
  5. इंस्पेक्टर के नेटवर्किंग अनुभाग में, अपने खिलाड़ी प्रीफैब को नेटवर्क प्रीफैब्स सूची में असाइन करें।

चरण 3: खिलाड़ी की मूवमेंट का कार्यान्वयन

मल्टीप्लेयर वातावरण में खिलाड़ियों के बीच इंटरैक्शन के लिए, हमें मूवमेंट और नेटवर्क पर उस मूवमेंट को सिंक्रनाइज़ करना आवश्यक है। एक स्क्रिप्ट बनाएँ जो खिलाड़ी के मूवमेंट को संभाले और इसे अपने खिलाड़ी प्रीफैब में अटैच करें:

// PlayerMovement.cs
using UnityEngine;
using Unity.Netcode;
public class PlayerMovement : NetworkBehaviour {
    public float moveSpeed = 5f;
    private void Update() {
        if (IsOwner) {
            float moveX = Input.GetAxis("Horizontal");
            float moveZ = Input.GetAxis("Vertical");
            Vector3 move = transform.right * moveX + transform.forward * moveZ;
            transform.position += move * moveSpeed * Time.deltaTime;
        }
    }
}

इस स्क्रिप्ट में, यदि खिलाड़ी ऑब्जेक्ट का मालिक है तो उसे मूव करने की अनुमति है, यह सुनिश्चित करते हुए कि केवल सही खिलाड़ी ही अपने चरित्र को नियंत्रित कर सकता है।

चरण 4: सिंक्रोनाइज़ेशन और नेटवर्किंग

एक बार खिलाड़ी चल सकें, यह महत्वपूर्ण है कि मूवमेंट और क्रियाएँ नेटवर्क के सभी पीयर्स में सिंक्रोनाइज हों। यूनिटी का नेटकोड नेटवर्क ट्रांसफॉर्म्स और आरपीसी (रिमोट प्रोसीजर कॉल) के माध्यम से क्षमताएँ प्रदान करता है।

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

NetworkTransform घटक स्वचालित रूप से स्थिति परिवर्तन को सिंक्रोनाइज करने की अनुमति देता है। इस घटक को अपने खिलाड़ी प्रीफैब में जोड़ें:

आरपीसी के लिए खिलाड़ी इंटरैक्शन

रिमोट प्रोसीजर कॉल्स (आरपीसी) विधियाँ हैं जिन्हें रिमोट क्लाइंट या सर्वर पर कॉल किया जाता है। इन्हें घटनाओं के लिए उपयोग किया जाता है जिन्हें तत्काल निष्पादित करने की आवश्यकता होती है, जैसे कि खिलाड़ी कार्य या इंटरैक्शन।

// एक आरपीसी कॉल का उदाहरण
[ServerRpc]
void PerformActionServerRpc() {
    // उदाहरण कार्य जो संभवतः किसी आइटम की स्थिति को अपडेट कर सकता है
    Debug.Log("सर्वर कार्रवाई कर रहा है।");
}

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

चरण 5: कार्यक्षमता का परीक्षण

मूल नेटवर्किंग सेट अप के पूरा होने के बाद, मल्टीप्लेयर कार्यक्षमता का परीक्षण करें। यूनिटी नेटवर्क मैनेजर UI प्रदान करता है ताकि आप अपने मल्टीप्लेयर गेम का आसानी से परीक्षण कर सकें।

निर्माण और परीक्षण

अपने खेल के कई उदाहरण बनाएँ और चलाएँ ताकि होस्ट और क्लाइंट खिलाड़ियों का सिमुलेशन हो सके:

  1. फ़ाइल > बिल्ड सेटिंग्स... पर जाएं।
  2. यकीन कर लें कि आपका वर्तमान दृश्य बिल्ड में जोड़ा गया है।
  3. बिल्ड पर क्लिक करें अपना गेम एक्सेक्यूटेबल बनाने के लिए।
  4. एक उदाहरण को होस्ट के रूप में और दूसरे को क्लाइंट के रूप में चलाकर मल्टीप्लेयर कनेक्टिविटी और इंटरैक्शन का परीक्षण करें।

उन्नत विषय

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

मैचमेकिंग

मैचमेकिंग मल्टीप्लेयर गुमों में खिलाड़ियों की जोड़ीबंदी करना शामिल है। इसके लिए यूनिटी की मैचमेकिंग सेवा या तृतीय-पक्ष सेवाओं जैसे कि फोटोन क्लाउड का उपयोग करने पर विचार करें।

डेडिकेटेड सर्वर

डेडिकेटेड सर्वर का उपयोग कई लाभ प्रदान करता है, जैसे बेहतर स्थिरता और कम विलंबता। आप ग्राहक के लिए अपने सर्वर लॉजिक को अलग से परिनियोजित कर स्केलेबिलिटी के लिए कर सकते हैं।

निष्कर्ष

यूनिटी में मल्टीप्लेयर सेट अप करने के लिए नेटवर्किंग, सिंक्रनाईज़ेशन की मूल बातें और खिलाड़ी इंटरैक्शन का कुशल प्रबंधन समझना आवश्यक है। इस गाइड का पालन करके, आपने खिलाड़ी मूवमेंट और परीक्षण घटकों के साथ एक मूलभूत मल्टीप्लेयर परियोजना सेट अप करना सीखा है। अपने विशेष गेम की जरूरतों के आधार पर अपनी सेट अप को फाइन-ट्यून करें और एक समृद्ध मल्टीप्लेयर अनुभव के लिए यूनिटी की व्यापक नेटवर्किंग क्षमताओं का पता लगाना जारी रखें।

यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं


टिप्पणियाँ