क्या सोर्स इंजन का पूरा C ++ सोर्स कोड उपलब्ध है?
मुझे पता है कि एसडीके एक स्रोत-आधारित गेम की खरीद के साथ उपलब्ध है , लेकिन मेरा लक्ष्य एक खुला-खट्टा गेम इंजन ढूंढना है जिसमें सीखने के उद्देश्यों के लिए इसका पूर्ण कार्यान्वयन विवरण शामिल है।
क्या सोर्स इंजन का पूरा C ++ सोर्स कोड उपलब्ध है?
मुझे पता है कि एसडीके एक स्रोत-आधारित गेम की खरीद के साथ उपलब्ध है , लेकिन मेरा लक्ष्य एक खुला-खट्टा गेम इंजन ढूंढना है जिसमें सीखने के उद्देश्यों के लिए इसका पूर्ण कार्यान्वयन विवरण शामिल है।
जवाबों:
नहीं ऐसा नहीं है। आप वाल्व से स्रोत लाइसेंस प्राप्त कर सकते हैं, लेकिन स्रोत स्वयं ओपन-सोर्स नहीं है।
इसके अलावा, यह आम तौर पर किसी भी व्यक्ति के मार्गदर्शन के बिना सीखने की सामग्री के रूप में पूरे मौजूदा इंजन का उपयोग करने के लिए एक बहुत ही खतरनाक दृष्टिकोण है जो उस इंजन के विकास में भारी रूप से शामिल था।
अकेले स्रोत कोड आपको केवल विशेष डिजाइन निर्णयों के बारे में बताता है , न कि उन फैसलों में से अधिकांश के पीछे क्यों जो अक्सर बेहद महत्वपूर्ण दिए जाते हैं कि सॉफ्टवेयर इंजीनियरिंग में इतने सारे विकल्प आम तौर पर समान रूप से मान्य विकल्पों में से हैं। आपको यह समझने के लिए संदर्भ की आवश्यकता है कि एक विकल्प क्यों अच्छा है, और यदि आप बस कुछ इंजन के स्रोत को देखते हैं और उनकी तकनीकों और मुहावरों को तोता है, तो आप शायद ही कुछ उपयोगी सीख रहे हैं।
इसके अलावा, सिर्फ इसलिए कि कोड भेज दिया गया खेल उस कोड को अच्छा नहीं बनाता है (विशेष रूप से स्रोत उदाहरण के लिए C ++ और OO के संबंध में बहुत अधिक आउटमोडेड डिज़ाइन निर्णयों से ग्रस्त है )। यहां तक कि सबसे सफल एएए खिताब के इंजन कोडबेस में बहुत सी डरावनी कहानियां हैं। और एक प्रभावशाली नवजात के रूप में, आप बुरे से अच्छे कोड को कैसे बता पाएंगे?
एक सीखने के संसाधन के रूप में स्रोत कोड का उपयोग करके बहुत सावधान रहें, और जितना संभव हो उतना पूरक जानकारी के साथ इसे जोड़ना सुनिश्चित करें।
tl; dr: सीखें कि इंजन कैसे बनाया जाता है, यह गेम मेकिंग के लिए अक्सर उतना ही उपयोगी है जितना कि अपने कंप्यूटर और ऑपरेटिंग सिस्टम को स्क्रैच से बनाना सीखना। यदि आप क्षेत्र में विशेषज्ञ नहीं हैं, तो आप शायद एक इंजन नहीं बनाना चाहते हैं। इसके बजाय एक गेम बनाएं, इंजन वाला हिस्सा पहले से मौजूद है। बाद में यदि आपके खेल डिजाइन के लिए मानदंडों को पूरा करने के लिए आपके पास कोई भी इंजन नहीं है, तो आप उस विशिष्ट पहलू और नरक के निर्माण पर ध्यान केंद्रित कर सकते हैं जो दूसरों के लिए उपयोगी हो सकता है और साथ ही साथ आप कुछ नया बना रहे हैं और कम मजबूत संस्करण का पुनर्वसन नहीं कर रहे हैं। कुछ ऐसा जो लोगों ने पहले ही हजारों घंटे में निवेश किया हो।
लंबा संस्करण: यदि आप वास्तव में इंजन लिखना सीखना चाहते हैं, तो किसी मौजूदा इंजन को न देखें। भागों के बजाय जानें (एल्गोरिदम) जो एक इंजन बनाते हैं, यह प्रतिपादन, भौतिकी या पथ खोज आदि हो सकते हैं। एक बार जब आप किसी विशिष्ट पहलू की गहरी समझ हासिल कर लेते हैं, तो आप स्रोत की जांच कर सकते हैं।
आप सामान्य रूप से स्रोत से सीधे सीखने की इच्छा नहीं करते हैं जब तक कि कोई बेहतर विकल्प न हो। यहां तक कि अनुभवी प्रोग्रामर आम तौर पर इसे सीखने के लिए एक पूरे इंजन के स्रोत को नहीं देखेंगे (यदि वे इसकी मदद कर सकते हैं), तो वे सबसे अधिक संभावना इसके एक विशिष्ट भाग का निरीक्षण करेंगे या इसका एक निश्चित भाग ट्वीक करेंगे। शुद्ध शिक्षण उद्देश्य के लिए स्रोत को देखने की कोशिश इंजन कोड के पीछे की प्रक्रिया और विचार प्रक्रिया को उजागर नहीं करेगी; यह एक निर्माण करने के लिए सीखने के क्रम में अपने अंदरूनी को देखने के प्रयास में टीआई के टुकड़ों के अलावा एक इमारत को फाड़ने की तरह होगा। हालांकि मैं जोश के जवाब से सहमत हूं, मैं इसे एक और कदम आगे ले जाऊंगा, आप कई इंद्रियों में "हाउ" भी नहीं सीखेंगे (जब तक कि आप क्षेत्र से परिचित नहीं हैं); उदाहरण के लिए, प्रोग्रामिंग टीम ने किस पद्धति का उपयोग किया था? वर्किंग कोड लागू करने के लिए उन्होंने किन सिद्धांतों पर भरोसा किया? डिबगिंग के लिए उन्होंने कौन से उपकरण और तकनीक का इस्तेमाल किया? ये सभी प्रश्न कभी-कभी कोड से अधिक महत्वपूर्ण होते हैं (सीखने के उद्देश्यों के लिए)।
यदि आप स्रोत से सीखने की इच्छा रखते हैं, तो ऐसे स्रोत की तलाश करें जो अच्छी तरह से प्रलेखित हो और जिसके चारों ओर एक मजबूत समुदाय बना हो। पढ़ना (इंजन) कोड, भले ही आपने इसे स्वयं लिखा हो, अक्सर भ्रमित होता है।