क्या मुझे मोबाइल उपकरणों पर गेम लॉजिक के लिए लुआ का उपयोग करना चाहिए?


33

जैसा कि वास्तव में,

मैं अपने खाली समय में एंड्रॉइड आधारित गेम लिख रहा हूं (एंड्रॉइड क्योंकि यह मुफ़्त है और मेरे पास कुछ भी करने के लिए कोई वास्तविक आकांक्षाएं नहीं हैं)।

गेम लॉजिक एक बहुत ही विशिष्ट घटक आधारित मॉडल से आता है, जिसमें इकाइयाँ मौजूद होती हैं और उनके साथ जुड़े घटक होते हैं और चीजों को बनाने के लिए संदेश भेजे जाते हैं।

जाहिर है कि वास्तव में प्रदर्शन करने वाली परत पतली है, और अगर मुझे इस ऐप का आईफोन संस्करण लिखना है, तो मुझे ऑब्जेक्टिव सी में रेंडरर और कोर ड्राइवर (इस घटक आधारित प्रणाली के) को फिर से लिखना होगा।

इकाइयाँ केवल समतल फ़ाइलें हैं जो जोड़े जाने वाले घटकों के नाम निर्धारित करती हैं, और घटक स्वयं सरल, एकल-उद्देश्य वाली वस्तुएँ हैं जिनमें इकाई के लिए तर्क होते हैं।

अब, यदि मैं जावा में उन घटकों के लिए सभी तर्क लिखता हूं, तो मुझे उन्हें उद्देश्यपूर्ण सी पर फिर से लिखना होगा यदि मैंने एक iPhone पोर्ट करने का फैसला किया है। जैसा कि इन तमाम घटकों के भीतर एप्लिकेशन लॉजिक का बड़ा हिस्सा निहित है, वे एक आदर्श दुनिया में, कुछ प्लेटफ़ॉर्म-अज्ञेयवादी भाषा / लिपि / डीएसएल में लिखे जाएंगे, जो तब जो भी प्लेटफ़ॉर्म पर ऐप में लोड किया जा सकता है।

हालांकि मुझे विश्वास है कि यह एक आदर्श दुनिया नहीं है, और मोबाइल उपकरणों पर Lua प्रदर्शन आदि अभी भी खरोंच करने के लिए नहीं है, कि ओवरहेड बहुत ज्यादा है और मैं बाद में मुसीबतों में चला जाएगा कि मैं नेतृत्व करने के लिए नेतृत्व किया गया है उस मार्ग से नीचे गए?

क्या वास्तव में ऐसा है? जाहिर है कि यह सिर्फ एक काल्पनिक सवाल है, मुझे उन सभी को जावा में लिखने में खुशी हो रही है क्योंकि यह सरल और आसान है, जमीन से चीजें मिलती हैं, लेकिन मैं वास्तव में इस खेल को बनाने का आनंद लेता हूं (संभावना नहीं है, यह देखते हुए कि वर्तमान में मुझे कितना नापसंद है। उन सभी अलग-अलग मोबाइल उपकरणों के साथ) और मैं एक व्यावसायिक रूप से व्यवहार्य खेल बनाना चाहता था - क्या मैं लूआ का उपयोग करूंगा या क्या मैं हिटिंग ले जाऊंगा जब यह पोर्टिंग के लिए आया था और सभी कोड को फिर से लिखना था?

जवाबों:


17

जहां तक ​​स्क्रीप्टिंग लैंग्वेजेज की बात है, लुआ बहुत तेज है, लेकिन प्रोसेसर के आधार पर कुछ भी अलग-अलग होता है। उदाहरण के लिए, लुआ एक कंसोल प्लेटफॉर्म पर बहुत अच्छा नहीं होगा क्योंकि यह बहुत ही ब्रांडी हो जाता है, और कुछ कंसोल प्लेटफॉर्म बहुत धीरे-धीरे ब्रांच होते हैं। आपके प्रश्न का उत्तर देने के लिए, मैं कुछ बेंचमार्क चलाने का सुझाव दूंगा। देखें कि Lua डिवाइस पर कुछ विभिन्न एल्गोरिदम कितनी तेजी से करता है। मुझे संदेह है कि जब तक आप अपने स्क्रिप्ट कोड में कोई भारी गणित या पुनरावृत्ति नहीं कर रहे हैं, तब तक आप ठीक रहेंगे। (वैसे भी आपको ऐसा नहीं करना चाहिए। वे स्क्रिप्ट हैं। इंजन में गणना करें।)

उस ने कहा, पटकथा स्वतंत्रता मंच की स्वतंत्रता के लिए एक चांदी की गोली नहीं है। डायनेमिक कोड निष्पादित करने पर Apple के प्रतिबंध के कारण iPhone पर पोर्ट करने पर आपको वैसे भी Obj-C में फिर से लिखना पड़ सकता है। मेरे पास लिंक ऑफ़हैंड नहीं है, लेकिन इसमें पढ़ने लायक हो सकता है। Apple मुश्किल से प्रबंधित कोड की अनुमति देता है (आपको एक विशेष वितरण चलाने के लिए विशेष अनुमति लेनी होगी)। वे निश्चित रूप से ऐप स्टोर में एक Lua कार्यान्वयन की अनुमति नहीं देंगे।

[संपादित करें] जाहिरा तौर पर मैं iphone बात पर Lua के बारे में गलत था। नीचे टिप्पणी पर एक नज़र डालें।


9
Lua का व्यापक रूप से iPhone अनुप्रयोगों में उपयोग किया जाता है, और उन शर्तों में परिवर्तन किया गया है जो इसे अनुमति देते हैं। यहां देखें: appleoutsider.com/2010/06/10/hello-lua
कॉलिन

5
कई कंसोल ऐप वास्तव में LUA का उपयोग करते हैं। हाँ, यह ब्रिकी है - लेकिन इससे कोई फर्क नहीं पड़ता कि आप उच्च-स्तरीय तर्क को नियंत्रित करते हैं। बस इसे अपने रेंडर लूप से न कहें;) जहां तक ​​मुझे पता है, गेम्स के लिए LUA डेवलपर एग्रीमेंट के हालिया बदलावों से ठीक है - बहुत सारे गेम हैं जो LUA द्वारा संचालित हैं। लेकिन एक बंद मंच पर किसी भी विकास के साथ के रूप में, मंच के मालिक (यानी Apple) से निश्चित उत्तर के लिए पूछें। इसके अलावा, Obj-C के लिए कोई ज़रूरत नहीं है - iPhone सी / सी ++ को ठीक करने की अनुमति देता है। (मैं आपको ओज-सी में कुछ भी करने की सलाह देता हूं, हालांकि, दर्द को कम करने वाला कारक)
राहेल ब्लम

7
जाओ जाओ जादू साबुन का डिब्बा। लुआ एक संज्ञा है एक संक्षिप्त नहीं है, आप कभी भी जावा नहीं लिखेंगे। लुआ का अर्थ है चंद्रमा। आप MOON नहीं लिखेंगे। साभार - लाउ नाजी
deft_code

2
अफसोस की बात है कि मैं बहुत से लोगों को जानता हूं जो "जावा" लिखते हैं।

1
मैंने एनडीएस पर भारी मात्रा में लुआ का उपयोग किया (जो कि आईफोन की तुलना में बहुत कम शक्तिशाली है) और इसने काफी तेजी से काम किया। हमारे लिए पर्याप्त तेज है कि सीधे एक खेल में आधे से अधिक तर्क बनाएं।
Klm

7

लुआ का सी कार्यान्वयन विशेष रूप से एम्बेडेड उपकरणों पर चलाने के लिए डिज़ाइन किया गया है। यह छोटा और तेज़ है (स्क्रिप्टिंग भाषा के लिए)। मैंने सोचा होगा कि यह कम से कम प्रकाश कार्यों के लिए ठीक था।


4

ज़रूर। स्क्रिप्टिंग लॉजिक आपकी अड़चन होने की बहुत संभावना नहीं है (आप वास्तव में शार्क या इंस्ट्रूमेंट्स के साथ प्रोफाइल करेंगे, सही?)। मैंने मरून के आईफोन संस्करण पर काम किया, जिसमें गेम लॉजिक के लिए बहुत सारे लुआ का इस्तेमाल किया गया। मैंने काफी प्रदर्शन ट्यूनिंग की, और मूल रूप से लुआ 0% था।

(लुआ एक ग्रे क्षेत्र था जब हमने मरून को रिहा किया था, लेकिन यह तब से आधिकारिक रूप से आईओएस विकास के लिए धन्य है।)


1

Android पर स्क्रिप्टिंग करने के अनुशंसित तरीके के लिए http://code.google.com/p/android-scripting/ देखें । Lua अभी भी एंड्रॉइड प्लेटफॉर्म पर बहुत अच्छी तरह से फिट नहीं है, क्योंकि इसके लिए सी की आवश्यकता है, आप NDK का उपयोग कर सकते हैं, लेकिन यह कोई चांदी की गोली नहीं है।


1

यह थोड़ा सा निर्भर करता है कि स्क्रिप्ट में आपका गेम लॉजिक कितना अंतर्निहित है। सामान्य तौर पर एलयूए का उपयोग उच्च स्तर के गोंद के रूप में किया जाता है, लेकिन बहुत सारे ग्रंट कार्य सी (++) के माध्यम से होते हैं। हाँ, LUA तेज़ है जहाँ तक स्क्रिप्टिंग भाषाएँ चलती हैं - आपकी अभी भी लगभग 30 से 50 बार की देशी भाषाओं की तुलना में मंदी देखी जा रही है, इसलिए यह वास्तव में निर्भर करता है कि LUA में कितना हो रहा है।


0

आप वास्तव में लुआ में अपना पूरा खेल लिख सकते हैं और जावा / ऑब्जेक्टिव / सी / सी ++ से पूरी तरह से बच सकते हैं।

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

यदि आप iPhone / पैड / टच को लक्षित करना चाहते हैं तो मोम पर एक नज़र डालें ।

बस एक साइड नोट के रूप में @ सीन एडवर्ड्स: मैं निनटेंडो डीएस, Wii, सोनी पीएसपी और Xbox360 को लक्षित करने वाले पांच शीर्षकों में शामिल रहा हूं, जिनमें से सभी एक ही इंजन का उपयोग करते थे और लूआ में लिपिबद्ध थे। इसका व्यापक रूप से कंसोल और मोबाइल पर उपयोग किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.