पारंपरिक खेल डिजाइन , के रूप में मैं इसे जानते हैं, का उपयोग करता है बहुरूपता और आभासी कार्यों अद्यतन खेल राज्यों वस्तुओं के लिए। दूसरे शब्दों में, खेल में प्रत्येक ऑब्जेक्ट पर नियमित (पूर्व: प्रति-फ्रेम) अंतराल में वर्चुअल फ़ंक्शन का एक ही सेट कहा जाता है।
हाल ही में, मुझे पता चला कि गेम ऑब्जेक्ट की स्थिति को अपडेट करने के लिए एक और इवेंट-संचालित मैसेजिंग सिस्टम उपलब्ध है। यहां, ऑब्जेक्ट आमतौर पर प्रति-फ्रेम के आधार पर अपडेट नहीं किए जाते हैं। इसके बजाय, एक अत्यधिक कुशल ईवेंट मैसेजिंग सिस्टम बनाया गया है, और गेम ऑब्जेक्ट्स वैध इवेंट संदेश प्राप्त करने के बाद ही अपडेट होते हैं।
इवेंट ड्रिवेन गेम आर्किटेक्चर का अच्छी तरह से वर्णन किया गया है: माइक मैकशाफ्ट्री द्वारा पूरा किया गया गेम कोडिंग ।
क्या मैं निम्नलिखित प्रश्नों के लिए मदद माँग सकता हूँ:
- दोनों दृष्टिकोणों के फायदे और नुकसान क्या हैं?
- एक दूसरे पर बेहतर कहां है?
- क्या ईवेंट संचालित गेम डिज़ाइन सभी क्षेत्रों में सार्वभौमिक और बेहतर है? क्या इसलिए इसे गर्भ के प्लेटफार्मों में भी उपयोग करने की सिफारिश की गई है?
- कौन सा अधिक कुशल है और जिसे विकसित करना अधिक कठिन है?
स्पष्ट करने के लिए, मेरा सवाल गेम डिज़ाइन से पूरी तरह से बहुरूपता को दूर करने के बारे में नहीं है। मैं गेम स्टेट को अपडेट करने के लिए वर्चुअल फंक्शन्स बनाम रेगुलर (प्रति-फ्रेम) कॉल्स के जरिए इवेंट डिस्क्राइब्ड मैसेजिंग के इस्तेमाल से अंतर और लाभ को समझना चाहता हूं।
उदाहरण: इस सवाल से यहां थोड़ा विवाद हुआ, इसलिए मैं आपको उदाहरण पेश करता हूं: एमवीसी के अनुसार, गेम इंजन तीन मुख्य भागों में विभाजित है:
- अनुप्रयोग परत (हार्डवेयर और OS संचार)
- खेल तर्क
- खेल देखें
एक रेसिंग गेम में, गेम व्यू स्क्रीन को जितनी जल्दी हो सके, कम से कम 30fps के रूप में प्रस्तुत करने के लिए जिम्मेदार है। गेम व्यू प्लेयर के इनपुट के लिए भी सुनता है। अब यह होता है:
- खिलाड़ी ने 80% तक ईंधन पेडल दबाया
- GameView एक संदेश "कार 2 ईंधन पेडल को 80% तक दबाया" बनाता है और इसे गेम लॉजिक में भेजता है।
- गेम लॉजिक संदेश प्राप्त करता है, मूल्यांकन करता है, नई कार की स्थिति और व्यवहार की गणना करता है और गेम व्यू के लिए निम्न संदेश बनाता है: "ड्रा कार 2 ईंधन पेडल दबाया 80%", "कार 2 ध्वनि त्वरण", "कार 2 निर्देशांक X, Y: ।। ।
- GameView संदेशों को प्राप्त करता है और तदनुसार उन्हें संसाधित करता है
update
उन पर कॉल करें)। दूसरा आप विभिन्न कारणों से संदेश के साथ कर सकते हैं।