गेम इंजन को पसंद के मुताबिक बनाने या पोर्ट करने के बारे में जानकारी

टूल, तारे, ग्रह अगर गेम इंजन को डेवलप या पसंद के मुताबिक बनाने के लिए C या C++ का इस्तेमाल किया जा रहा है, तो Android के साथ काम करने की सुविधा को गेम इंजन में इंटिग्रेट करने के लिए, यहां दी गई ज़रूरी शर्तें पूरी करना ज़रूरी है.

  • Android डेवलपमेंट टूल का फ़ायदा उठाना
  • कोई गतिविधि बनाना
  • स्क्रीन पर ड्रॉ करें
  • इनपुट इवेंट प्रोसेस करना
  • ऑडियो आउटपुट
  • मेमोरी मैनेज करना
  • जांच करना और बेहतर बनाना
  • Google Play पर पब्लिश करना

इस पेज पर बताई गई ज़रूरी शर्तों से, आपको स्क्रैच से गेम इंजन बनाने का तरीका नहीं पता चलेगा. हालांकि, इससे आपको उन क्षेत्रों की पहचान करने में मदद मिलेगी जहां Android, अन्य प्लैटफ़ॉर्म की तुलना में ज़्यादा यूनीक है.

Android डेवलपमेंट टूल का फ़ायदा उठाना

Android Studio में ऐसे टूल शामिल होते हैं जिनका इस्तेमाल इन कामों के लिए किया जा सकता है:

  • अपना प्रोजेक्ट कॉन्फ़िगर करना
  • गेम बनाएं, उसे डीबग करें, और पैकेज करें
  • सिस्टम, सीपीयू, और मेमोरी प्रोफ़ाइलर का इस्तेमाल करके, अपने गेम की परफ़ॉर्मेंस की जांच करना
  • अपने गेम के पैकेज या ऐप्लिकेशन बंडल के कॉन्टेंट की जांच करना
  • Android SDK और NDK की अन्य सुविधाओं को इंटिग्रेट करना

Android Graphics Inspector, आपके गेम की रेंडरिंग परफ़ॉर्मेंस की जानकारी दे सकता है. साथ ही, फ़्रेम प्रोफ़ाइलिंग का इस्तेमाल करके, रेंडर किए गए फ़्रेम की जानकारी की जांच करने में आपकी मदद कर सकता है.

अगर मुख्य तौर पर Microsoft Visual Studio का इस्तेमाल किया जा रहा है, तो मौजूदा प्रोजेक्ट में Android टारगेट जोड़ने के लिए, Android Game Development Extension (AGDE) का इस्तेमाल किया जा सकता है. AGDE, Visual Studio में नेटिव डीबगिंग की सुविधा देता है. साथ ही, इसमें Android Studio के कई प्रोफ़ाइलिंग टूल के स्टैंडअलोन वर्शन शामिल होते हैं.

कोई गतिविधि बनाना

आपके गेम को Activity बनाना और उसके साथ इंटरैक्ट करना होगा. Android पर ऐक्टिविटी के लाइफ़साइकल के बारे में जानें. इससे आपको यह समझने में मदद मिलेगी कि ऐक्टिविटी कब बनाई जाती है, शुरू की जाती है, फिर से शुरू की जाती है, रोकी जाती है, बंद की जाती है, और खत्म की जाती है.

GameActivity लाइब्रेरी के बारे में पढ़ें. यह लाइब्रेरी, नेटिव C या C++ गेम इंजन की Activity से जुड़ी ज़रूरतों (गेम विंडो, लाइफ़साइकल, रेंडरिंग, इवेंट हैंडल करना) को पूरा करती है और उन्हें इंटिग्रेट करती है.

स्क्रीन पर ड्रॉ करें

आपके गेम को स्क्रीन पर ऑब्जेक्ट और स्प्राइट दिखाने होंगे. Android SurfaceView के बारे में जानें. साथ ही, अपने गेम इंजन में ग्राफ़िक कॉन्फ़िगर करने का तरीका जानें.

Android डिवाइसों पर, डिसप्ले रीफ़्रेश रेट अलग-अलग होते हैं. फ़्रेम ड्रॉप और फ़्रेम बफ़र की गड़बड़ियों को रोकने के लिए, गेम लूप में रेंडरिंग के बारे में जानें.

OpenGL और Vulkan में आसानी से रेंडर करने के लिए, फ़्रेम पेसिंग हासिल करने के बारे में पढ़ें. Performance Tuner की मदद से, अपने फ़्रेम रेट को ऑप्टिमाइज़ करें.

रेंडरिंग की क्वालिटी को बेहतर बनाने के लिए, मल्टीसैंपल एंटी-एलियासिंग (एमएसएए) का इस्तेमाल करें. MSAA को बहुत कम ओवरहेड के साथ इस्तेमाल किया जा सकता है. ज़्यादा जानने के लिए, यह ब्लॉग पोस्ट पढ़ें: Multisampled Anti-aliasing For Almost Free — On Tile-Based Rendering Hardware.

इनपुट इवेंट प्रोसेस करना

गेम इंजन को अलग-अलग सोर्स से इनपुट इवेंट मिलते हैं. बेहतरीन गेमिंग अनुभव के लिए, Android के अलग-अलग इनपुट सोर्स इस्तेमाल करने का तरीका जानें:

ऑडियो आउटपुट

आपके गेम इंजन को अलग-अलग डिवाइसों और Android वर्शन पर ऑडियो आउटपुट करना होगा. Oboe के बारे में जानें. यह हमारी ओपन-सोर्स C++ ऑडियो लाइब्रेरी है. इसकी मदद से, अपने गेम में बेहतरीन परफ़ॉर्मेंस वाला ऑडियो शामिल किया जा सकता है.

सबसे कम लेटेंसी पाने, ऑडियो से जुड़ी कुछ खास गड़बड़ियों से बचने, और सबसे अच्छी उपलब्ध नेटिव लाइब्रेरी (जैसे, AAudio या OpenSL ES) को अपने-आप चुनने के लिए, Oboe का इस्तेमाल करें.

मेमोरी मैनेज करना

Android डिवाइसों पर, सिस्टम ज़्यादा से ज़्यादा सिस्टम मेमोरी (रैम) का इस्तेमाल करने की कोशिश करता है. साथ ही, ज़रूरत पड़ने पर जगह खाली करने के लिए, मेमोरी को कई तरह से ऑप्टिमाइज़ करता है. गेम के धीमे होने या बंद होने से बचने के लिए, मेमोरी के इस्तेमाल को मैनेज करने का तरीका जानें.

जांच करना और बेहतर बनाना

जब किसी Android ऐप्लिकेशन में, बिना हैंडल किए गए अपवाद या सिग्नल की वजह से अचानक बंद होने की समस्या आती है, तो उसे क्रैश होना कहते हैं. क्रैश का पता लगाने और उनकी जांच करने, स्टैक ट्रेस पढ़ने, मेमोरी और नेटवर्किंग से जुड़ी गड़बड़ियों, logcat का इस्तेमाल करने, और Java और Kotlin से जुड़ी गड़बड़ियों को समझने के तरीके के बारे में जानें.

Google Play पर पब्लिश करना

खिलाड़ी, अलग-अलग देशों में अलग-अलग Android डिवाइसों, नेटवर्क की स्थितियों, और डेटा प्लान के साथ आपका गेम डाउनलोड करते हैं. कॉन्टेंट डिलीवरी नेटवर्क के फ़ायदों के साथ बड़े गेम के लिए, ऐप्लिकेशन बंडल और ऐसेट पैक डिलीवर करने के लिए Google Play का इस्तेमाल करने का तरीका जानें.