गेम इंजन को क्या करना चाहिए? [बन्द है]


20

मैं अपने कौशल में सुधार / कुछ नया करने की कोशिश करना चाहता हूं और मैं 3 डी के साथ शुरुआत करना चाहता हूं। मैंने C ++ के साथ 3 डी में प्रोग्रामिंग शुरू करना पढ़ा है, लेकिन मेरे पास इंजनों के बारे में सवाल है:

  • इंजन को क्या करना चाहिए? मुझे पता है कि यह 3D API (यानी OpenGL या DirectX) के ऊपर की अमूर्त परत है, लेकिन इसे वास्तव में क्या करना चाहिए?

पुस्तक की सिफारिशों के लिए, इस प्रश्न में आपकी मदद करनी चाहिए: gamedev.stackexchange.com/questions/455/…
Tetrad

जवाबों:


27

आप सही कह रहे हैं कि एक गेम इंजन निम्न स्तर के ग्राफिक्स एपीआई से दूर हो रहा है, लेकिन एक पूरी तरह से विकसित गेम इंजन बहुत कुछ करता है।

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

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

वहाँ बहुत सारे इंजन हैं, लेकिन एक ग्राफिक्स इंजन और एक गेम इंजन के बीच अंतर से सावधान रहें (उदाहरण के लिए, एकता एक गेम इंजन होगा, जबकि ऑग्रे एक ग्राफिक्स इंजन होगा)।

मुझे इस विषय पर दो किताबें मिली हैं, लेकिन वे इस विषय पर एक अच्छा अवलोकन प्रदान करते हैं:

  • डेविड एच एबरली द्वारा 3 डी गेम इंजन आर्किटेक्चर

  • माइक मैकशाफ्ट्री द्वारा पूरा किया गया गेम कोडिंग

वे बहुत गहराई में नहीं हैं क्योंकि आपको एक पूर्ण, पेशेवर गेम इंजन बनाने के लिए आवश्यक ज्ञान की गहराई प्राप्त करने के लिए प्रत्येक घटक पर कई पुस्तकों की आवश्यकता होगी, लेकिन वे अवधारणाओं को बहुत अच्छी तरह से समझाते हैं, मुझे लगता है।

यदि आप गेम देव शुरू कर रहे हैं, तो एक इंजन न बनाएं। मैं आपको निम्न पृष्ठ पर संदर्भित करता हूं: http://geometrian.com/programming/tutorials/write-games-not-engines/

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

उम्मीद है की वो मदद करदे।

रे


1
ब्लॉग लेख के लिए +1। यह वही कहता है जो मैं इस मामले पर कहूंगा।
टेट्राद

5
हाँ, किसी को भी गेम बनाने से पहले गेम इंजन नहीं बनाना चाहिए। आप कैसे जान सकते हैं कि आपका कोड पुन: प्रयोज्य है यदि आप अभी तक नहीं जानते हैं कि यह प्रयोग करने योग्य है?
काइलोटन

@ कियलोतन मुझे एहसास है कि यह बहुत देर हो चुकी है, लेकिन मैं आपको उस टिप्पणी के लिए धन्यवाद देना चाहूंगा क्योंकि मैं इसे लगातार दूसरों को उद्धृत कर रहा हूं :)
रे डे

@RayDey के लिंक "गेम नहीं इंजन लिखो" मृत है, FYI करें। मैं इसे पढ़ने के लिए उत्सुक था :(
DrewJordan

5

रे के जवाब में जोड़ना: इंजन (गेम, ग्राफिक्स, ऑडियो, आदि ...) न केवल अंतर्निहित एपीआई के साथ बातचीत करना आसान बनाते हैं, बल्कि गेम, एक्स: शेडिंग मॉडल, 3 डी ध्वनि के लिए कार्यक्षमता को लागू करते हैं।

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


+1 संरचना, मापनीयता और लचीलेपन के बिंदु के लिए और मैं स्मृति प्रबंधन को जोड़ना भूल गया
रे डे

1

मैंने एक गेम इंजन क्या है, इस पर एक विस्तृत ट्यूटोरियल लिखा है - विशेष रूप से आईफोन और एंड्रॉइड प्लेटफ़ॉर्म के संदर्भ में। मैंने एक गेम इंजन के विभिन्न भागों के उदाहरणों के साथ विस्तृत विवरण शामिल किए हैं: UI, ग्राफिक्स, ध्वनि, भौतिकी, कण प्रभाव। ट्यूटोरियल यहां उपलब्ध है: गेम इंजन क्या है? । आशा है कि यह उपयोगी है।


0

हर गेम इंजन का थोड़ा अलग विचार होता है कि गेम इंजन को क्या करना चाहिए।

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

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