स्क्रैच से शुरू - क्या यह एक गलती है अगर मैं पहिया का फिर से आविष्कार करता हूं?


31

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

लेकिन बहुत सारे ब्लॉग और देवता कहते हैं कि पहिया का फिर से आविष्कार करने के लिए यह एक अच्छा विकल्प नहीं है।

क्या मैं कुछ भूल रहा हूँ?


कितनी बार आप वास्तव में "एक खेल शुरू करते हैं"? यदि आप तेजी से विचारों की पुनरावृत्ति कर रहे हैं, तो जो भी काम करें। यदि आप एक मैग्नम ओपस बना रहे हैं जहां एक मिस्टेप महंगा है या समय सीमित है, तो पहिया को फिर से क्यों समय बर्बाद करना है? यदि आप सीखने में रुचि रखते हैं कि चीजें कैसे काम करती हैं, तो अपनी तकनीक क्यों न लिखें? आपके यहाँ क्या लक्ष्य हैं?
क्रिस

जवाबों:


16

नहीं यह कोई बुरी बात नहीं है। सीखना और सीखने की क्षमता एक अच्छा प्रोग्रामर होने के लिए बिल्कुल मौलिक है।

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

बेशक जब आप कुछ कर चुके हैं और आगे के खेल बनाना चाहते हैं, तो आपके पुराने कोडबेस को पुन: उपयोग करने का कोई कारण नहीं है।

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

आपके साथ ईमानदार होने के लिए, अपने स्वयं के कोड का उपयोग करके और विभिन्न पुस्तकालयों और इंजनों का उपयोग करके अनुभव का एक संयोजन आपको एक बेहतर कोडर बना देगा।


धन्यवाद रे कि मददगार है! लेकिन क्या आप गेम मैकेनिक्स को भी सूचीबद्ध कर सकते हैं ...
अय्यप्पा

कोई बात नहीं। मैं पूरी तरह से निश्चित नहीं हूं कि आपके मूल प्रश्न के संदर्भ में आपका क्या मतलब है। आप के बाद क्या विशेष रूप से कर रहे हैं?
रे डे

यह ठीक है, मैं इसे एक अलग प्रश्न बना दूंगा। इस पोस्ट में अन्य प्रश्न को हटा दिया गया (संपादित किया गया) क्योंकि यह संदर्भ से थोड़ा संबंधित नहीं है।
अय्यप्पा

यह खत्म लाइन के लिए +1 - वास्तव में एक परियोजना को पूरा करना अच्छा अनुभव है।
साइक्लॉप्स

36
i want to implement it on my own to learn stuff.

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


3
+1। सिर्फ इसलिए कि एक एपीआई या थर्ड पार्टी लाइब्रेरी सभी कार्यान्वयन विवरणों को दूर कर सकती है इसका मतलब यह नहीं है कि आपको उन्हें जानने की आवश्यकता नहीं है। 'ऑफ-द-शेल्फ पहियों' का उपयोग करने से आपको तैयार कोड तेजी से लिखने में मदद मिलेगी; लेकिन अपना स्वयं का पहिया बनाने से आपको यह पता लगाने में मदद मिलेगी कि कौन से प्रीमियर सबसे अच्छे हैं, और सबसे महत्वपूर्ण बात यह है कि प्रवक्ता द्वारा पॉपिंग शुरू करने पर उन्हें कैसे ऑप्टिमाइज़ और डीबग करना है ...
sebf

4
+1 जब तक आप पहियों बनाना नहीं सीखते, तब तक पहिए को फिर से न लगाएं।
zzzzBov

4
याद रखें कि इससे गेम इंजन डिज़ाइन में आपके कौशल में सुधार होगा , लेकिन गेम डिज़ाइन में नहीं।
डेव ओ।

यह भी एक योग्य उत्तर है ... धन्यवाद ... लेकिन यह बुरा है कि मैं दो उत्तरों को चिह्नित नहीं कर सकता :(
अयप्पा

10

पहिए को फिर से लगाना आपको सिखाता है कि पहिए कैसे काम करते हैं।


5

आप के बाद पर निर्भर करता है। यदि आप सीखना चाहते हैं, तो अपने मनचाहे पहियों को सुदृढ़ करें। मैं ऐसे लोगों को जानता हूं, जिन्होंने अपने स्वयं के JVM या PNG लोडरों को इसके लिए लिखा है।

अधिकांश ब्लॉग शायद सलाह देते हैं कि सामान को कैसे प्राप्त करें जो आपको जल्दी से भुगतान किया जाता है, लेकिन मुझे नहीं पता कि क्या यह एक लंबी अवधि की रणनीति है। यदि आप नहीं जानते कि आप किसके साथ खेल रहे हैं, तो आपको कैसे पता चलेगा कि यह एक अच्छा विकल्प है? आप क्या करेंगे जब आप मुद्दों मारा, मंचों पर शिकायत जाना, या आप इसे अपने आप को यह पता लगाने कर सकते हैं?


4

सामान्य प्रोग्रामिंग समुदाय में इस वाक्यांश के बारे में बहुत हतोत्साहित किया जाता है, लेकिन मुझे लगता है कि हम सभी जानते हैं कि हम में से कई लोगों को पहिया को फिर से स्थापित करने और इसे थोड़ा बेहतर, तेज और कूलर बनाने का तरीका खोजने से ज्यादा कुछ भी नहीं पसंद है।

नई प्रौद्योगिकियां हर समय सामने आ रही हैं जिन्हें लोगों को पहिया को फिर से मजबूत करने की आवश्यकता है। OpenCL और अन्य GPU कंप्यूटिंग भाषा एक अच्छा उदाहरण हैं।

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

एक बार जब आप रोलिंग करने के लिए कुछ पहियों का आविष्कार कर लेते हैं, तो आप अपने सामान को एक मजबूत बोनस के रूप में अच्छी तरह से जानते हैं!

इसके अलावा यह अच्छा मज़ा लानत है।


1

और ऐसे लोग हैं जो दावा करते हैं कि वे अधिक उत्पादक हैं क्योंकि वे पहिया का फिर से आविष्कार करते हैं।

प्वाइंट इन केस: एस्किल स्टाइनबर्ग, वर्ल्ड ऑफ लव के निर्माता (उत्कृष्ट वीडियो जहां वह अपने खेल, अपने इंजन और भयानक उपकरण और उसके दर्शन के बारे में बात करते हैं : http://vimeo.com/18423305 )


1

यदि यह आपकी पहली बार है, यहां तक ​​कि यह सिर्फ सीखने के लिए है, तो किसी तरह के इंजन का उपयोग करना अभी भी बेहतर है क्योंकि आप सीखेंगे कि इंजन आपके लिए क्या प्रदान कर सकता है।

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


0

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

मुझे लगता है, सीखने के लिए स्क्रैच से सामान करना, मौजूदा इंजनों के पीछे काम के लिए एक अच्छा एहसास पैदा करेगा और जरूरत पड़ने पर एक का चयन करने की क्षमता में सुधार करेगा।

मौज-मस्ती के लिए और सीखने के लिए, आप जो भी करते हैं, उसे पूरा करें। अगर मुझे स्क्रैच से कंटेंट पाइपलाइन क्लासेस लिखना था, तो फाइल सिस्टम और एसेट लोडर के सभी कष्टप्रद विवरण और किनारे के मामलों को संभालना, मैं पागल हो जाऊंगा - जब तक कि मैंने सीखा है कि यह कैसे करना है, के लिए एक बहुत अच्छी समझ है मैं इसे करने से बचता हूं अगर किसी ने पहले से ही इसे अच्छी तरह से किया है (हालांकि सच है, बहुत सारे ढांचे और इंजन "अच्छे" के अपने विचार में फिट नहीं होंगे, जो कुछ फिर से लिखने का कारण होगा)। अगर मुझे नहीं पता कि यह कैसे करना है, तो मैं वास्तव में इसे कम से कम एक बार पूरा करने के लिए पसंद कर रहा हूं, बस जो कुछ भी है उसके बारीक विवरण को समझने के लिए - जैसे कि रे डे ने पहले ही कहा था।


0

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

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