खेल परियोजना के सब कुछ भंडारण के लिए स्रोत नियंत्रण?


10

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



1
स्रोत कोड वह सब कुछ है जो आप स्रोत कोड से उत्पन्न नहीं कर सकते। संपत्ति, बनावट, कला और प्रलेखन भी उस परिभाषा के अंतर्गत स्रोत कोड है।
क्रिस्टोफर हैमरस्ट्रॉम

जवाबों:


12

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

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

मैं भंडार में सब कुछ संग्रहीत करता हूं। जब मुझे अपना नया लैपटॉप मिला, तो मैं अपनी रिपॉजिटरी की जांच करने और अपने गेम का निर्माण करने में सक्षम था, बिना किसी भी संपत्ति को कहीं और से कॉपी करने की आवश्यकता के बिना। इसका मतलब है कि मैं अपनी रिपॉजिटरी में तीसरे पक्ष के पुस्तकालयों, परिसंपत्तियों और स्रोत नियंत्रण को भी संग्रहीत करता हूं।


7

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

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

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


अच्छी बात है, लेकिन आप सभी इतिहास stackoverflow.com/questions/11497457/… पर
अली

1
@ अलि: उथले क्लोन समस्या को पर्याप्त रूप से हल नहीं करते हैं (वे कई कमांड को अक्षम करते हैं, अधिकांश जीयूआई के लिए डिफ़ॉल्ट नहीं हैं, आदि) और सीआई सर्वर और पसंद के अलावा अधिकांश चीजों के लिए अनिवार्य रूप से बेकार हैं। Git-lfs जैसे नए git समाधान, git में सामग्री-भारी टीम प्राप्त करने के प्रयास में मेरे द्वारा बताई गई समस्याओं को दूर करने के लिए उत्पन्न हुए हैं।
शॉन मिडिलडाइच

git lfs "बड़ी बाइनरी फाइल" समस्या को बहुत अच्छी तरह से हल करता है।
नेपोक्सक्स

3

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

वास्तविक दुनिया का उदाहरण आप देख सकते हैं यह ब्लेंडर (बिग बक बनी, डूरियन, आदि) के साथ बनाई गई खुली फिल्में परियोजनाएं हैं।

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

कुछ उपकरण जैसे GitHub भी अच्छी छवि तुलना टूल और एक जैसे प्रदान करते हैं, जो कि बाइनरी ब्लॉब की तुलना में बहुत बेहतर है।

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

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