सबसे आसान, 2 डी गेम प्रोग्राम करने का सबसे मज़ेदार तरीका? Chamak? XNA? कोई और इंजन? [बन्द है]


20

यह एक गेम बनाने के लिए अपने खाली समय को मीठा करने के लिए एक शौक़ीन गेम प्रोग्रामर के लिए सबसे सुखद तरीके से मेरी खोज का विवरण है।

मेरी आवश्यकताएं: मैंने पहले फ्लैश देखा, मैंने कुछ छोटे गेम बनाए लेकिन मुझे प्रदर्शन पर संदेह है। मैं एक बहुत बड़ी रणनीति का खेल बनाना चाहूंगा, जिसमें कई सौ इकाइयाँ एक साथ लड़ेंगी, विस्फोट और एनिमेशन शामिल होंगे। ज़ूम करने योग्य नक्शे भी। मैंने देखा कि Adobe के पास Flash के लिए एक नया 3D API है, लेकिन मुझे नहीं पता कि इससे 2D प्रदर्शन में सुधार होता है, मुझे उनके MAX10 सत्रों में उस प्रश्न से संबंधित कुछ भी नहीं मिला। क्या आप कहेंगे कि फ़्लैश आसानी से बड़े 2D गेम्स बनाने की एक अच्छी तकनीक है? मैं वास्तव में एक्टीस्क्रिप्ट को पसंद करता हूं, और मुझे पसंद है कि फ्लैश में सब कुछ कितना आसान है। कई इंजन उपलब्ध हैं जो इसे और भी आसान बनाते हैं।

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

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

तो सवाल यह हो जाता है: क्या कोई क्रॉस प्लेटफ़ॉर्म (विकसित करने के लिए स्वतंत्र या स्वतंत्र?) इंजन उपलब्ध है जिसे मैं 2D विकास के लिए उपयोग कर सकता हूं? मैं पसंद करता हूँ: C #, Actionscript। अगर टूलसेट औसत से ऊपर है, तो मुझे c ++ का उपयोग करने में कोई आपत्ति नहीं है, लेकिन मुझे बहुत संदेह है कि ऐसा कुछ है। कृपया मुझे गलत साबित करें :) इसलिए सारांश: मैं फ्लैश का उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि क्या यह अच्छी तरह से पर्याप्त है। मैं एक लाभांश नहीं हूं, मुझे कुछ वास्तविक एपीआई चाहिए जो मैं एक उचित आईडीई के अंदर काम कर सकता हूं।

बस जानकारी के लिए, मैंने कई विकल्पों को देखा, मैं वास्तव में पहले से ही लंबे समय से देख रहा हूं। अंत में निर्णय लेने के लिए आपने मेरी बहुत मदद की।

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

  • Unity3D। यह एक बहुत अच्छा है, लेकिन मुझे वास्तव में 3 डी की आवश्यकता नहीं है , और यह काफी ... सीखने के लिए बहुत काम है। मुझे यह भी पसंद नहीं है कि विभिन्न प्लेटफार्मों के लिए उपयोग करना इतना महंगा है और मैं केवल स्क्रिप्टिंग के माध्यम से इसके लिए कोड कर सकता हूं। आपको प्रत्येक प्लेटफ़ॉर्म को अलग से खरीदना होगा। संपादक प्रयोज्यता औसत है, कुल मिलाकर उत्पाद अधिकांश उद्देश्यों के लिए पर्याप्त है, लेकिन इसे स्वयं सीखना ओवरकिल होगा।

  • शिव 3 डी। यह काफी अच्छा लग रहा है, लेकिन फिर से: मुझे वास्तव में 3 डी की आवश्यकता नहीं है। संपादक की प्रयोज्यता मेरे विचार में यूनिटी 3 डी से थोड़ी खराब है और यह मेरे लिए स्पष्ट नहीं था कि प्रोग्रामिंग कैसे शुरू करें। मुझे लगता है कि कोडिंग के लिए इसे C ++ की आवश्यकता है, इसलिए यह नकारात्मक भी है। मैं मज़े करना चाहता हूँ, और ग # मज़ा है;)

  • एसडीएल। स्पष्ट रूप से, मुझे अभी भी उन सभी एसडीएल कार्यान्वयनों को पोर्ट करने की आवश्यकता है। और मुझे OpenGL स्टाइल प्रोग्रामिंग पसंद नहीं है, यह सिर्फ सादा बदसूरत है। और इसे c ++ की आवश्यकता है, मुझे पता है कि कुछ रैपर उपलब्ध हो सकते हैं, लेकिन मुझे रैपर का उपयोग करना पसंद नहीं है, क्योंकि ...

  • Irrlicht। सुविधाओं की एक बहुत है, लेकिन समर्थन कम लगता है और यह उत्साही के उद्देश्य से है। C # बाइंडिंग बार-बार गिरती है। मैं एक इंजन उत्साही नहीं हूं, मैं सिर्फ एक खेल बनाना चाहता हूं। मैं इसे Irrlicht के साथ नहीं देख रहा हूँ।

  • Ogre3D। बहुत अधिक काम करने का तरीका, यह सिर्फ एक ग्राफिक्स इंजन है। इसके अलावा कोई एकाधिक प्लेटफ़ॉर्म समर्थन और c ++।

  • Torque2D। उपयोग करने के लिए कुछ खर्च होता है, और मैंने समर्थन और प्रलेखन के बारे में बहुत सारी अच्छी बातें नहीं सुनीं। इसके अलावा प्रत्येक प्लेटफॉर्म के लिए अतिरिक्त लागत है।


एफआरबी एसडीके टूल्स खराब हैं (विशेष रूप से गोंद, मैं इसका उपयोग नहीं कर रहा हूं) लेकिन आपको उन्हें लिखने में समय बचाता है और यदि आपके स्वयं के उपकरण लिखना आवश्यक है तो फ़ाइल प्रारूप सरल हैं। एपीआई खराब नहीं है और इस दायरे के लिए उपयुक्त है, अभी सबसे बड़ी समस्या पीसी और एक्सबॉक्स के लिए एक्सएनए 4.0 पोर्ट की कमी है। इसके अलावा, XNA रेडिस्ट और अन्य प्राइक्स इंस्टॉल का हिस्सा हो सकते हैं - और क्लिकऑन का उपयोग करके आप ऑटो-अपडेट और तैनाती के लिए तैयार हो सकते हैं।
Oskar Duveborn

खैर, मेरी बात यह है कि मैं उनका उपयोग नहीं करूंगा, और इसलिए उपकरण बेकार हैं। वे अपने बुरे UI / सामान्य अनुभव के अलावा मुझ पर दुर्घटनाग्रस्त होते रहते हैं। क्या होगा अगर यह पता चले कि वे एक निश्चित सुविधा को याद करते हैं? यहां तक ​​कि अगर वे खुले स्रोत थे, तो मैं उन कोडबेस के पास कहीं भी नहीं जाना चाहता। कठोर लगता है, लेकिन मैं वास्तव में कुछ आराम से प्रोग्रामिंग करना चाहता हूं, और एफआरबी हताशा का एक फल की तरह लगता है। जरा कल्पना करें: मैंने कण संपादक की कोशिश की और एक छवि फ़ाइल खोलने के लिए बटन भी नहीं खोज सका। जो यकीनन एकमात्र सबसे महत्वपूर्ण विशेषता है जो बाकी सब कुछ बनाता है।
मैक्सी

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

कण संपादक में listit बस emitter गुण पैनल पर "बनावट" कहा जाता है ^ ^ सभी उपकरण पर ट्यूटोरियल इसलिए गैर-कोडिंग सामग्री-रचनाकारों की मदद कर सकते हैं। लेकिन हां, UI एक इंटरैक्शन डिज़ाइन के दृष्टिकोण से वास्तव में भयानक हैं।
बजे ऑस्कर डुवॉर्न

1
केवल XNA के विंडोज होने के संबंध में, XNA के एपीआई का एक खुला स्रोत कार्यान्वयन है जिसे मोनोमे कहा जाता है जो सभी प्रकार के गैर-विंडोज प्लेटफार्मों पर चलेगा : cocoa-mono.org/archives/400/… मैंने खुद इसका उपयोग नहीं किया है। यह मौजूद है।
अराजकतावादी

जवाबों:


10

Pygame अब तक मेरा पसंदीदा है। चूंकि अजगर में प्रोग्रामिंग का मतलब है कि आप तेजी से प्रोग्राम करेंगे और चूंकि 2D चीजें करने में तेज हैं, इसलिए pygame मजेदार होगा ...


एक बोनस के रूप में यदि आप यह तय करते हैं कि आप 3 डी दुनिया में जाना चाहते हैं, तो पीगलेट है जो साँप-त्वचा में जीएल को लपेटता है;)
वेन वर्नर

9

मैं पिछले कुछ समय से L beenVE का उपयोग कर रहा हूं और मुझे यह बहुत पसंद है। आपको लुआ सीखना होगा, लेकिन यह वैसे भी सीखने के लिए एक मजेदार छोटी भाषा है। मंच पर मौजूद लोग बेहद मददगार हैं।


प्रदर्शन क्या है? मैं किस आईडीई का उपयोग कर सकता हूं?
मैक्सी

1
मैं इसके समर्थन में हूं। हमने अपने ग्लोबल गेम जैम गेम के लिए लुआ और लव का इस्तेमाल किया और इसने काल्पनिक रूप से काम किया। उन्होंने एक बहुत ही खुले स्रोत पुस्तकालयों को एक सामान्य एपीआई के तहत एक साथ रखा है, और हर रिलीज बेहतर हो रहा है। प्रदर्शन बहुत अच्छा है (लुआ तेजी से धधक रहा है!), और एफबीओ जैसी कई उन्नत ओपनगेल विशेषताएं सामने आई हैं, जो बहुत सारे 2 डी इंजन के लिए दुर्लभ है। उस भलाई के शीर्ष पर, यह क्रॉस-प्लेटफॉर्म (विन / मैक / लिनक्स) है। मैं निश्चित रूप से इसे एक अच्छा रूप देना चाहूंगा।
बॉब सोमरस

1
@ मोम: प्यार के साथ आपको बस एक संपादक की जरूरत है, और एक सांत्वना जहाँ आप लिख सकते हैंlove .
egarcia

2
क्या रूस ने उसके साथ एक खेल किया था? यह रूस से प्यार के साथ होगा: पी
बार्ट वैन ह्युकेलोम

5

मैंने फ्लैश के साथ जाने का फैसला किया। नए मोलेहिल 3 डी एपीआई का उपयोग 3 डी अंतरिक्ष में 2 डी स्प्राइट्स को बहुत तेजी से खींचने के लिए किया जा सकता है। मुझे कोई कारण नहीं दिखाई देता है कि जिस खेल को मैंने पहले वर्णित किया था उसके लिए फ्लैश काफी तेज नहीं होना चाहिए। मुझे उपकरण खुद बनाने होंगे, लेकिन मुझे शायद ऐसा करने की आवश्यकता होगी। उपकरणों के निर्माण के लिए AIR का उपयोग करना मेरी राय में भी बहुत साफ-सुथरा है। फ्लैश में प्लेटफार्मों के साथ सबसे व्यापक पहुंच भी है, जो शांत है।


Cocos2d-x का प्रयास करें । यह वही है जो मैं अपने इंडी गेम के विकास के
स्टीफन फुरलानी

1
फ्लैश शायद एक अच्छा विकल्प है, क्योंकि वहां फ्लैश के लिए बहुत अच्छे (परिपक्व) उपकरण और पुस्तकालय हैं। मोलेहिल एपीआई सीपीयू से भारी भार उठाएगा (पहले सब कुछ सीपीयू द्वारा नियंत्रित किया गया था)। आपको अपने खेल के वितरण के बारे में सोचना होगा। फ्लैश का मतलब आमतौर पर ब्राउज़र-आधारित गेम होता है ...
बम्ज़ैक

और मोबाइल गेमिंग के बारे में ध्यान रखें, फ्लैश और मोबाइल ऐसे खराब संयोजन हैं।
गुस्तावो मैकिएल

" और मोबाइल गेमिंग के बारे में ध्यान रखना, फ्लैश और मोबाइल ऐसे खराब संयोजन हैं। " @Gtoknu, किसी भी कारण से?
नेमोसेटिन

@NemoStein मोबाइल पर कुछ फ़्लैश चलाने की कोशिश करें। इसके अलावा, एडोब ने एंड्रॉइड के लिए फ्लैश के अपने विकास को बंद कर दिया, और आईओएस के लिए कोई फ्लैश नहीं है।
गुस्तावो मैकिएल

4

SFML आज़माएं


उपयोगी होते हुए, एसएफएमएल केवल एक ग्राफिक्स / नेटवर्क / साउंड एपीआई है, न कि एक पूर्ण रूप से चित्रित गेम इंजन (हालांकि यह काफी करीब है)।
a_m0d

2

Cocos2d-x का प्रयास करें । यह वही है जो मैं अपने इंडी गेम के विकास के लिए उपयोग कर रहा हूं

यह एक आजमाया हुआ और सच्चा OpenGL (ES) प्लेटफ़ॉर्म है जिसमें ध्वनि, भौतिकी और यहां तक ​​कि थोड़ा 3D है जो कुछ समय के लिए iPhone के लिए बाहर हो गया है, और अभी अन्य प्लेटफार्मों पर आ रहा है।


2

चूँकि आपने कहा था कि आप एक्टेशनस्क्रिप्ट पसंद करते हैं, लेकिन क्रॉस प्लेटफ़ॉर्म की तलाश में हैं, तो HaXe + NME पर एक नज़र डालें । HaXe Actionscript की तरह ही एक भाषा है, लेकिन Flash, Javascript, PHP, या C ++ को संकलित कर सकता है। एनएमई फ्लैश की ग्राफिक्स लाइब्रेरी के समान एक पुस्तकालय है, लेकिन अन्य प्लेटफार्मों पर भी चलता है। यह संयोजन आपको कई अलग-अलग प्लेटफार्मों को संकलित करने की अनुमति देता है।

मैंने अभी तक NME का उपयोग नहीं किया है, लेकिन HaXe + Molehill (कुछ ही दिनों पहले) के साथ मेरा पहला परीक्षण 60fps का उत्पादन किया जब मेरे लैपटॉप पर 10,000 16x16 घूर्णन स्प्राइट प्रदान किया गया। मैं केवल कुछ दिनों के लिए हैक्स का उपयोग कर रहा हूं और इसके साथ पर्याप्त अनुभव नहीं है, यह सुनिश्चित करने के लिए कि यह आपके लिए सही बात है, लेकिन यह देखने लायक है।


1

मैं व्यक्तिगत रूप से एलेग्रो 5 का बहुत बड़ा प्रशंसक हूं , लेकिन यह एक सी एपीआई है। अभी भी और सभी, यह एक साधारण एपीआई है जो आपके रास्ते से हट जाता है और इस तक पहुंच प्रदान करता है:

  • 2D ग्राफिक्स (प्लैटफॉम के आधार पर ओपनगैल या डी 3 डी द्वारा समर्थित)
  • ध्वनि
  • फ़ॉन्ट्स (बिटमैप और TTF दोनों सहित)
  • इनपुट (माउस और कीबोर्ड)
  • PhysicsFS (फाइल सिस्टम वर्चुअलाइजेशन)
  • छवि लोड हो रहा है

5.1 shader समर्थन जोड़ रहा होगा, साथ ही।

एसडीएल 1.3 भी अच्छी तरह से आकार ले रहा है। लगता है कि सैम प्रमुख एपीआई परिवर्तन कर रहा है, और जो पहले से है वह पहले से ही काफी स्थिर है। फिर भी ... यह अभी भी बीटा नहीं है, और एलेग्रो 5.0 जारी किया गया है।

दी गई, अधिक जटिल और उन्नत खेलों के लिए आप शायद किसी प्रकार की भौतिकी पुस्तकालय ( उदाहरण के लिए Box2D ) के साथ Allegro 5 को जोड़ना चाहते हैं । फिर भी, आप एक बहुत लंबा रास्ता तय कर सकते हैं, और मज़े का ढेर लगा सकते हैं, इसके अलावा अल्लेग्रो 5, सी या सी ++ मानक पुस्तकालय और अपने स्वयं के कोड से अधिक कुछ भी नहीं है।

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