यह कई साल हो गए हैं जब मैंने gamedev किया था, लेकिन अच्छे उत्तर के शीर्ष पर, कुछ चीजें हैं जो मैं जोड़ना चाहता हूं और विस्तार से।
पहले से ही उल्लेख किया गया है कि आउटपुट केवल "एफपीएस-क्रिटिकल" बाधाओं और कम्प्यूटेशनल / मेमोरी बजट के खिलाफ दृश्य और श्रवण है। शुद्धता के विचार धुंधले हो जाते हैं जब प्रश्न अधिक होते हैं, "क्या यह अच्छा दिखता है? क्या यह बिना किसी स्टेटर के आसानी से चलता है? क्या यह बहुत अच्छा लगता है?" जबकि डेवलपर्स ट्विकिंग और ट्यूनिंग कर रहे हैं और अंदाजा लगा रहे हैं, जबकि डिजाइनर / देव सहयोग चीजों को देखने और हर तेजी से पुनरावृत्ति के साथ थोड़ा अलग लग रहे हैं।
एक और यह है कि परीक्षक भयानक हो सकते हैं! मैंने कभी भी किसी अन्य डोमेन में परीक्षकों का अधिक समर्पित समूह नहीं पाया है, क्योंकि वे चाहते हैंसॉफ्टवेयर का परीक्षण करने के लिए। वे मज़े कर रहे हैं। वे आदी हैं और अपने खेल के हर नुक्कड़ पर खोज करते हुए कंप्यूटर के बगल में सोते हैं। यह बहुत आसान हो जाता है यहां तक कि अस्पष्ट glitches की खोज करना जब लोग वास्तव में सॉफ्टवेयर के हर कोने का अच्छी तरह से परीक्षण कर रहे हैं, जबकि व्यावहारिक रूप से इसके आदी हैं। मेरे वर्तमान उद्योग में परीक्षकों के लिए काम करना थोड़ा मुश्किल है क्योंकि उनमें से कई पेशेवर अपनी आजीविका को सॉफ्टवेयर में बांध रहे हैं, और इसलिए वे अपना काम पूरा करने के लिए मुट्ठी भर सुविधाओं पर भरोसा करते हैं और जरूरी नहीं कि वे थकने में रुचि रखते हों। हर समय हर नुक्कड़ और झाँकी। स्वाभाविक रूप से जब हम मानव परीक्षकों पर अधिक भरोसा नहीं कर सकते, तो हमें और अधिक स्वचालित परीक्षण की आवश्यकता है।
फिर भी एक और बात यह है कि एक गेम के लिए कोडबेस को आमतौर पर बनाए नहीं रखा जाता है और संशोधित किया जाता है और वर्षों और वर्षों तक बढ़ाया जाता है। यह सुपर मारियो के डेवलपर्स की तरह नहीं है, जिन्होंने मूल रूप से 6502 विधानसभा में इसे विकसित किया था, खेल को भेजे जाने के बाद लंबे समय तक उस मूल कोड के समान कुछ भी बनाए रखना था। Doom 3 शायद Doom 1 से कोड (या नज़दीकी) की शून्य लाइनों का उपयोग करता है। यदि कोई निरंतर मताधिकार है, तो नए गेम "नवीनीकरण" की तुलना में "सीक्वल" अधिक पसंद करते हैं। अधिकांश गेम बस जहाज करते हैं और शायद कुछ पैच, डीएलसी जारी करते हैं, और फिर कोड किया जाता है। यह मेरे VFX उद्योग से एक बड़ा विपरीत है जहां मैंने Amiga दिनों में कोड डेटिंग को बनाए रखने पर काम किया है जिसे दशकों तक पोर्ट किया गया था और बनाए रखा गया था। खेल आम तौर पर डॉन '
गेम कोडबेस की इस अल्पकालिक प्रकृति के कारणों में से एक यह है कि वे हार्डवेयर से बंधे हैं। जब उनकी अत्याधुनिक प्रकृति और एफपीएस-महत्वपूर्ण आवश्यकताओं के साथ संयुक्त होते हैं, तो उन्हें अक्सर एक तरह से विकसित नहीं किया जा सकता है जो कि हार्डवेयर विवरणों को बंद करता है, यहां तक कि करीब भी नहीं। वे अक्सर हार्डवेयर की लक्षित पीढ़ी के लिए बहुत विशेष रूप से लिखे जाते हैं, और आमतौर पर यह बहुत पहले नहीं होता है कि PS3 एक PS4 द्वारा बदल दिया जाए जो फिर अप्रचलित हो जाता है और एक PS5 द्वारा प्रतिस्थापित किया जाता है, और इसके बाद, और सभी बहुत तेजी से। हार्डवेयर क्षमताएं खेल के डिजाइन और विकास में ऐसी महत्वपूर्ण भूमिका निभाती हैं कि आमतौर पर PSX के लिए PSX के लिए लिखे गए समान कोड को बनाए रखने की कोशिश नहीं की जाती है, उदाहरण के लिए, अधिकांश गेम फ्रेंचाइजी जो पीढ़ियों तक चलती हैं, वे अभी भी अपने अगले-जीन इंजन लिखते हैं नए हार्डवेयर के लिए बड़े पैमाने पर ग्राउंड-अप से।
अल्पकालिक कोडबेस के साथ सीमित रखरखाव समय (यानी, सीमित समय जिसमें कोड को संशोधित करना पड़ता है) आता है। कोड को बदलने के लिए सीमित समय के साथ, जो इंजन के दायरे के साथ वर्षों तक नहीं बढ़ता है और प्रत्येक उन्नयन के साथ बड़ा और बड़ा होता जा रहा है, और इस तथ्य के साथ संयुक्त है कि खेल कहीं भी मिशन-क्रिटिकल के करीब नहीं हैं, ऐसा बिल्कुल नहीं है सबसे अधिक संपूर्ण इकाई और एकीकरण परीक्षण को लागू करने की महत्वपूर्ण आवश्यकता है। भविष्य में होने वाले परिवर्तनों की अखंडता को सुनिश्चित करने के लिए ऐसा करने का कोई लाभ नहीं है यदि भविष्य में परिवर्तन नहीं होने जा रहे हैं, और इकाई परीक्षण और विरासत कोडबैस का रीफैक्टरिंग पहलू स्वाभाविक रूप से अप्रासंगिक है यदि पहले स्थान पर कोई "विरासत" नहीं है।
एक और छोटा जो हमेशा प्रासंगिक नहीं होता है वह यह है कि कोई भी गेम बिना किसी डेस्कटॉप पोर्ट के केवल एक बहुत ही संकीर्ण हार्डवेयर को लक्षित कर सकता है। उन मामलों में इन संदर्भों में अप्रत्याशित glitches का एक बड़ा स्रोत, जो उपयोगकर्ताओं को मौलिक रूप से अलग हार्डवेयर और ड्राइवरों के साथ सॉफ़्टवेयर चला रहा है, को समाप्त कर दिया जाता है।
उस ने कहा, उच्चतम / मोटे स्तर पर एकीकरण परीक्षण तुरंत अधिक उपयोगी होता है। उदाहरण के लिए, कई गेम रिकॉर्ड करने के तरीके का उपयोग कर सकते हैं कि "रिप्ले" के लिए समय के साथ गेम स्टेट कैसे बदल रहा है। इस तरह के रीप्ले फीचर्स यह सुनिश्चित कर सकते हैं कि खेल नियतात्मक है और इसका उपयोग किसी परीक्षण उपकरण के रूप में भी किया जा सकता है जो किसी अन्य व्यक्ति द्वारा पहले रिकॉर्ड किए गए गेम सत्र को फिर से खेलना है।
मैंने छोटे स्टूडियो में काम करने वाले gamedevs का भी सामना किया है, जिन्होंने अपने गेम के लिए बॉट्स लिखने जैसे काम किए थे और बॉट्स ने अपना गेम अधिकतम गति से खेला था और उस सिमुलेशन को चलाया था, जो मूल रूप से एक या दो दिन बाद एक अस्पष्ट दुर्घटना का सामना कर रहा था, फिर उसे ठीक किया। फिर से सिमुलेशन चलाया, और अंत तक इसे हफ्तों तक चलाने के बाद भी अधिक शो-स्टॉप क्रैश नहीं हुए। तो दिलचस्प तरह के व्यावहारिक दृष्टिकोण हैं, जो मैंने अपने सॉफ्टवेयर का परीक्षण करने के लिए gamedevs से देखा है, लेकिन अक्सर ऐसे तरीके जो एकीकरण परीक्षण के मोटे स्तर से मिलते जुलते हैं और चीजों को बहुत बारीकी से अनुकरण करते हैं कि खिलाड़ी वास्तव में खेल के साथ कैसे तालमेल बिठाते हैं।
अंत में ये बड़े एएए गेम इंजन पूरी तरह से जानवर के समान होने लगे हैं: लंबे समय तक जीवित, सफलतापूर्वक हार्डवेयर को थोड़ा बेहतर, बड़े कोडबेस और लंबे समय तक रखरखाव स्पैन के साथ, जबकि उनके स्तर के संपादक पूर्ण विकसित विकास वातावरण से मेल खाने लगे हैं। मुझे लगता है कि बड़े इंजन शायद अधिक गहन परीक्षण प्रक्रिया के लिए कॉल करेंगे, खासकर अगर समय उनके कोड बनाए रखा है काफी विस्तार होता है। अभी भी बहुत सारे खेल स्टूडियो विशाल एएए गेम इंजन नहीं लिखते हैं: वे या तो उन्हें लाइसेंस देते हैं या एक छोटे मालिकाना इंजन विकसित करते हैं जो काफी कम दायरे में होता है और वर्षों तक बनाए नहीं रखा जाता है।