क्या C ++ के लिए XNA जैसा कुछ है? [बन्द है]


18

मुझे XNA के फीचर्स बहुत पसंद हैं लेकिन मैं सी ++ गेम देव में लाना चाहता हूं। समस्या यह है कि मुझे अब एक पीएनजी फ़ाइल को लोड करने से लेकर खिड़की खोलने तक सब कुछ के बारे में चिंता करनी होगी। यह थोड़ा कष्टप्रद है।

मैं वास्तव में मेरे लिए इन मुद्दों को हल करने के लिए XNA के c ++ संस्करण को पसंद करूंगा।


यदि आप पहले से ही नहीं है, तो आपको डायरेक्टएक्स टूल किट पर एक नज़र डालनी चाहिए ... यह डायरेक्ट 3 डी 11 प्रोग्रामिंग के लिए एक सी ++ लाइब्रेरी है जो एक्सएनए गेम स्टूडियो स्टूडियो डिजाइन से स्पष्ट रूप से उधार लेता है।
चक वाल्बर्न

जवाबों:


16

मैं आपको सलाह दूंगा कि आप इसे देखें एसएफएमएल और पॉलीकोड को देखें

मुझे लगता है कि यहां के जवाब इस तरह की बात को याद कर रहे हैं। दस अलग-अलग पुस्तकालयों, जैसे कि Freetype, libpng, tinyxml, Ogg, Vorbis, इत्यादि के लिए कुछ बुनियादी XNA सुविधाएँ प्राप्त करने के लिए लिंक करना कष्टप्रद है।


SFML

http://www.sfml-dev.org/features.php

एसएफएमएल एक मुफ्त मल्टीमीडिया सी ++ एपीआई है जो आपको ग्राफिक्स, इनपुट, ऑडियो आदि के लिए निम्न और उच्च स्तर तक पहुंच प्रदान करता है। एक अर्थ में, यह XNA के समान है लेकिन आपके हाथ को उतना पकड़ नहीं देता है। उदाहरण के लिए, SFML में एक मॉडल वर्ग नहीं है।


यदि आप अपने खेलों में मॉडल का उपयोग करने की योजना बना रहे हैं, तो आपको उपयोग करना चाहिए Assimp

Assimp निम्नलिखित स्वरूपों को आयात करने के लिए समर्थन जोड़ता है:

Collada ( .dae )
Blender 3D ( .blend )
3ds Max 3DS ( .3ds )
3ds Max ASE ( .ase )
Wavefront Object ( .obj )
Stanford Polygon Library ( .ply )
AutoCAD DXF ( .dxf )
LightWave ( .lwo )
Modo ( .lxo )
Stereolithography ( .stl )
AC3D ( .ac )
Milkshape 3D ( .ms3d )
Quake I Mesh ( .mdl )
Quake II Mesh ( .md2 )
Quake III Mesh ( .md3 )
Quake III BSP ( .pk3 )
Biovision BVH ( .bvh )
DirectX X ( .x )
BlitzBasic 3D ( .b3d )
Quick3D ( .q3d,.q3s )
Ogre XML ( .mesh.xml )
Irrlicht Mesh ( .irrmesh )
Neutral File Format ( .nff )
Sense8 WorldToolKit ( .nff )
Object File Format ( .off )
PovRAY Raw ( .raw )
Terragen Terrain ( .ter )
3D GameStudio ( .mdl )
3D GameStudio Terrain ( .hmp )
Izware Nendo ( .ndo )

Polycode

http://polycode.org/features/

पॉलीकोड रचनात्मक कोड के लिए एक स्वतंत्र, ओपन-सोर्स, क्रॉस-प्लेटफॉर्म फ्रेमवर्क है। त्वरित 2 डी और 3 डी ग्राफिक्स, हार्डवेयर शेड, साउंड और नेटवर्क प्रोग्रामिंग, भौतिकी इंजन और अधिक के लिए आसान और सरल पहुंच प्राप्त करने के लिए आप इसे C ++ API के रूप में या एक स्टैंडअलोन स्क्रिप्टिंग भाषा के रूप में उपयोग कर सकते हैं।

कोर पॉलीकोड एपीआई C ++ में लिखा गया है और इसका उपयोग पोर्टेबल देशी एप्लिकेशन बनाने के लिए किया जा सकता है।

कोर सी ++ एपीआई के शीर्ष पर, पॉलीकोड एक लुआ-आधारित स्क्रिप्टिंग प्रणाली प्रदान करता है जिसमें संकलन उपकरण का अपना सेट होता है। Lua API C ++ API को दिखाता है और इसका उपयोग आसानी से प्रोटोटाइप बनाने के लिए किया जा सकता है और यहां तक ​​कि C ++ को संकलित किए बिना कई प्लेटफार्मों पर पूर्ण अनुप्रयोगों को प्रकाशित किया जा सकता है।

पॉलीकोड ओपनसोर्स है, जिसका अर्थ है कि आप सीख सकते हैं कि पर्दे के पीछे चीजें कैसे की जाती हैं। इसके अलावा, यह मॉडल को लोड करने के लिए Assimp का उपयोग करता है इसलिए आपको मैन्युअल रूप से Assimp से लिंक करने के बारे में चिंता करने की आवश्यकता नहीं है।


लघु स्पष्टीकरण: पॉलीकोड मॉडल को लोड करने के लिए assimp का उपयोग नहीं करता है, बल्कि मॉडल को लोड करने के लिए एक assimp- आधारित टूल है जिसे वह लोड कर सकता है।
cib

4

शाब्दिक रूप से सैकड़ों पुस्तकालय हैं जो खेल विकास के सभी प्रकार के पहलुओं को संभालते हैं। छवियों को लोड करने से लेकर, विंडो खोलने और प्रबंधित करने, रेंडर करने के लिए, ध्वनि के लिए, भौतिक विज्ञान आदि के लिए।

बहुत सारे "वन-स्टॉप-शॉप" समाधान नहीं हैं, जहां आपको एक ही बार में सब कुछ मिलता है। यह XNA के लाभों में से एक है। इंजन बनाने के लिए आपको आम तौर पर कई पुस्तकालयों को एक साथ खींचना पड़ता है। यह आपको महान लचीलापन देता है, जैसे कि एक घटक की कमी है, आप इसे (अपेक्षाकृत) आसानी से दूसरे के लिए स्वैप कर सकते हैं। लेकिन एक ही समय में, इसे और अधिक काम करने की आवश्यकता होती है।

हालांकि वास्तव में, आप किस प्रोग्रामिंग भाषा का उपयोग करना चाहते हैं, इस पर आप क्यों लटके हुए हैं? यह मुझे लगता है कि आप वास्तव में XNA को पसंद करते हैं और इसे खेल के विकास के लिए उपयोग करना चाहते हैं। तो ऐसा करो।


3

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

डी 3 डीएक्स लाइब्रेरी और डीएक्सयूटी डी 3 डी 9 और 10 के लिए सबसे उपयुक्त हैं, और डीएक्सयूटी अपने स्रोत कोड के साथ आता है। DX11 के लिए उन्होंने उन कामों में से कुछ कार्यों को रद्द कर दिया, लेकिन मुझे उम्मीद है कि उनके पास अभी भी सबसे उपयोगी हैं, और अगर मुझे अच्छी तरह से याद है कि वे स्रोत कोड रूप में प्रभाव रूपरेखा प्रदान करते हैं (यदि आपके पास इसे खोजने का धैर्य है)।

जब मैंने फ्रेमवर्क के पिरामिडों की तुलना में निचले स्तरों पर काम किया है, तो मैंने बहुत कुछ सीखा है, इसलिए मैं आपको XNA का उपयोग करने के लिए नहीं कह सकता, लेकिन यह आपके लक्ष्यों पर निर्भर करता है।


डी 3 डीएक्स के सभी संस्करण हटाए गए हैं। 'आधुनिक' Direct3D 11.x यूटिलिटीज़ लाइब्रेरी विंडोज 8.x SDK में DirectXTex , DirectXTK और DirectXMesh plus DirectXMath हैं। प्रभाव 11 और DXUT11 का नवीनतम संस्करण उन लोगों के लिए कोडप्लेक्स पर है जो पुराने कोडबेस को पोर्ट कर रहे हैं और केवल Win32 डेस्कटॉप ऐप से खुश हैं।
चक वाल्बर्न

1

यदि आप सिर्फ सी ++ भाषा से परिचित हो रहे हैं, तो मैं खेल के विकास में अनुभव प्राप्त करने के लिए एसडीएल जैसी एक साधारण लाइब्रेरी का उपयोग करने और फिर ओपनजीएल का उपयोग करके प्रोग्रामिंग करने की सलाह दूंगा।

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