मैं यह कहकर इसकी पुष्टि करूंगा कि मैंने खेल स्रोत की एक बड़ी मात्रा नहीं देखी है, और न ही खेल के तरीके में बहुत कुछ बनाया है।
लेकिन वेब ऐप में 'एंटरप्राइज' कोडिंग प्रथाओं को नियोजित करने की कोशिश से आने से, गेम सोर्स कोड को गंभीरता से देखने पर मेरे सिर में दर्द होता है: "यह लॉजिक लॉजिक को बिजनेस लॉजिक के साथ क्या कर रहा है? इसको रिफैक्ट करने की जरूरत है ... तो क्या यह रिफ्लेक्टर, रिफलेक्टर है? "
इससे मुझे चिंता होती है क्योंकि मैं एक गेम प्रोजेक्ट शुरू करने वाला हूं, और मुझे यकीन नहीं है कि देव प्रक्रिया को टटोलने / टेड करने की कोशिश हो रही है या हमें मदद करने में कोई बाधा नहीं है, क्योंकि मुझे कई गेम उदाहरण नहीं दिखते हैं जो इसका उपयोग करते हैं या समुदाय में बेहतर वास्तुशिल्प प्रथाओं के लिए बहुत धक्का।
निम्नलिखित प्रोटोटाइप खेल पर एक महान लेख से एक उद्धरण है , हालांकि मेरे लिए यह बिल्कुल ऐसा लग रहा था कि उत्पादन गेम कोड लिखते समय कई खेल देवों का उपयोग करना प्रतीत होता है:
गलती # 4: एक प्रणाली का निर्माण, एक खेल नहीं है
... यदि आप कभी भी अपने आप को किसी ऐसी चीज पर काम करते हुए पाते हैं जो सीधे आपके आगे नहीं बढ़ रही है, तो वहीं रुक जाएं। प्रोग्रामर के रूप में, हमारे पास अपने कोड को सामान्य बनाने की कोशिश करने और इसे सुरुचिपूर्ण बनाने और हर स्थिति को संभालने में सक्षम होने की प्रवृत्ति है। हम पाते हैं कि एक खुजली बहुत मुश्किल खरोंच नहीं है, लेकिन हमें यह सीखने की जरूरत है कि कैसे। मुझे यह महसूस करने में कई साल लग गए कि यह कोड के बारे में नहीं है, यह गेम के बारे में है जिसे आप अंत में शिप करते हैं।
एक सुरुचिपूर्ण गेम घटक प्रणाली न लिखें, संपादक को पूरी तरह से छोड़ दें और कोड में राज्य को हार्डविअर करें, डेटा-चालित, स्वयं-पार्सिंग, एक्सएमएल पागलपन, और बस शापित चीज़ को कोड करने से बचें।
... जितनी जल्दी हो सके स्क्रीन पर सामान प्राप्त करें।
और कभी नहीं, कभी भी, "यदि हम कुछ अतिरिक्त समय लेते हैं और सही तरीके से करते हैं, तो तर्क का उपयोग करें, हम इसे खेल में पुन: उपयोग कर सकते हैं"। कभी।
क्या यह इसलिए है क्योंकि खेल दृष्टिगत रूप से उन्मुख होते हैं इसलिए यह समझ में आता है कि कोड को दृश्य में बहुत अधिक भारित किया जाएगा, इस प्रकार सामानों को मॉडल / नियंत्रकों से बाहर ले जाने से कोई लाभ काफी कम होता है, इसलिए परेशान क्यों होते हैं?
मैंने यह तर्क सुना है कि MVC एक प्रदर्शन ओवरहेड का परिचय देता है, लेकिन यह मुझे एक समयपूर्व अनुकूलन लगता है, और इससे पहले कि आप MVC ओवरहेड्स (जैसे रेंडर पाइपलाइन, एआई एल्गोरिदम, डेटास्ट्रक्चर) के बारे में चिंता करने से पहले और अधिक महत्वपूर्ण प्रदर्शन मुद्दों से निपटेंगे। ट्रैवर्सल, आदि)।
TDD के बारे में एक ही बात। ऐसा अक्सर नहीं होता है कि मैं गेम को टेस्ट के मामलों में नियोजित करता हूं, लेकिन शायद यह ऊपर डिजाइन मुद्दों (मिश्रित दृश्य / व्यवसाय) और तथ्य यह है कि दृश्य घटकों, या घटकों का परीक्षण करना मुश्किल है, जो संभावित परिणामों पर भरोसा करते हैं (जैसे भौतिकी सिमुलेशन के भीतर काम करते हैं) )।
शायद मैं सिर्फ गलत स्रोत कोड देख रहा हूं, लेकिन हम गेम डिजाइन में नियोजित इन 'उद्यम' प्रथाओं को अधिक क्यों नहीं देखते हैं? क्या खेल वास्तव में उनकी आवश्यकताओं में बहुत भिन्न हैं, या एक लोगों / संस्कृति का मुद्दा है (यानी खेल देवता एक अलग पृष्ठभूमि से आते हैं और इस प्रकार अलग-अलग कोडिंग की आदतें हैं)?