2011-01-06 12 views
5

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

  • देशी पीपीसी/86/x86_64/हाथ बाइनरी या एक भाषा है जो उन्हें संकलित
  • जावास्क्रिप्ट
  • ActionScript बाईटकोड या एक भाषा है जो यह करने के लिए संकलित (ActionScript 3, Haxe)
  • वैकल्पिक जावा

मैं कल्पना, उदाहरण के लिए, एक API जहाँ मैं विंडो खोलने और ओपन की तरह कॉल कर सकते हैं बनाने और रूपरेखा एक कैनवास वस्तु, फ्लैश में 3 डी ग्राफिक्स, OpenGL ES 2 EGL के साथ साथ या तो WebGL के लिए एक अपेक्षाकृत कुशल तरीके से इस नक्शे , या एक्स 11, विंडोज, या कोको विंडो में डेस्कटॉप ओपनजीएल।

मैं अब तक इन रास्ते में देखा है में Haxe

  • पेशेवरों

    • खेल पुस्तकालय का निर्माण:
      • लक्ष्य पीएचपी, जावास्क्रिप्ट, ActionScript बाईटकोड लिए मौजूद हैं, सी ++
      • उच्च स्तर, वस्तु उन्मुख भाषा
    • विपक्ष:
      • अंत में {} ब्लॉक या विनाशकर्ता के लिए कोई समर्थन, संसाधन सफाई कठिन बना
      • सी ++ लक्ष्य अत्यधिक अनुकूलित पुस्तकालयों का निर्माण करने के लिए कमरे की अनुमति नहीं है - विदेशी समारोह इंटरफेस सभी आदिम प्रकार की आवश्यकता है बॉक्सिंग जा एक रैपर ऑब्जेक्ट में, जैसे कि एक स्क्रिप्टिंग भाषा के लिए बाइंडिंग लिखना; ये रीयल-टाइम ग्राफिक्स और ऑडियो के लिए अनौपचारिक महसूस करते हैं, विशेष रूप से निम्न-स्तर के कार्यों का निर्यात करते हैं।
      • प्रतीत नहीं करता है अभी तक
  • परिपक्व एक अनुवादक बनाने के लिए सी पूर्वप्रक्रमक का उपयोग करना, मैक्रो
    • पेशेवरों के साथ पूरी तरह से कार्यक्रमों लेखन:
      • सीपीपी व्यापक और सरल है
    • विपक्ष का उपयोग करने के लिए:
      • यह एक कठिन कार्य है और शायद काम
      • सीपीपी कार्यान्वयन सुविधाओं के लिए समर्थन में व्यापक रूप से भिन्न के लिए गलत उपकरण है (उदाहरण के लिएxcode सीपीपी का दावा C99 अनुपालन के बावजूद कोई variadic मैक्रो)
      • नहीं है बहुत कम-से-नहीं इस मार्ग
  • में अनुकूलन के लिए कमरे में लक्षित करने के लिए C/C++ कई बैकेंड llvm के समर्थन का उपयोग करना वेब भाषाओं
    • सकारात्मक:
      • C/C++
      • LLVM में कोड कर सकते हैं एक बहुत ही परिपक्व हाय है ghly अनुकूलन संकलक प्रदर्शन उदाहरण उदा।
        • Actionscript लक्ष्य बंद स्रोत, unmaintained और त्रुटिपूर्ण है: वैश्विक इनलाइनिंग
        • लक्ष्य actionscript (रसायन विद्या) और जावास्क्रिप्ट (emscripten)
      • विपक्ष लिए मौजूद हैं।
      • जावास्क्रिप्ट लक्ष्य उचित अनुकूलन के लिए एचटीएमएल 5 की सुविधाओं (टाइप किया गया सरणियों के साथ जैसे रैखिक स्मृति) का उपयोग नहीं करते और
      • एक LLVM लक्ष्य निम्न स्तर के बाईटकोड से बदलना होगा, तो उच्च स्तरीय निर्माणों खो दिया है और फूला हुआ कर रहे हैं अपठनीय कोड अपरिपक्व हैं व्यक्तिगत निर्देशों का अनुवाद करने से बनाया गया है, जो एक तैयार किए गए जेआईटी को अनुकूलित करने के लिए और अधिक कठिन हो सकता है। "कूदें" निर्देशों में "गोटो" बयान वाले भाषाओं के लिए समस्याएं होती हैं।
  • वेब भाषाओं
    • पेशेवरों के लिए सी/C++ से एक अनुवादक लिखने के libclang का उपयोग करना:
      • एक सुंदर पार्स कोड संरचना करने के लिए आसान पहुँच प्रदान पुस्तकालय
      • कोड कर सकते हैं सी/सी ++
      • में ऐप्पल
      • से डेवलपर प्रयास प्रायोजित किया गया है
    • विपक्ष:
      • अधूरा; वर्तमान सुविधा सेट आईडीई लक्ष्य। मूल ऑपरेटर अप्रत्याशित होते हैं और उन्हें पहचानने के लिए लौटाए गए एएसटी तत्व से मैन्युअल रूप से पार्स किया जाना चाहिए।
      • संकलन से पहले कोड का अनुवाद करना सी/सी ++ जैसे मानकों में माना गया अनुकूलन छोड़ सकता है।
        • libclang के रूप में/C++ सी में कोड कर सकते हैं
      • विपक्ष:
  • वेब भाषाओं
    • पेशेवरों में अनुवाद करने clang के लिए नए कोड जनरेटर का निर्माण
      • कोई एपीआई नहीं है; कोड संरचना अस्थिर है
      • libclang का उपयोग करने से कहीं अधिक बड़ी नौकरी; बजना के धर्मशाला जटिल
  • में Common Lisp
    • पेशेवरों खेल लाइब्रेरी बनाई हैं:
      • लचीला, अच्छी तरह से विकसित भाषा
      • व्यापक आत्मनिरीक्षण अनुवादकों
      • लेखन को कम करना चाहिए
      • अनुवादक कम से कम जावास्क्रिप्ट
      • के लिए मौजूद हैं
    • विपक्ष:
      • अपरिचित भाषा
      • कोई मानकीकृत पुस्तकालय कार्यों, व्यापक रूप से अलग कार्यान्वयन

मैं इन रास्तों में से कौन सा आगे बढ़ाने चाहिए? क्या आप किसी अन्य, या किसी भी सिस्टम के बारे में जानते हैं जो उपयोगी हो सकता है?

क्या इस तरह की एक सामान्य परियोजना पहले से मौजूद है?

किसी भी इनपुट के लिए धन्यवाद।

+0

मुझे उम्मीद है कि आपको कोई सार्थक समाधान नहीं मिलेगा। ये लक्ष्य प्लेटफॉर्म + भाषाएं कुछ मामलों में इतनी अलग हैं कि उन्हें एक साथ लक्षित करने की कोशिश करने की कोई बात नहीं है ... –

+3

यह प्रश्न gamedev.se के लिए बेहतर अनुकूल हो सकता है। – Sean

+1

इस समस्या से निपटने के लिए अन्य दृष्टिकोण हैं। इन कोडों के लिए एकल कोड बेस से पूरे गेम या गेम इंजन को लिखना असंभव के बगल में है। लेकिन आप स्क्रिप्ट का उपयोग कर सकते हैं या "प्लेयर इंजन" के शीर्ष पर वास्तविक गेम बनाने के लिए सी-प्रीप्रोसेसर मार्ग के साथ जा सकते हैं जो कम-स्तर की सामग्री का ख्याल रखता है। इन सभी प्लेटफॉर्म पर ऐसे इंजन को लिखना एक बड़ा काम होगा, लेकिन फिर भी दिलचस्प परियोजना होगी। स्वामित्व वाली प्रणालियों जैसे विशेष रूप से मोबाइल कंपनियों में हैं। कुछ विचारों के लिए कम से कम एकता 3 डी देखें। ऐसा लगता है कि आजकल मल्टीप्लार्टर गेम डेवलपमेंट के लिए काफी हिट है। – Virne

उत्तर

0

ब्लिट्ज रिसर्च (http://www.blitzbasic.com) द्वारा विकास में एक भाषा वर्तमान में नहीं है, ऐसा नहीं है की अनुमति देता है येट जारी किया गया, हालांकि रिलीज की तारीख करीब आती है।

मुख्य डेवलपर के ब्लॉग यहाँ है: http://marksibly.blogspot.com/2010/05/hi-ok-heres-plan-i-am-currently-working.html

इस भाषा के रूप में स्वतंत्र और खुला स्रोत घोषणा की गई है (हालांकि खेल मॉड्यूल एक अलग उत्पाद के रूप में बेचा जाएगा)।

लक्ष्य प्लेटफार्मों यह बाहर बारी होने के लिए आप के लिए वास्तव में क्या देख रहे हो सकता है विंडोज, लिनक्स, MacOSX, Android, iPhone, XNA, फ्लैश और एचटीएमएल 5

शामिल हैं।

+0

यह शानदार लग रहा है! – fuzzyTew

+1

@fuzzyTew - बस सोचा कि मैं आपको बता दूंगा, बंदर अब बाहर है http://www.monkeycoder.co.nz/ – PottyBert

4

मुझे लगता है कि Unity वह है जिसे आप ढूंढ रहे हैं।

  • कुछ भुगतान संस्करण आपको यूनिटी सी ++ कोड का उपयोग, संशोधन और विस्तार करने की अनुमति देते हैं।
  • यह वेब-मोबाइल-डेस्कटॉप क्रॉस-प्लेटफ़ॉर्म है।
  • यह डिफ़ॉल्ट रूप से उच्च स्तरीय भाषाओं का उपयोग कर (नेट भाषाओं, नेट platform-, जावास्क्रिप्ट नहीं -लेकिन आदि)
+0

एकता एक अच्छा स्रोत है; धन्यवाद। आदर्श रूप में, मैं जावास्क्रिप्ट को लक्षित करने की कोशिश कर रहा हूं, जावास्क्रिप्ट में कोड नहीं। मैं कुछ ऐसा बनाने में सक्षम होना चाहता हूं जो प्लगइन के बिना ब्राउज़र में चलाया जा सके। यूनिटी स्रोतों के साथ मुझे अभी भी एक अच्छा अनुवादक की आवश्यकता होगी। – fuzzyTew

+3

मुझे लगता है कि आप असंभव दोस्त के लिए पूछ रहे हैं। –

2

Haxe संस्करण 2.07 में एक जटिल मैक्रो भाषा के परिचय के साथ और अधिक शक्तिशाली हो गया है। मुझे लगता है कि यह लक्ष्य अभी हक्स के साथ प्राप्त किया जा सकता है, और भविष्य में रिलीज में केवल मोरेसो मिलेगा। मैंने जो विपक्ष का उल्लेख किया है वह अभी भी खड़ा है, लेकिन भाषा खुली स्रोत है और मैक्रोज़ शक्तिशाली हैं।

संबंधित मुद्दे