स्थानीय सर्वर से चलाना

गेम डेवलपमेंट और टेस्टिंग को आसान बनाने के लिए, आप इसे लोकल सर्वर से लॉन्च कर सकते हैं। टेस्टिंग prod- और dev-एनवायरनमेंट में उपलब्ध है।

लोकल सर्वर से गेम लॉन्च करने के बाद, आप एसडीके की सभी सुविधाओं का उपयोग कर सकते हैं।

Prod-एनवायरनमेंट

प्रतिबंध

यांडेक्स गेम्स प्लेटफॉर्म पर रजिस्ट्रेशन और गेम ड्राफ्ट बनाना आवश्यक है।

मॉडरेशन के लिए गेम सबमिट करने से पहले फाइनल चेक के लिए उपयुक्त। इस मोड में गेम यांडेक्स गेम्स प्लेटफॉर्म के साथ वास्तविक इंटरैक्शन करती है।

विशेषताएँ:

  • गेम yandex.com/games पर वास्तविक एड्रेस से खुलती है।
  • बाहरी होस्ट्स को रिक्वेस्ट भेजने के लिए, उन्हें CSP नियमों में जोड़ना होगा।
  • वास्तविक विज्ञापन दिखाए जाते हैं।
  • खिलाड़ी यांडेक्स पासपोर्ट के माध्यम से ऑथराइज़ होता है।
  • खिलाड़ी और लीडरबोर्ड डेटा सर्वर पर सेव होता है।
  • आइटम कैटलॉग सर्वर से लोड होता है, खरीदारी सर्वर पर प्रोसेस होती है।
  • डिबगिंग के लिए एड्रेस बार में पैरामीटर &debug-mode=16 का उपयोग कर डिबग पैनल इस्तेमाल कर सकते हैं।

लोकल वर्जन को prod-एनवायरनमेंट में लॉन्च करने के लिए सेटअप:

लोकल सर्वर का स्वयं सेटअप

  1. localhost सर्वर सेटअप करें।
  2. ड्राफ्ट मोड में गेम खोलें।
  3. एड्रेस में पैरामीटर जोड़ें ?game_url=https://localhost.

नोट

सुरक्षा कारणों से, game_url पैरामीटर में केवल localhost डोमेन सपोर्टेड है।

npm पैकेज की मदद से लोकल सर्वर सेटअप

  1. Node.JS साइट पर दिए गए निर्देशों के अनुसार npm इंस्टॉल करें।

  2. npm की मदद से @yandex-games/sdk-dev-proxy पैकेज इंस्टॉल करें:

    npm install -g @yandex-games/sdk-dev-proxy
    
  3. गेम लॉन्च करें। आप कर सकते हैं:

    npx @yandex-games/sdk-dev-proxy -h <लोकल सर्वर का एड्रेस>
    
    npx @yandex-games/sdk-dev-proxy -p <गेम फोल्डर का पाथ>
    

    पैकेज एसडीके रिसोर्सेज तक रिक्वेस्ट्स को उसी सर्वर पर प्रॉक्सी करता है जहां आपकी गेम होस्ट की जाएगी।

अगर आप --app-id पैरामीटर देंगे, तो लॉन्च पर गेम yandex.com/games पर खुलेगी:

npx @yandex-games/sdk-dev-proxy -p <गेम फोल्डर का पाथ> --app-id=<गेम आईडी>

अगर --app-id नहीं दिया जाए, तो कंसोल में सर्विस पर गेम का टेम्प्लेट लिंक और लोकल सर्वर का लिंक दिखाई देगा।

लॉन्च पैरामीटर्स

पैरामीटर

विवरण

--help

हेल्प।

--host, -h

वह होस्ट जहां गेम का लोकल सर्वर सेटअप है (जैसे, webpack-dev-server के लिए)।

--path, -p

गेम रिसोर्सेज वाली फोल्डर का पाथ।

--port

सर्वर जिस पोर्ट पर खुलेगा (डिफॉल्ट 8080)।

--app-id, -i

गेम ड्राफ्ट का आईडी।

--csp, -c

Content-Security-Policy के साथ मेटा टैग जोड़ता है। यह सर्विस पर index.html में बनने वाले टैग से मेल खाता है।

--log, -l

कंसोल में रिक्वेस्ट्स का लॉगिंग चालू करता है (डिफॉल्ट चालू)।

--tld

yandex.tld डोमेन बदलता है, जैसे yandex.com (डिफॉल्ट ru)।

--dev-mode

अगर true, तो गेम dev-एनवायरनमेंट में लॉन्च होगी (डिफॉल्ट false, जो prod-एनवायरनमेंट से मेल खाता है)।

Dev-एनवायरनमेंट

नोट

यांडेक्स गेम्स प्लेटफॉर्म पर रजिस्ट्रेशन और गेम ड्राफ्ट की आवश्यकता नहीं है।

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

विशेषताएँ:

  • गेम सीधे https://localhost पर खुलती है।
  • CSP की कोई पाबंदी नहीं, किसी भी बाहरी होस्ट को रिक्वेस्ट भेज सकते हैं।
  • विज्ञापनों की जगह प्लेसहोल्डर दिखते हैं, सभी कॉलबैक फंक्शन्स prod-एनवायरनमेंट की तरह काम करते हैं।
  • खिलाड़ी ऑथराइजेशन ब्राउज़र डायलॉग मॉक के माध्यम से काम करता है।
  • खिलाड़ी और लीडरबोर्ड डेटा localStorage में सेव होता है।
  • आइटम कैटलॉग लोकल फाइल से लोड होता है, खिलाड़ी की खरीदारी localStorage में सेव होती है।
  • डिबगिंग के लिए ब्राउज़र एड्रेस बार में पैरामीटर्स सेट कर सकते हैं।
  • ब्राउज़र कंसोल में स्वतः सभी एसडीके कॉल्स लॉग होती हैं, मॉड्यूल्स के अनुसार अलग-अलग।

Dev-एनवायरनमेंट में लॉन्च npm पैकेज @yandex-games/sdk-dev-proxy के माध्यम से भी उपलब्ध है। सेटअप निर्देश prod-एनवायरनमेंट के समान हैं, बस लॉन्च पर पैरामीटर --dev-mode=true देना होगा।

आप कर सकते हैं:

npx @yandex-games/sdk-dev-proxy -h <लोकल सर्वर का एड्रेस> --dev-mode=true
npx @yandex-games/sdk-dev-proxy -p <गेम फोल्डर का पाथ> --dev-mode=true

ब्राउज़र एड्रेस बार के लिए उपलब्ध पैरामीटर्स

export interface SDKMocks {
    /** क्या डेस्कटॉप पर शॉर्टकट जोड़ने की अनुमति है? */
    canShowPrompt?: boolean;
    /** क्या खिलाड़ी ऑथराइज़्ड है? */
    isAuthorized?: boolean;
    /** अगर गेम की ओरिएंटेशन लॉक्ड है। */
    lockedOrientation?: ELockedOrientation;
}

/** मोबाइल स्क्रीन पर गेम की लॉक्ड ओरिएंटेशन। */
export enum ELockedOrientation {
    /** गेम केवल लैंडस्केप में सपोर्टेड है। */
    LANDSCAPE = 'landscape',
    /** गेम दोनों ओरिएंटेशन में सपोर्टेड है। */
    NONE = 'none',
    /** गेम केवल पोर्ट्रेट में सपोर्टेड है। */
    PORTRAIT = 'portrait',
}

उदाहरण

localhost:8080?mocks={"canShowPrompt":true,"isAuthorized":true,"lockedOrientation":"landscape"}

आइटम कैटलॉग का लोकल सेटअप

इन-ऐप खरीदारी की एमुलेशन के लिए, प्रोजेक्ट रूट में purchases-catalog.json फाइल बनाएं और इसमें खरीदारी की लिस्ट डालें — वैसी ही जैसी आप डेवलपर कंसोल में डाल चुके हैं या डालने की योजना बना रहे हैं। एसडीके dev-मोड में इस फाइल से खरीदारी लिस्ट लोड करेगा।

उदाहरण

[
    {
        "description": "Well styled modern avatar image",
        "id": "avatar",
        "imageURI": "{path-to-image}",
        "price": "100 RUB",
        "priceCurrencyCode": "RUB",
        "priceValue": "100",
        "title": "Premium avatar",
        "getPriceCurrencyImage": "return ''"
    }
]

खरीदारी कॉल के समय सक्सेस और कैंसिलेशन ऑप्शन्स वाला मॉक डायलॉग दिखेगा, ताकि आप दोनों सिनारियो टेस्ट कर सकें।

लैंडस्केप ओरिएंटेशन।

पोर्ट्रेट ओरिएंटेशन।

मॉक्स — कृत्रिम ऑब्जेक्ट्स या फंक्शन्स जो रियल कंपोनेंट्स की नकल करते हैं। बाहरी रिसोर्सेज या कंपोनेंट्स पर निर्भरता के बिना कोड टेस्ट करने के लिए उपयोगी।

'' में इमेज का पाथ डाल सकते हैं।