खेलों में घटनाओं के साथ क्या भूमिका विकसित होती है?


9

अधिकांश अनुप्रयोग विकास घटनाओं के साथ विकसित होने पर आधारित है, लेकिन विकासशील खेलों की गेम-लूप शैली और (अक्सर) उच्च प्रदर्शन / थ्रूपुट की आवश्यकता को देखते हुए, घटनाओं का उपयोग करके क्या भूमिका विकसित हो रही है और व्यापार-अप क्या हैं? क्या अक्सर इसमें शामिल सिंक्रनाइज़ेशन / लॉकिंग का अधिक प्रभाव पड़ता है?

उदाहरण के लिए: - नेटवर्क [लेयर] प्राप्त डेटा के गेम-लूप को कैसे सूचित करता है? - भौतिकी प्रणाली कैसे टकरावों की सूचना देती है

मैं पूछता हूं, क्योंकि मैं एक ऐसे समय को याद कर सकता हूं जब घटनाओं के उपयोग से खेल का विकास एक सख्त नहीं-नहीं था। क्या यह बदल गया है?

जवाबों:


5

ईवेंट सिस्टम शक्तिशाली हैं, और बहुत तेज़ बनाया जा सकता है।

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

भौतिकी - टकराव कॉलबैक, सक्रिय या आराम करने वाली वस्तुएँ घटनाओं में अच्छी तरह से अनुवाद करती हैं। नेटवर्किंग - जितना संभव हो उतना एक ईवेंट होना चाहिए (वॉयस चैट ect .. अपवाद) गेम लॉजिक - स्वाभाविक रूप से एक इवेंट मॉडल के लिए खुद को उधार देता है Menus & UI - एक इवेंट आधारित सिस्टम में शानदार काम

साथ ही कई आधुनिक कंसोल और मध्य-वेयर लाइब्रेरी घटनाओं का उपयोग करते हैं।

इनपुट डिवाइस के रेंडरर और पोलिंग में फिट होने के लिए थोड़ा भ्रामक हो सकता है। खासकर यदि आप गति नियंत्रण का उपयोग कर रहे हैं, क्योंकि घटनाएं ध्यान देने योग्य विलंबता का परिचय दे सकती हैं और मतदान प्रारूप के प्रति सहज हो सकती हैं।


4

मैं कहूंगा कि मुख्य लूप शैली का उपयोग करना अभी भी अनुशंसित है: यह तेज़ है, यह आपको कार्यों के क्रम पर कुल नियंत्रण देता है (यह एक खेल में महत्वपूर्ण है) और गलतियों को कोड करना कठिन है। हालांकि, यदि आप जिस तकनीक का उपयोग कर रहे हैं, वह आपको आसानी से घटनाओं का उपयोग करने की अनुमति देती है, तो यह वास्तव में बहुत सी चीजों के लिए उपयोगी हो सकता है। उदाहरण के लिए, मैं उन्हें सूचित करने के लिए उपयोग करता हूं कि दुश्मन कब और कहाँ मरते हैं, जब कीबोर्ड कीज़ दबाए जाते हैं ...

निष्कर्ष में: गेम के मुख्य तर्क को नियंत्रित करने के लिए गेम लूप का उपयोग करें, लेकिन ध्यान रखें कि घटनाएं अन्य स्थितियों में उपयोगी हो सकती हैं।


मैं असहमत हूं कि मुख्य लूप शैली की सिफारिश की जाती है। मुख्य पाश शैली के खेल कई क्षेत्रों में एक अच्छी तरह से लिखित घटना नियंत्रित खेल से हार जाते हैं: 1) मल्टी-टास्किंग सिस्टम पर, वे प्रोसेसर के एक अनावश्यक सेट के लिए अनावश्यक रूप से उच्च मात्रा में उपभोग करते हैं, 2) पोर्टेबल उपकरणों पर, यहां तक ​​कि एकल पर भी -टैस्किंग सिस्टम अतिरिक्त प्रोसेसर का उपयोग बैटरी जीवन को प्रतिकूल रूप से प्रभावित करता है, 3) गेम जितना सरल होता है, उतनी बड़ी समस्याएं एक उचित इवेंट-संचालित गेम की तुलना में बन जाती हैं।
सैम हैरवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.