क्या टेस्ट ड्रिवेन डेवलपमेंट खेल के विकास में व्यवहार्य है?


23

स्करम प्रमाणित होने के नाते, मैं एक प्रणाली विकसित करते समय फुर्तीली कार्यप्रणाली के लिए प्रवृत्त होता हूं, और यहां तक ​​कि अपने दिन के काम का प्रबंधन करने के लिए स्क्रैम फ्रेमवर्क से कुछ कैनवस का उपयोग करता हूं।

इसके अलावा, मैं सोच रहा हूं कि क्या खेल विकास में TDD एक विकल्प है, अगर यह व्यवहार्य है?

अगर मैं इस GD प्रश्न पर विश्वास करता हूं, तो TDD खेल के विकास में ज्यादा उपयोग नहीं है।
क्यों MVC और TDD खेल वास्तुकला में अधिक कार्यरत नहीं हैं?

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

इसके अलावा, स्क्रम नियमों का पालन करना आपके काम की नियत तारीखों को पूरा करने को प्रोत्साहित करता है, जबकि स्क्रम में हर एक कार्रवाई समय-बॉक्सिंग है! इसलिए, मैं सहमत हूं जब ऊपर दिए गए प्रश्न में वे कहते हैं कि एक प्रणाली बनाने की कोशिश करना बंद करो, और खेल लिखना शुरू करें। यह काफी है कि स्क्रम क्या कहता है, सही प्रणाली का निर्माण न करने की कोशिश करें, पहले: इसे स्प्रिंट अंत तक काम करें। फिर, जरूरत पड़ने पर दूसरे स्प्रिंट में काम करते हुए कोड को रिफलेक्टर करें!

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

तो मेरा प्रश्न निम्नलिखित है:

TDD खेल के विकास में किसी भी तरह व्यवहार्य है?


इस प्रश्न से क्या चर्चा है जो आपके द्वारा जुड़े प्रश्न से परे है?

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

@Will TDD == टॉप डाउन डिज़ाइन या टेस्ट ड्रिवेन डिज़ाइन? मैं टॉप डाउन सोच रहा था और लॉन्ग टर्म में मैनेजमैबिलिटी का जवाब देने जा रहा था, लेकिन फिर दूसरे जवाब में टीडीडी की व्याख्या इस तरह से की गई जैसे मैं नहीं था ...
जेम्स

@ नाम: टेस्ट संचालित विकास।
अराजकता

@ नाम: भ्रम के लिए क्षमा करें! मुझे परिचित होने के दूसरे अर्थ के बारे में नहीं पता था, क्योंकि मेरे मन में जो कुछ था वह स्क्रेम के साथ एजाइल सॉफ्टवेयर डेवलपमेंट था।
विल मार्कॉइलर 26:11

जवाबों:


11

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

बहुत सारी नकली वस्तुओं का उपयोग करने की अपेक्षा करें। क्योंकि बहुत सारे सिस्टम एक साथ कैसे बंधे हैं, इसके अलग-अलग घटकों का परीक्षण करना कठिन है।

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

हालांकि, बहुत सारी चीजें हैं जो शब्द के पारंपरिक अर्थों में आवश्यक रूप से इकाई परीक्षण नहीं हैं, लेकिन यह विशिष्ट विशेषताओं के लिए "परीक्षण" के रूप में मौजूद है। एआई नेविगेशन के लिए परीक्षण स्तर जैसी चीजें बहुत आम हैं, लेकिन जरूरी नहीं कि स्वचालित चीजें आसान हों।

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


9
ये स्वचालित परीक्षण की उपस्थिति के लिए महान प्रस्ताव हैं, लेकिन परीक्षण-संचालित विकास के लिए बिल्कुल नहीं।

1
दिलचस्प राय, तेतरद! नमक के अपने अनाज के लिए धन्यवाद। आप पूछते हैं कि दृश्य एनीमेशन का परीक्षण कैसे करें? 3 डी सिस्टम के लिए कहना मुश्किल है, क्योंकि मैंने अभी तक एक भी गेम नहीं लिखा है, शायद कुछ छोटे गेम विकसित करने के बाद! इसके अलावा, 2 डी में, मैंने अक्सर स्क्रीन पर छवि को प्रस्तुत करने के लिए मैट्रिक्स, और मैट्रिक्स पार्सर द्वारा प्रस्तुत वस्तुओं को देखा है। इसलिए, यह सुनिश्चित करने के बाद कि कुछ दिशात्मक कुंजी दबाए जाने के बाद, परिणामी मैट्रिक्स में सही जगह पर मिली सही जानकारी एक शुरुआत हो सकती है, मुझे लगता है। मैं अभी किसी खेल के दृश्य घटकों के बारे में पर्याप्त नहीं जानता, और मुझे यकीन है कि इस वर्ष होगा! =)
1

मैं यह कहने के लिए कुछ कोडिंग के बाद वापस आ गया हूं कि मैंने इस सप्ताह एक सवाल का जवाब दिया है (जीडी पर मेरा पहला! =)) जिसे ओओपी अवधारणाओं का ज्ञान आवश्यक है। ओपी पर एक साँप जाना चाहते थे Keys.Down, Keys.Leftआदि खेल जानता है कि जहां उपयोगकर्ता साँप जाना चाहता है, और साँप पर पहुंचना, जहां खेल के लिए यह बताता है, हालांकि यह है कि केवल साँप कि कैसे जानता है कि कहने के लिए विभिन्न दिशाओं में जाने के लिए, इसलिए खेल में इसकी स्थिति भी। यह बताने के बाद, IMHO, Snakeकक्षा को एक परीक्षण योग्य बनाता है ! (जारी रखा जाएगा ...)
मार्कऑलर

न केवल यह परीक्षण योग्य है, बल्कि यह अब टीडीडी के लिए एक अच्छा उम्मीदवार है। लेट्स का कहना है कि इस 2D गेम में X और Y दोनों एक्सिस Vector2.Zeroकी गति के साथ साँप को स्थिति में शुरू किया गया है 10.0f। पहला सवाल है: क्या यह अपनी प्रारंभिक स्थिति पर स्थित है और इसका परीक्षण कैसे किया जाए? फिर, आपको लगता है कि Positionसंपत्ति सार्वजनिक रूप से उजागर हो जाएगी। दूसरा: इसे कैसे स्थानांतरित किया जाए? आंदोलन के तरीके अच्छे होने चाहिए, इसलिए आप प्रत्येक दिशा विधि के लिए एक परीक्षण लिखें MoveDown, MoveLeftऔर इसी तरह। अब, अपनी पद्धति की घोषणा पर जाएं और देखें कि क्या परीक्षण शिकायत करता है। फिर, साँप की स्थिति को पुनः प्राप्त करें
विल मार्कॉइलर 15

एक MoveDownविधि कॉल के बाद ! चूंकि आप जानते हैं कि Positionसंपत्ति का पूरी तरह से परीक्षण किया गया है, यह एक ऐसा सदस्य है जिस पर आप भरोसा कर सकते हैं! आप यहां निरंतरता का अनुमान लगा सकते हैं! ;; यह कहना है कि दृश्य घटकों का परीक्षण निश्चित रूप से नहीं किया जा सकता है, लेकिन साँप को सांप की तरह दिखना चाहिए, यह सब इस बात पर निर्भर करता है कि आप खेल में किस तरह का साँप चाहते हैं। साँप का चित्रण करने वाले कलाकार को साँप के अपने ड्राइंग के साथ पर्याप्त संतुष्टि साबित करनी चाहिए, जिसका परीक्षण निश्चित रूप से टीडीडी के माध्यम से नहीं किया जाना चाहिए! लेकिन अन्य वस्तुओं के सापेक्ष इसकी स्थिति और इस सांप का प्रतिनिधित्व करने वाला वर्ग भी हो सकता है। वास्तव में, TDD
मार्क मार्किलर

11

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


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

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

2
@Will मार्कोइलर, मैं अत्यधिक, अत्यधिक, असहमत हूं कि खेल का मजा कहानी में आता है। खेल में सभी मज़ा गेमप्ले के लिए नीचे आता है, कहानी सिर्फ एक बोनस है।
अटैकिंगहोबो

1
@Will: नहीं, वह कह रहा है कि एक उपयोगकर्ता को एक गेम से प्राप्त होने वाले आनंद को स्वचालित परीक्षण के माध्यम से निर्धारित नहीं किया जा सकता है, और उस गेम में बड़ी मात्रा में चीजें हैं जो केवल गेम को उपभोक्ता के हाथों में भेजकर परीक्षण किया जा सकता है।

1
@DeadMG: यह किसी की तुलना में अधिक सच है, लेकिन मेरी बात (जरूरी नहीं कि AttackingHobo की) में यह तथ्य शामिल हो कि विकास की प्रक्रिया में डिजाइनरों और उत्पादकों और डेवलपर्स और परीक्षकों द्वारा परीक्षण को शामिल करना है, जिसे एक इकाई में निर्धारित नहीं किया जा सकता है। परीक्षण, अनुभव और महसूस की गुणवत्ता और शैली और सौंदर्य प्रभाव के साथ करना है जो खेल बनाता है। लोगों को यह बताने के लिए कि वे TDD कर रहे हैं जब कि विकास का इतना महत्वपूर्ण हिस्सा मूल रूप से सिर्फ उनसे झूठ बोलना है।
अराजक

6

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

अगर मैं इस GD प्रश्न पर विश्वास करता हूं, तो TDD खेल के विकास में ज्यादा उपयोग नहीं है।

वह सही है। मुझे नहीं लगता कि मैंने कभी इसके बारे में सुना है कि खेल उद्योग में इसका इस्तेमाल किया जाता है। (लेकिन तब मैंने कभी भी खेल उद्योग के बाहर इसका इस्तेमाल नहीं सुना - केवल व्यक्तियों द्वारा।)

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

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

इसके अलावा, स्क्रम नियमों का पालन करना आपके काम की नियत तारीखों को पूरा करने को प्रोत्साहित करता है, जबकि स्क्रम में हर एक कार्रवाई समय-बॉक्सिंग है!

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

मुझे लगता है कि टीडीडी बग-मुक्त कोड लिखना अच्छा होगा, हालांकि आप "सही" सिस्टम / गेम लिखना नहीं चाहते हैं।

यदि टीडीडी अन्य तरीकों की तुलना में बेहतर कोड लिखने के लिए सिद्ध होता है, तो हाँ।

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

TDD खेल के विकास में किसी भी तरह व्यवहार्य है?

व्यवहार्य? बेशक। फायदेमंद? यह साबित होना बाकी है।


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

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

1
FYI करें, नोएल ललोपिस अपने इंडी गेम्स के लिए TDD का उपयोग करते हैं, और उनकी पुरानी कंपनी हाई मून स्टूडियो ने इसका बड़े पैमाने पर उपयोग किया। एक प्रशस्ति पत्र नहीं मिला, क्षमा करें।
दस

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

(जारी रखें ...) मैंने इस हफ्ते जीडी पर कक्षाओं के बारे में अपने पहले प्रश्न का उत्तर दिया है। ओपी यह जानना चाहता था कि दिशात्मक कुंजी पर उसके स्प्राइट को कैसे स्थानांतरित किया जाए। OOP अवधारणाओं के साथ सहज होने के नाते, मुझे पता चला कि मुझे XNA का उपयोग करके अपना पहला गेम विकसित करने के लिए शायद कक्षाओं का उपयोग करना चाहिए। उस ने कहा, मेरी Spacecraftकक्षा विधियों और गुणों के साथ पूरी तरह से परीक्षण योग्य वर्ग बन जाती है। यह सामान की तरह है जो पूरी तरह से, IMHO, TDD का उपयोग करके पूरी तरह से परीक्षण किया जा सकता है। मान लीजिए कि आपको एक अंतरिक्ष यान की आवश्यकता है, तो आप एक समय में एक परीक्षण को पूरा करने के लिए आपको जो आवश्यक है उसके लिए परीक्षण लिखते हैं।
विल मार्कॉइलर

4

मेरी खराब अंग्रेजी के लिए खेद है और मेरे पक्षपाती दृष्टिकोण के लिए खेद है: मैं एक गेम डिजाइनर नहीं हूं बल्कि एक कोडर हूं।

मुझे लगता है कि इस चर्चा में कुछ गलतफहमी है। मैं TDD के बारे में अधिक सामान्य रूप में बात करूँगा, जिसे तथाकथित BDD कहा जाता है। व्यवहार संचालित विकास परियोजना का परीक्षण करने का एक तरीका नहीं है (परीक्षण कुछ साइड इफेक्ट की तरह हैं)। BDD डिजाइन का एक तरीका है , के दौरान refactor और सॉफ्टवेयर डिजाइन करने के लिए एक तरह से सभी उत्पादन ( "में रखें गुणवत्ता" "परीक्षण, परीक्षण अक्सर जल्दी" KISS, जैसा कि कुछ मोटो देखें) और एक अकेले चरण में नहीं। BDD कुछ शास्त्रीय सॉफ्टवेयर प्रक्रिया के विपरीत है जैसे सॉफ्टवेयर बनाने के लिए झरना प्रक्रिया या कुछ अन्य पुनरावृत्ति पद्धति।

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

अंतिम विचार यह है कि, यह है कि, न केवल गेम डिजाइन बल्कि संपूर्ण लेखन कोड एक कला है।


4

यहाँ एक केस स्टडी है जो किसी को लगता है कि TDD और gamedev का मिश्रण बहुत अच्छा है:

http://powertwenty.com/kpd/downloads/TestDrivenDevelopmentInPython.pdf

माना जाता है कि, यह Pygame में एक छोटा प्रोजेक्ट है, लेकिन यह इस बात का विचार देता है कि ग्राफ़िकल गेम के साथ किन भागों का परीक्षण किया जा सकता है और कौन से नहीं। मुझे आश्चर्य था कि इस परिदृश्य में टीडीडी के साथ कितना किया जा सकता है।


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

3

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

खेलों के शुरू होने पर शायद ही कभी विशिष्ट विनिर्देश होते हैं। और अगर वे करते हैं, तो वे हमेशा विकास प्रक्रिया के दौरान बदलते और विकसित होते हैं।

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


क्या आपको नहीं लगता कि गेम का विश्लेषण करते समय फन फैक्टर पर विचार किया जाना चाहिए, कार्यात्मक विश्लेषण या जैसा? आप सुविधाओं का एक सेट तैयार कर सकते हैं जो एक साथ खेल को खेलने के लिए मज़ेदार बना देंगे, और यह सुविधाएँ तब टेस्टेबल हैं! मैं केवल विषय और उन तर्कों के बारे में गहराई से जाने के लिए अलग-अलग राय रखने की कोशिश कर रहा हूं, जो आप के साथ आते हैं। आपके योगदान के लिए धन्यवाद! =)
मार्कॉइलर

3
छोटी-छोटी बातों को तोड़-मरोड़ कर देखने पर बहुत विकास होता है और देखते हैं कि उन्हें खेलने में कितना मज़ा आता है। जब तक वे 100% पत्थर में सेट नहीं हो जाते आप उन चीजों का परीक्षण नहीं कर सकते। और एक प्रणाली का परीक्षण करने के बाद इसे टीडीडी नहीं किया जाता है, यह परीक्षण है, लेकिन विकास नहीं जो परीक्षण द्वारा संचालित है।
हल्दीगोबो

2
यदि आपको लगता है कि अधिकांश वास्तविक-विश्व परियोजनाओं में सटीक विनिर्देश हैं जब वे शुरू करते हैं, तो आपने शायद बहुत सारे वास्तविक-विश्व परियोजनाओं पर काम नहीं किया है।
ब्लूराजा - डैनी पफ्लुगुफ्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.