एक एंड्रॉइड गेम डेवलपर के रूप में, मुझे अपने गेम को विकसित करते समय क्या ध्यान रखना चाहिए अगर मैं कभी भी गेम को आईफोन में क्रॉस-प्लेटफॉर्म करना चाहता था? इन दोनों मोबाइल प्लेटफॉर्म पर पोर्ट करने की कोई रणनीति, टिप्स आदि?
एक एंड्रॉइड गेम डेवलपर के रूप में, मुझे अपने गेम को विकसित करते समय क्या ध्यान रखना चाहिए अगर मैं कभी भी गेम को आईफोन में क्रॉस-प्लेटफॉर्म करना चाहता था? इन दोनों मोबाइल प्लेटफॉर्म पर पोर्ट करने की कोई रणनीति, टिप्स आदि?
जवाबों:
इसे C / C ++ में लिखें - यह सबसे बड़ी चीज है जो आप कर सकते हैं। दोनों प्लेटफ़ॉर्म सी और सी ++ का समर्थन करते हैं, हालांकि अलग-अलग तरीकों से। Android पर, आप NDK का उपयोग करेंगे। IPhone पर, इसे Objective-C कोड के साथ संकलित किया जा सकता है।
आपको प्रत्येक प्लेटफ़ॉर्म के लिए अपने C / C ++ कोड के आसपास मचान बनाने में कुछ समय का निवेश करना होगा। आपको इस क्षेत्र में काफी सामान्य होना चाहिए, क्योंकि यह वास्तव में ओएस विशिष्ट कार्यक्षमता को आपके गेम कोड में जोड़ रहा है। इस क्षेत्र में तब तक कंजूसी न करें जब तक कि आप केवल एक क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट करने की योजना नहीं बनाते हैं या ऐसा नहीं करते कि आप हर प्रोजेक्ट के लिए पहिया का फिर से आविष्कार करने का मन नहीं करते हैं।
OpenGL ES का उपयोग करें - दोनों प्लेटफार्मों में OpenGL ES का समर्थन है। इस का लाभ ले। यह उस कोड की मात्रा को कम कर देगा, जिसे आपको फिर से लिखना होगा। आपके पास अभी भी प्रत्येक प्लेटफ़ॉर्म पर कुछ अंतर होंगे, लेकिन कुल मिलाकर आपका अधिकांश कोड दोनों पर काम करेगा।
प्लेटफ़ॉर्म / भाषा विशिष्ट API से बचें - इसे बिना कहे जाना चाहिए, लेकिन जब आप जावा में काम कर रहे हों तो जावा संग्रह कक्षाओं का उपयोग करना आसान हो। बेशक, यदि आपने पहले नियम का पालन किया है, तो आप जावा में बहुत कुछ नहीं करेंगे। वही विपरीत तरीके से जाता है - आईओएस में फाउंडेशन कक्षाएं जितनी अच्छी होती हैं, अगर आप किसी अन्य प्लेटफॉर्म पर पोर्ट करना चाहते हैं, तो उनसे बचें।
जैसा कि आप देख सकते हैं, क्रॉस-प्लेटफ़ॉर्म पर जाने के बारे में चिंता करने के लिए बहुत सी चीजें हैं। यदि आप एक छोटे इंडी डेवलपर हैं, तो यह आपके समय के लायक भी नहीं हो सकता है। आपको मूल्यांकन करना होगा कि क्या आप वास्तव में अपने स्वयं के निशान को विस्फोट करना चाहते हैं ताकि आप कई प्लेटफार्मों को लक्षित कर सकें। यह इस बात का लाभ उठाने के लायक हो सकता है कि प्रत्येक प्लेटफॉर्म को तेजी से विकास चक्र लगाने के लिए क्या पेशकश करनी है।
शुभ लाभ!
यह जावा> ऑब्जेक्टिव-सी से होने वाली एक काफी दर्दनाक प्रक्रिया होगी।
डेटा ड्रिवेन
एक गेम बनाएं जो काफी हद तक डेटा संचालित है। मुझे लगता है कि यह खुद के लिए बोलता है, लेकिन यह दिशा कम काम की ओर ले जाती है जिसे आपको पूरी तरह से लागू करना चाहिए।
हाई और टाइट
चीजें बहुत छोटी और मॉडर्नाइज्ड रखें। मैं यह कहता हूं क्योंकि यह पोर्ट करना बहुत आसान होगा यदि आप आसानी से एक घटक ले सकते हैं और इसे लागू कर सकते हैं, परीक्षण और दोहरा सकते हैं।
कॉन्ट्रैक्ट वर्क
अपने कार्ड को सही से चलायें और आप किसी ऐसे व्यक्ति को जान सकते हैं जो आपके लिए इसका ख्याल रख सकता है। यदि आप एक iPhone डेवलपर के साथ सबसे अच्छे दोस्त हैं, तो आप उसे कुछ डॉ खरीद सकते हैं। काली मिर्च अपने कोड को स्थानांतरित करने में मदद करने के लिए।
एक मल्टी-प्लेटफ़ॉर्म इंजन का उपयोग करें
यदि आपको पहले से ही गति में एक परियोजना मिल गई है तो इसका कोई मतलब नहीं है। लेकिन अगर आप एक परियोजना करने वाले हैं, जिसे आप पूरी तरह से जानते हैं कि वह अन्य प्लेटफार्मों पर पोर्ट की जाएगी, तो आपकी दुनिया को एक साथ रखने में मदद करने के लिए मौजूदा तकनीक का लाभ उठाना सार्थक हो सकता है। Unity3D एकता 3.0 के साथ एंड्रॉयड समर्थन हो रही होगी।
रूपांतरण / कंपकंपी / उपकरण
और मेरी सबसे कम पसंदीदा सिफारिश यह है कि आप किसी प्रकार के रूपांतरण उपकरण का उपयोग कम से कम अपने मॉडलों को जावा> सी से परिवर्तित करने के लिए कर सकते हैं ... लेकिन ... मैं इसका समर्थन नहीं करता।
यदि आप iPhone को पोर्ट करने के बारे में सोच रहे हैं और आपका गेम अभी भी विकास में है, तो यदि आपने पहले से नहीं किया है, तो C ++ पर स्विच करें। समय आने पर यह आपके कोड को काफी अधिक पोर्टेबल बना देगा।
इस धागे में मेरे दो सेंट जोड़ने के लिए जा रहे हैं - अपने खेल को क्रॉस प्लेटफॉर्म भाषा में लिखने पर विचार करें जैसे कि कई अन्य लोगों ने यहां कहा है ... लेकिन सी # पर विचार करें! यह एक शक्तिशाली भाषा है जिसे प्रबंधित किया जाता है और बहुत सारी शानदार सुविधाएँ प्रदान करता है जो कि C ++ ऐसा नहीं है जो खेल के विकास में सहायता कर सकता है - और एक महान वेबसाइट जिसे जाना जाता है मोनोगैम है, इसके लिए मौजूद है जो XNA के समान है जो सभी प्रकार के प्लेटफार्मों पर चलता है। संस्करण 3.0 के रूप में, इस लेखन के समय, आसानी से पूर्ण मोबाइल गेम और पोर्ट को सभी मोबाइल प्लेटफार्मों पर लिखना संभव है।