एक पुस्तकालय और एक इंजन के बीच क्या अंतर है?


31

मैं स्काला के साथ 2 डी गेम के विकास में मदद करने के लिए एक पुस्तकालय पर काम कर रहा हूं। अब तक, यह सहायक कक्षाओं, फ़ाइल लोडिंग, टक्कर का पता लगाने, छवियों, स्प्राइट्स आदि का एक संग्रह है।

तो यह एक क्लास लाइब्रेरी होने और इंजन होने के रूप में कब बंद हो जाता है? उपयोगी फ्रेमवर्क और गेम इंजन के बीच अंतर कहाँ है?


मैं कहूंगा कि भेद नहीं बनाया जा सकता, क्योंकि वे अमूर्तता के एक अलग स्तर पर अवधारणाएं हैं। एक "बड़ा" इंजन अभी भी एक ढांचा है।
एंड्रे परमेस

1
एक गेम इंजन और एक रूपरेखा के बीच अंतर कम है, लेकिन शीर्षक से, एक पुस्तकालय और इंजन के बीच, एक विशाल और स्पष्ट रूप से परिभाषित अंतर है। इस लिंक ने इसे तैयार किया: gamefromscratch.com/post/2015/06/13/…
सर्पथ

जवाबों:


21

मुझे लगता है कि लोगों में भ्रम की स्थिति यह है कि एक आम तौर पर दूसरे से बना होता है, इसलिए जो लोग वास्तव में जानना चाहते हैं वह यह है कि जब आपके पास दूसरे को मानने के लिए पर्याप्त है।

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

कभी नहीँ।

जहां एक उपयोगी ढांचे और गेम इंजन में बिल्कुल अंतर होता है?

वहां कोई नहीं है।

अब मैं जवाब समझाता हूं। एक खेल इंजन वर्ग पुस्तकालयों से बना है। वे केवल क्लास लाइब्रेरी होने से नहीं रोकते क्योंकि वे एक गेम इंजन के भीतर हैं। एक पुस्तकालय एक खेल इंजन के भीतर एक विशिष्ट जरूरत से निपटने के लिए एक उपयोगी ढांचा है। एक फ्रेमवर्क जो एक पूर्ण गेम की जरूरतों को पूरा करता है, एक गेम इंजन है।

यहाँ खेल इंजन के कुछ उदाहरण दिए गए हैं:

  • अवास्तविक इंजन
  • वास्तविकता इंजन
  • स्रोत इंजन
  • क्वेक इंजन
  • एकता इंजन

और पुस्तकालयों के कुछ उदाहरण

  • नोवोडेक्स (भौतिकी)
  • FMOD (ऑडियो)
  • हॉकोक (भौतिकी)
  • Ogre3D (प्रतिपादन)
  • BINK (वीडियो लाइब्रेरी)
  • Direct3D (ग्राफिक्स)
  • ओपनजीएल (ग्राफिक्स)
  • डायरेक्टसाउंड (ऑडियो)
  • XInput (इनपुट)

उम्मीद है की यह मदद करेगा


1
एक रेंडरिंग इंजन और एक ग्राफिक्स लाइब्रेरी के बीच अंतर के बारे में क्या? : पी
ज़की जर्मन

1
@Zaky जर्मन - Ogre3D एक ग्राफिक्स 'इंजन' है जैसे FMOD एक ऑडियो 'इंजन' है। अलग-अलग हालांकि ये गेम इंजन नहीं हैं, वे उपयोगकर्ता इनपुट, नेटवर्क कनेक्टिविटी या उदाहरण के लिए पसंद नहीं करते हैं। यह वह जगह है जहां मुझे लगता है कि कुछ भ्रम खेल में आ सकता है। इस अर्थ में आप लाइब्रेरी, मॉड्यूल, कंपोनेंट या इंजन को इंटरचेंज कर सकते हैं। ये एक 'गेम इंजन' नहीं हैं। एक ग्राफिक्स लाइब्रेरी Direct3D के लिए Direct3D पर एक पतली API या एक पतली एपीआई होगी जो इसे आसान बनाने के लिए है, लेकिन यह सीधे रेंडर नहीं करेगा। इसके आसपास OpenGL और रैपर भी ग्राफिक्स लाइब्रेरी क्षेत्र में आते हैं।
जेम्स

14

वास्तव में या तो टर्म के लिए कोई ठोस परिभाषा नहीं है (या संबंधित शब्द "फ्रेमवर्क," उस मामले के लिए)। सॉफ्टवेयर पैकेजों में विभिन्न सूक्ष्म अंतरों की व्याख्या करने और उन्हें वर्गीकरण प्रदान करने के सैकड़ों अलग-अलग तरीके हैं।

मैं व्यक्तिगत रूप से एक "लाइब्रेरी" को एक ऐसी चीज़ के रूप में देखता हूं जो कार्यक्षमता का अपेक्षाकृत छोटा और निर्देशित सेट प्रदान करता है, जबकि एक "फ्रेमवर्क" अधिक या व्यापक कार्यक्षमता प्रदान करता है, और एक "इंजन" समान (या अधिक) प्रदान करता है और आमतौर पर कार्यक्षमता का एक सेट होता है संबद्ध उपकरण जो इसके साथ आते हैं।

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


एक रूपरेखा और अन्य पुस्तकालयों के बीच एक ठोस अंतर है; ये पूर्व के विकी पृष्ठ में सूचीबद्ध हैं । वास्तव में, रूपरेखा आवेदन के प्रवाह को नियंत्रित करती है, और आप अपना कोड उसमें डालते हैं; अन्य पुस्तकालयों में आप प्रवाह को नियंत्रित करते हैं और इसके कोड को कॉल करते हैं।
एंड्रे परमेस 20

1
मैं उस निश्चित पर विचार नहीं करेगा; विकिपीडिया में "गेम इंजन" के लिए एक पृष्ठ है, और "लाइब्रेरी" और "फ्रेमवर्क" की तरह, उन शब्दों का उपयोग अक्सर विकी पृष्ठ पर वर्णन के अनुरूप किया जाता है जैसे कि मेरे तरीके से नहीं। अनुभव। यह अभी भी सभी बहुत लहराती है।
जोश

2

यह एक मुश्किल सवाल है, क्योंकि पुस्तकालय और इंजन के बीच की रेखा कभी-कभी बहुत पतली, धुंधली हो सकती है। मुझे यह कहना पड़ेगा कि वह बिंदु जहां एक पुस्तकालय इंजन में बदल जाता है, जब वह एक विशिष्ट गेम या एक विशिष्ट प्रकार के गेम की ओर गियर हो जाता है।

उदाहरण के लिए: अवास्तविक इंजन (या स्रोत, या क्वेक) को एफपीएस गेम के लिए उपयोग करने के लिए डिज़ाइन किया गया है (यह संभवत: अन्य खेलों के लिए उपयोग किया जा सकता है, लेकिन आप इंजन के खिलाफ काम करने में कुछ समय खर्च करेंगे)। Ogre3d (या यहां तक ​​कि Directx, SDL, या अन्य सामान्य लाइब्रेरीज़) का उपयोग किसी भी प्रकार के गेम को बनाने के लिए किया जा सकता है, बिना कोड के प्रमुख भागों को चीरने के लिए या उनके आसपास काम करने के लिए।

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