XNA / C # प्लेटफ़ॉर्म के लिए एक स्क्रिप्टिंग भाषा के रूप में लुआ बनाम पायथन के पेशेवरों और विपक्ष क्या हैं? [बन्द है]


9

मैं एक खेल के लिए अपने प्राचीन विचारों में से एक को देने के बारे में सोच रहा हूं। इस खेल का मुख्य बिंदु खेल पर्यावरण और वस्तुओं के कार्यात्मक अनुकूलन का संभावित स्तर होगा (जैसे कि अंतरिक्ष जहाज हथियार के व्यवहार को संशोधित करना)। इसके लिए खेल को स्क्रिप्ट की जरूरत होगी। इसके अलावा, मुझे इसका व्यवसायीकरण करने का लक्ष्य नहीं है, यह मेरे लिए एक दिलचस्प प्रोग्रामिंग चुनौती है।

जैसा कि मैं ज्यादातर एक .NET लड़का हूं मैं खेल के लिए XNA / C # का उपयोग करूंगा। स्क्रिप्टिंग के लिए मैं पायथन या लुआ के साथ जाने के बारे में सोचता हूं। मुझे पायथन के साथ पिछले अनुभव हैं और भाषा के रूप में इसके खिलाफ कुछ भी नहीं है। दूसरी ओर लुआ मेरे लिए लगभग पूरी तरह से नया है, इसके अलावा कुछ विश्व Warcraft के एडोनस संशोधनों के अलावा मैंने यहां और वहां किया, और यह आशाजनक है। तो ये रहा मेरा प्रश्न:

XNA / C # प्लेटफ़ॉर्म के लिए एक स्क्रिप्टिंग भाषा के रूप में लुआ बनाम पायथन के पेशेवरों और विपक्ष क्या हैं?

क्या उनमें से एक XNA / C # के साथ उपयोग करना काफी आसान है? XNA / C # के साथ उपयोग किए जाने पर उनमें से कुछ के कुछ विशिष्ट फायदे या नुकसान हैं? आप XNA / C # के लिए एक के ऊपर एक की सिफारिश क्यों करेंगे?


4
मुझे पता है कि आप विकल्प नहीं पूछ रहे हैं, लेकिन सिर्फ अगर आप नहीं जानते हैं, तो C # भी एक मान्य स्क्रिप्टिंग भाषा है, और जब से आप C # का उपयोग कर रहे हैं, यह बहुत कम रखरखाव है।
विलियम मैरीजर

2
आपको स्क्रिप्टिंग भाषा की भी आवश्यकता क्यों है? आप किस बेनीफिट की उम्मीद कर रहे हैं?
पीटर Peterलस्टेड

2
वे दोनों लोकप्रिय हैं, पेशेवर रूप से उपयोग किए जाते हैं और निश्चित रूप से स्क्रिप्टिंग भाग करने में सक्षम हैं। यह सिर्फ 99% अनुप्रयोगों के लिए स्वाद की बात है। पायथन में एक बेहतर मानक पुस्तकालय है और मेरी राय में उपयोगकर्ता के अनुकूल भाषा अधिक है।
मेघनगर

1
'क्या आपने विचार किया है' की तर्ज पर? क्या आपने बू को माना है ? यह स्क्रिप्टिंग भाषा बनने के लिए होने के बजाय स्क्रिप्टिंग के लिए डिज़ाइन किया गया है। IronPython के समान ही इसमें बिल्ट-इन हेल्पर्स फॉर होस्टिंग (और XBox जैसे लक्ष्यों के लिए व्याख्या भी कर सकते हैं) है।
जोनाथन डिकिंसन

1
इसके अलावा, दृश्य स्क्रिप्टिंग (स्टारडिट - स्टारक्राफ्ट 1 संपादक के समान) की उपेक्षा न करें।
जोनाथन डिकिंसन

जवाबों:


11

मैं दोनों की तुलना नहीं कर सकता, क्योंकि मुझे अब तक C # गेम में IronPython को एम्बेड करने का अनुभव है। हालांकि मुझे इसके बारे में क्या पसंद है:

1) यह आसान है! IronPython DLL डाउनलोड करें, प्रोजेक्ट में संदर्भ जोड़ें,

 using IronPython.Hosting;

 var engine = Python.CreateEngine();
 var product = engine.Execute<System.Numerics.BigInteger>(@"
 print ' '.join(['hello', 'from', 'ironpython!'])
 a = 123456789
 b = 10
 a**b
 ");
 Console.WriteLine("a**b={0}", product);

2) जैसा कि आप ऊपर के उदाहरण से देख सकते हैं, आयरनपियन वास्तव में बीसीएल कक्षाओं में परिवर्तित होता है जहां यह कर सकता है। स्क्रिप्ट का नतीजा एक PyObject के बजाय एक System.Numerics.BigInteger है

3) dynamicC # में कीवर्ड इंटरोप स्थितियों के लिए बनाया गया था जहां आपके पास स्थिर प्रकार उपलब्ध नहीं है:

    dynamic example = engine.Execute(@"
class Example(object):
  def __init__(self):
    self.breakfast = ['ham','spam','eggs']
    self.lunch = 'BRAIINNNZ'
Example() # return an example");

    foreach(string item in example.breakfast)
        Console.WriteLine(item);
    Console.WriteLine(example.lunch);

अच्छा उदाहरण के लिए +1 जो दिखाता है कि लोहे के पायथन को चलाना कितना आसान है .... हालांकि यह नहीं पूछ रहा था ;-)
tobsen

0

IronPython और C # एक साथ अच्छी तरह से चलते हैं, प्रदर्शन में बढ़ावा देने के लिए IronPython को C # में जोड़ा जा सकता है। इसलिए यदि आपका लेखन खेल तो C # के भीतर पायथन कॉल एक फायदा है। अजगर खुद XNA का उपयोग नहीं कर सकता है, लेकिन डायरेक्टेक्स का उपयोग कर सकता है C # सीधे नहीं कर सकता।


1
एफडब्ल्यूआईडब्ल्यू, पायथन डायरेक्टएक्स का उपयोग "सीधे" या तो नहीं कर सकते हैं - यह इस तथ्य के आधार पर रैपर के माध्यम से बातचीत करता है कि डी 3 डी एक सी / कॉम एपीआई है। यह ठीक उसी तरह है जैसे आप डायरेक्ट # को C # से भी एक्सेस कर सकते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.