क्या खेल उद्योग खेल / प्रतिपादन के दृश्य भागों के लिए स्वचालित परीक्षण का उपयोग करता है? कैसे?


10

एक खेल के कुछ हिस्सों को स्वचालित तरीके से परीक्षण करना आसान है (तर्क, गणित, इनपुट हैंडलिंग); लेकिन वहाँ भी एक बहुत कुछ है कि विशुद्ध रूप से दृश्य है और आसानी से परीक्षण करने योग्य नहीं है।

मुझे आश्चर्य होगा कि अगर खेल उद्योग ने मैनुअल परीक्षण के लिए यह सब छोड़ दिया; इसमें पर्याप्त धन है कि मुझे लगता है कि खेल के कम से कम कुछ दृश्य पहलू का परीक्षण करने में सक्षम होने के प्रयास किए गए हैं।

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

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


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

@ SJuan76 मुझे लगता है कि यदि आप एक इंजन के ऊपर निर्माण कर रहे हैं, तो सवाल इंजन के परीक्षण पर लागू होता है
डैनी टुप्पेनी

क्या यह प्रश्न उस दायरे से कुछ व्यापक नहीं है, जिसकी नकल के रूप में चिह्नित किया गया था? ओपी ने C ++ या OpenGL का उल्लेख नहीं किया। खेल उद्योग इससे बड़ा है।
toniedzwiedz

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

2
मैंने इसे फिर से खोलने की कोशिश की क्योंकि ओपन लक्ष्य ग्राफिक्स के स्वचालित परीक्षण में रणनीतियों के बारे में विशेष रूप से अधिक था। यह मेरी ख़ासियत नहीं है, लेकिन मुझे उन लोगों की प्रतिक्रिया पर भरोसा है जो खेल उद्योग को अच्छी तरह से जानते हैं इसलिए मैं इसे एक और मौका देना चाहता हूं। समान प्रश्न के संदर्भ में लिए यहाँ देखें: programmers.stackexchange.com/questions/150688/...
maple_shaft

जवाबों:


1

कोई भी कंपनी अलग-अलग तरीकों से करेगी, यहां तक ​​कि अलग-अलग खेलों का अलग-अलग परीक्षण किया जाएगा।

  • हो सकता है कि ग्राफिक्स के बारे में जानकारी की कमी है क्योंकि प्रतिपादन वास्तव में काफी "दोहरावदार" है (मैं एक बेहतर शब्द, खेद नहीं सोच सकता) और एक विशिष्ट जटिल दृश्य में पर्याप्त आदिम संयोजन होंगे इसलिए अधिकांश व्यक्ति आमतौर पर आसानी से अधिकांश ग्लिट्स देख सकते हैं ( कम उपयोग किए जाने वाले शेड्स के अपवाद के साथ, लेकिन एक तनाव-शेडर विशेष स्तर / डेमो का उपयोग किया जा सकता है)। याद रखें कि मनुष्य हजारों वर्षों से शिकारी थे :) इसलिए शायद हम ग्लिच देखने के लिए इंजीनियर हैं।
  • अधिकांश खेलों में मौजूद आंदोलन की स्वतंत्रता और एक विशिष्ट खेल पर अन्य तत्वों के यादृच्छिककरण जो इसे अधिक "यथार्थवादी" महसूस करते हैं, आमतौर पर शुद्ध स्वचालित परीक्षण लागू करने के लिए एक दुःस्वप्न हैं: वास्तव में एक मानव परीक्षक अधिक तेज़ी से और अधिक मिल जाएगा किसी भी स्वचालित परीक्षण की तुलना में त्रुटियां। जब भी कोई परीक्षक खेल रहा हो, तो आप रिकॉर्ड समय, आंकड़े और स्थिति / कोण / अन्य चर के लिए एक तर्क को कोड कर सकते हैं ... इसलिए बिना-स्वचालित परीक्षणों के भी आपके पास स्वचालित-परीक्षण जैसी प्रतिक्रिया होगी। यह आमतौर पर किसी भी बीटा टेस्टर रिकॉर्ड किए गए सत्र की प्लेबैक बनाने में सक्षम होने के लिए उपयोगी है (और आमतौर पर अंतिम गेम के लिए भी एक अच्छी सुविधा है)।
  • आंकड़ों को प्रस्तुत करने के बारे में, उदाहरण के लिए आप प्राप्त कर सकते हैं: ड्रा-कॉल काउंट आँकड़े प्रत्येक में से एक के लिए (जैसा कि आप कॉल करेंगे, यह कुछ काउंटरों को बनाए रखने के लिए पर्याप्त है), अपलोड काउंट्स (वही, जब आप नियंत्रित करेंगे gpu बफ़र अपडेट किए जाते हैं), टाइमिंग (न केवल एफपीएस, प्रत्येक कॉल के बीच के अंतराल भी), आदि यदि आवश्यक हो (लेकिन मेरा मानना ​​है कि किसी विशिष्ट त्रुटि के शिकार के अलावा पुनर्संयोजित नहीं किया गया है) तो आप ग्राफिक्स कार्ड से आंकड़े प्राप्त कर सकते हैं (उदाहरण के लिए, आप रोना दर का उपयोग करके और दूसरों को भरण दर प्राप्त कर सकते हैं)।
  • अंत में, बीटा टेस्टर का उपयोग करने का अन्य कारण यह है कि अलग-अलग ग्राफिक कार्ड में शायद अलग-अलग व्यवहार होंगे ... आपको परीक्षण मशीनों ओओओ का एक खेत होने की आवश्यकता हो सकती है। प्यारे मानव बीटा परीक्षक सभी गड़बड़ कर देंगे।

आशा है कि यह मदद करता है!

अस्वीकरण: मैं एक विश्वासघाती नहीं हूं, मैं एक डेवलपर XDDD हूं।


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