7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. iOS SDK

आपके iOS ऐप के लिए खेल केंद्र (गेम सेन्टर) और लीडरबोर्ड

Scroll to top
Read Time: 10 mins

Hindi (हिंदी) translation by Satyam Sh. (you can also view the original English article)

परिचय

खेल केंद्र (गेम सेन्टर) ऐप्पल (Apple) का सोशल गेमिंग नेटवर्क है। इससे उपयोगकर्ताओं को लीडरबोर्ड पर अपने उच्च स्कोर ट्रैक करने, उपलब्धियों की तुलना करने, खेल खेलने के लिए मित्रों को आमंत्रित करने और ऑटो-मिलान (auto-matching) के माध्यम से एक मल्टीप्लेयर गेम प्रारंभ करने में सक्षम बनाता है। इसलिए यदि आपने एक आईओएस (iOS) गेम बनाया है और उपयोगकर्ताओं को अपने स्कोर को गेम सेंटर लीडरबोर्ड पर पोस्ट करने में सक्षम करना चाहते हैं, तो यह आपके लिए सही ट्यूटोरियल है!

एप्लिकेशन और गेम केंद्र (गेम सेन्टर) के बारे में अधिक जानकारी के लिए, एप्पल डेवलपर पृष्ठ (Apple Developer page) पर जाएं। 

Xcode प्रोजेक्ट

इस ट्यूटोरियल के लिए, मैंने एक बुनियादी Xcode प्रोजेक्ट बनाया है जिसे आप GitHub से डाउनलोड कर सकते हैं। मैं iTunes Connect पर लीडरबोर्ड बनाने के लिए सभी आवश्यक कदमों की व्याख्या करूँगा और इसके लिए एक स्कोर जमा करने के लिए आवश्यक कोड भी, साथ ही एप के भीतर से लीडरबोर्ड खोलने के लिए एक बटन भी।

ऐप की स्टोरीबोर्ड ऐसे दिखता है: 

Demo Xcode projectDemo Xcode projectDemo Xcode project

इस प्रोजेक्ट में लाल टेक्स्ट वाला एक यूआईलेबल (UILabel) है जिसे मैंने scoreLabel कहा है और कुछ यूआईबट्न्स (UIButtons)। लाल एक अंक के लिए 10 अंक जोड़ देगा और उसे गेम सेंटर लीडरबोर्ड पर जमा कर देगा, और नीले रंग में GKGameCenterViewController  खोलेगा और लीडरबोर्ड दिखाएगा। 

सबसे पहली बात यह है कि, Xcode में क्षमताओं (Capabilities) टैब में गेम सेंटर को सक्षम (इनैबल) करना है। 

Enable Game Center in the Capabilities tabEnable Game Center in the Capabilities tabEnable Game Center in the Capabilities tab

उसके बाद आपको अपने ViewController.swift फ़ाइल के शीर्ष पर GameKit आयात (इम्पोर्ट) करना होगा और क्लैस घोषणा में GKGameCenterControllerDelegate प्रोटोकॉल जोड़ना होगा।

चलो अब कुछ वैरिएबल जोड़ते हैं। आप इस कोड को अपने ViewController क्लैस में पेस्ट कर सकते हैं: 

पहला वैरिएबल इंगित करता है कि आपके पास गेम सेंटर सक्षम (एनेबल) है, और दूसरा बाद में स्थानीय खिलाड़ी प्रमाणीकरण कोड (local player authentication code) द्वारा गेमकिट (GameKit) को डिफ़ॉल्ट लीडरबोर्ड को पहचानने के लिए सक्षम करने के लिए उपयोग किया जाएगा।

score शुरू में, निश्चित रूप से 0 होगा। 

LEADERBOARD_ID एक String है जिसे आपको गेम केंद्र (गेम सेन्टर) को अपने लीडरबोर्ड पहचानकर्ता (आइडेन्टफाइअर) के माध्यम से सर्वर पर अपना स्कोर सबमिट करने के लिए सेट करना होगा। वह नाम चुनें जिसे आप चाहते हैं, लेकिन ध्यान रखें कि इसमें वेब-उलट (web-reversed) सिंटैक्स होना चाहिए। यही कारण है कि मैंने इस लीडरबोर्ड को com.score.mygamename के रूप में पहचाना है, जहां mygamename को अपने ऐप के नाम से लोअरकेस वर्णों (lowercase characters) में प्रतिस्थापित किया जाना चाहिए, कोई रिक्त स्थान के बग़ैर।

आपके ऐप के आईट्यून्स कनेक्ट पेज में गेम सेंटर को सक्षम करने से पहले, हम मूल कोड को समाप्त करते हैं। इस लाइन को viewDidLoad() में जोड़ें: 

और निम्न फ़ंक्शन को viewDidLoad() से सही नीचे जोड़ें:

यदि किसी उपयोगकर्ता ने अपने डिवाइस पर सेटिंग से गेम सेंटर में लॉग इन नहीं किया है, तो ऊपर दी गई विधि गेम केंद्र लॉगिन स्क्रीन को दिखाएगी, जैसे ही वो जीसी सर्वर से कनेक्ट करता है। खिलाड़ी के लॉगिन हो जाने के बाद, ऐप को डिफ़ॉल्ट लीडरबोर्ड आईडी मिलता है।

अगली विधि में हम ऐप को LEADERBOARD_ID स्ट्रिंग लेने देंगे जो आपने पहले बनाया था और इसे गेम सेंटर सर्वर का डिफ़ॉल्ट लीडरबोर्ड आईडी के रूप में पास करेंगे।

उपरोक्त कोड वर्तमान अंक में 10 अंक जोड़ता है, इसलिए हर बार जब आप Add Score and Submit To GC बटन क्लिक करते हैं, तो आप देख सकते हैं कि लाल अंक लेबल बदल रहा है, और ऐप आपके जीसी लीडरबोर्ड को उस अपडेट किया हूआ स्कोर को प्रस्तुत करेगा।

आपको गेमकिट प्रतिनिधि विधि (GameKit delegate method) जोड़ने की आवश्यकता है जो जीसी नियंत्रक (GC Controller) को खारिज कर देगा।

आईट्यून्स कनेक्ट (iTunes Connect) पर अपने लीडरबोर्ड को बनाने से पहले कोडिंग के लिए केवल एक ही तरीका शेष है, जो बटन के लिए ऐक्शन है जो गेम सेंटर ViewController को खोल देगा। 

जैसा कि आप ऊपर देख सकते हैं, यह कोड जीसी नियंत्रक (GC Controller) को इन्स्टैन्शिएट कर देता है, उसके प्रतिनिधि (डेलगैट) को उस नियंत्रक को निर्दिष्ट करता है, लीडरबोर्ड दिखाने के लिए नियंत्रक के व्यू स्टेट को सेट करता है, और नियंत्रक (कन्ट्रोलर) को पेश करने से पहले आपके LEADERBOARD_ID को पास करता है। 

अब हम कोडिंग कर चुके हैं, लेकिन आप ऐप अभी तक नहीं चला सकते। यदि आप करते हैं, तो आपको Xcode से एक एरर मिलेगी, क्योंकि आपने अपने ऐप के आईट्यून्स कनेक्ट (iTunes Connect) पेज में अपना लीडरबोर्ड नहीं बनाया है।

आईट्यून्स कनेक्ट (iTunes Connect) पर गेम सेंटर सेट-अप करना

आपने आईट्यून में पहले से ही एक आईओएस ऐप (iOS App) बना लीया होगा, जो आपकी खुद की बंडल आइडेंटिफ़ायर (Bundle Identifier) से कनेक्ट हो। अब अपने ऐप में आईट्यून कनेक्ट डैशबोर्ड से प्रवेश करें और फीचर्ज़ (Features) पर क्लिक करें और फिर गेम सेन्टर (Game Center) पर।

फिर लीडरबोर्ड के आगे + आइकन पर  क्लिक करें।

App Features page on iTunes ConnectApp Features page on iTunes ConnectApp Features page on iTunes Connect

अगली स्क्रीन पर सिंगल लीडरबोर्ड चुनें।

Add a leaderboardAdd a leaderboardAdd a leaderboard

यहां आपको उस नाम को टाइप करना होगा जो आप अपना लीडरबोर्ड को देना चाहते हैं। नीचे दिए गए स्क्रीनशॉट में, मैंने My Leaderboard Name का उदाहरण एक उदाहरण के रूप में उपयोग किया है। आप अपना को Best Score Leaderboard या कुछ भी जो चाहें कॉल कर सकते हैं।

लीडरबोर्ड आईडी (Leaderboard ID) फ़ील्ड में, LEADERBOARD_ID की स्ट्रिंग पेस्ट करें जो हमने पहले Xcode प्रोजेक्ट में बनाई थी। 

चूंकि स्कोर एक संख्या है, इसलिए स्कोर स्वरूप प्रकार (Score Format Type) फ़ील्ड में पूर्णांक (Integer)  चुनें। आप सबमिशन प्रकार (Submission Type) और सॉर्ट क्रम (Sort Order) के लिए इच्छित विकल्प चुन सकते हैं। Score Range (Optional) को रिक्त छोड़ें।

अंत में, भाषा जोड़ें (Add Language) बटन पर क्लिक करें।

Set leaderboards detailsSet leaderboards detailsSet leaderboards details

पॉपअप विंडो में, आपको अपने लीडरबोर्ड की भाषा चुननी होगी। डिफ़ॉल्ट हमेशा अंग्रेज़ी होता है। अपने लीडरबोर्ड का अंग्रेजी नाम फिर से टाइप करें, और एक स्कोर प्रारूप (Score Format) चुनें (मैंने अंकों के समूहों को अलग करने के लिए अल्पविराम चुना)। 

Score Format Suffix फ़ील्ड वैकल्पिक हैं; आप दोनों क्षेत्रों को रिक्त छोड़ सकते हैं या वांछित प्रत्यय (suffix) टाइप कर सकते हैं। उदाहरण के लिए, यदि आपके गेम में स्कोर पॉइन्ट है, तो आप बहुवचन के लिए "point " और "points" टाइप कर सकते हैं, इसलिए गेम सेंटर नियंत्रक आपके लीडरबोर्ड पर प्रदर्शित स्कोर के अंत में उस प्रत्यय को जोड़ देगा, जैसे "1 point" या "100 points"।

आप एक आइकन भी जोड़ सकते हैं। छवि एक .jpeg, .jpg, या .png फ़ाइल होना चाहिए जो कि 512x512 या 1024x1024 पिक्सल है,  साथ ही कम से कम 72 डीपीआई और पारदर्शी पृष्ठभूमि (transparent background) के बिना आरजीबी रंग स्पैस (RGB color space) में होनी चाहिए। अपनी छवि अपलोड करने के लिए Choose File पर क्लिक करें। 

अंत में सेव (Save) पर क्लिक करें, और केवल यही आपको करना है। आप अधिक भाषाओं को जोड़ने के लिए ऊपर दिए गए चरणों को दोहरा सकते हैं-बस चयनित भाषा के अनुसार लीडरबोर्ड नाम टाइप करने के लिए सुनिश्चित करें।

Add a leaderboards languageAdd a leaderboards languageAdd a leaderboards language

एक बार जब आप एक विंडो जोड़ लेंगे, तो आप अपने लीडरबोर्ड के विवरणों को देख सकते हैं। यदि सबकुछ ठीक है, तो सेव (Save) पर क्लिक करें, और आपको अपने नए लीडरबोर्ड के साथ, फीचर्ज़ पृष्ठ (Features Page) पर पुनः निर्देशित किया जाएगा।

Language added for a new leaderboardLanguage added for a new leaderboardLanguage added for a new leaderboard
Features pageFeatures pageFeatures page

अब यह आपके ऐप के ऐप स्टोर अनुभाग में गेम सेंटर को सक्षम करने का समय है। ऐप स्टोर (App Store) पर क्लिक करें और सबमिशन के लिए तैयार करें (Prepare for Submission) पर।

App Store sectionApp Store sectionApp Store section

नीचे स्क्रॉल करें, जब तक कि आप इसके पास एक स्विच के साथ गेम सेन्टर नहीं पाते। इसे सक्षम (Enable) करें, और यह हरा हो जाएगा। फिर लीडरबोर्ड के बगल में स्थित + चिह्न पर क्लिक करें, सूची से अपने लीडरबोर्ड का चयन करें और संपन्न (डन, Done) क्लिक करें।

विन्डो के शीर्ष-दाएं कोने में सेव (Save) पर क्लिक करें, और आप iTunes Connect पर गेम सेन्टर सेट अप कर लेंगे।

Save your app with Game Centers leaderboardSave your app with Game Centers leaderboardSave your app with Game Centers leaderboard

अब आप अपने एक्सकोड प्रोजेक्ट पर वापस जा सकते हैं और ऐप को किसी वास्तविक डिवाइस पर या आईओएस सिम्युलेटर पर भी चला सकते हैं। यदि आप पहले से ही गेम सेंटर में लॉग इन नहीं हैं, तो साइन इन कन्ट्रोलर दिखाई देगा। यह, ऐसा कुछ दिखता है:

Game Center Sing In screenGame Center Sing In screenGame Center Sing In screen

अपने क्रेडेंशियल के साथ साइन इन करें, और आप ऐप का परीक्षण शुरू कर सकते हैं!

हमारे addScoreAndSubmitToGC() विधि में, हमने निम्नलिखित print() कॉल को जोड़ा:

इसलिए यदि आप लाल बटन पर टैप करते हैं, तो scoreLabel "10" प्रदर्शित करेगा, और एक्सकोड कंसोल आपके अपने लीडरबोर्ड पर जमा सर्वश्रेष्ठ स्कोर (Best Score submitted to your Leaderboard) प्रिंट करेगा!

Score updated and submitted to your leaderboardScore updated and submitted to your leaderboardScore updated and submitted to your leaderboard

लाल बटन को तीन बार टैप करें, और उसके बाद अपने लीडरबोर्ड को खोलने के लिए नीले रंग को टैप करें और जांच लें कि सबमिट किया गया स्कोर 40 है। आपको ऐसा कुछ देखना चाहिए:

GC controller for leaderboardsGC controller for leaderboardsGC controller for leaderboards

निष्कर्ष

यदि आप पूरी तरह से कार्यात्मक गेम ऐप को, गेम सेंटर में, ऐक्शन में देखना चाहते हैं, तो आप मेरे CodeCanyon गेम टेम्पलेट Four Dots को देख सकते हैं। यह एक न्यूनतम अंतहीन (एन्ड्लस) गेम के लिए एक टेम्पलेट है जो बेस्ट स्कोर बचाता है और गेम सेन्टर में उन्हें सबमिट करता है।

Four Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyon

इस तरह के गेम टेम्पलेट्स आपके अगले गेम को त्वरित शुरुआत करने का एक शानदार तरीका है। CodeCanyon में सैकड़ों आईओएस (iOS) गेम टेम्पलेट्स हैं जो आप जल्दी-शुरू डिवेलप्मन्ट के लिए उपयोग कर सकते हैं—और आपको अपने अगले महान गेम को बहुत तेजी से बनाने में मदद मिलेगी!

पढ़ने के लिए धन्यवाद, और मैं अगली बार आपको मिलूंगा! स्विफ्ट और आईओएस (iOS) एप डिवेलप्मन्ट पर हमारे कुछ अन्य ट्यूटोरियल देखें।

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.