OSX की तुलना में विंडोज में गेम बेहतर तरीके से क्यों चलते हैं?


11

उदाहरण के लिए, मेरे मैक मिनी पर बूटकैम्प के साथ, टीम किले 2 OSX में लगभग 20fps और विंडोज में 80fps पर चलता है। यह एक आम मामला लगता है। ऐसा क्यों है?


यह ऑपरेटिंग सिस्टम में एक ही मशीन डुअल बूटेड है।
सांप

"नहीं एक आभासी मशीन" सही के रूप में दोहरी बूट?
20

1
हाँ, सीधे OS में बूटिंग।
sans

1
मुझे ये प्रश्न हमेशा दिलचस्प लगते हैं - जब तक कि वे नासमझ शेख़ी / भड़कने में पीछे नहीं हटते - क्योंकि, एक मैक उपयोगकर्ता (10 महीने का) के रूप में, मुझे विंडोज उपयोगकर्ताओं की गलतफहमी देखने को मिलती है।
Ricket

जवाबों:


15

विंडोज पर डायरेक्ट 3 डी ड्राइवरों को हास्यास्पद रूप से अनुकूलित किया जाता है, कभी-कभी विशिष्ट गेम के लिए, और व्यक्तिगत हार्डवेयर विक्रेताओं द्वारा विकसित किया जाता है।

Apple के OpenGL ड्राइवर Apple द्वारा लिखे और बनाए गए हैं (AFAIK), और "सामान्य" OS उपयोग के लिए अभिप्रेत हैं, UI और व्हाट्सप को कंपोज़ करते हुए। गेमिंग और उच्च-प्रदर्शन थ्रूपुट के लिए कोई अनुकूलन नहीं है।

असल में, एक बहुत एक से संसाधनों का बहुत कुछ स्रोतों की, तेजी से विंडोज पर DirectX बनाने में चले गए हैं, जबकि बहुत कम संसाधनों मैक पर भी ऐसा ही करने के लिए उपलब्ध हैं।


मैं और अधिक विशेष रूप से चालक के shader संकलक की ओर झुकाव के रूप में अंतर का एक सा हिस्सा होने के नाते। altdevblogaday.com/2011/07/20/… का कहना है कि लोकप्रिय खेलों के लिए एनवी / एएमडी अपने हार्डवेयर के लिए शेड्स को भी अनुकूलित करेंगे।
एडम

5
यह न केवल ड्राइवरों है .. यह भी खेल डेवलपर्स है। वे आमतौर पर OpenGL के बजाय Direct3d / DirectX के लिए अनुकूलन में अधिक संसाधनों का निवेश करते हैं। एक और मामला है जब एक गेम शुरू में सिर्फ खिड़कियों के लिए विकसित किया गया था और बाद में पोर्ट किया गया। अगर यह समान प्रदर्शन हासिल करना चाहिए, तो यह वास्तव में अच्छा बंदरगाह होना चाहिए (उदाहरण के लिए कोड रीराइटिंग का एक बहुत कुछ हो सकता है) ... जो कि ज्यादातर ऐसा नहीं होता है।
22

तो टीम किले 2 OSX पर OpenGL में प्रस्तुत किया गया है, लेकिन Windows पर D3D?
sans

sans, हाँ, Direct3D केवल Windows है, इसलिए किसी भी अन्य प्लेटफ़ॉर्म पर कोई भी गेम OpenGL (या सॉफ़्टवेयर ..) का उपयोग करके प्रदान किया जाता है। Windows OpenGL का भी समर्थन करता है; लेकिन गेम के अधिकांश विंडोज संस्करण डायरेक्ट 3 डी का उपयोग करेंगे क्योंकि जैसा कि उल्लेख किया गया है, विंडोज के लिए ड्राइवरों को आमतौर पर डी 3 डी के लिए बहुत अधिक अनुकूलित किया जाता है।
Ricket

13

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


यहां एक गैर-कोडर की जिज्ञासा: जब आप मल्टीप्लायर के लिए डिज़ाइन करते हैं तो प्रदर्शन का क्या होता है? उदाहरण के लिए, क्या आपका मल्टीप्लेट रिकॉर्डर गेम विंडोज पर उतनी ही तेजी से चलेगा जितना विंडोज-केंद्रित संस्करण में होगा?
जेसन पाइनो

@ जेसन: यह समय बिताने और मंच की विशिष्टता के बारे में अधिक है। एक डेवलपर को कोड लिखने से कुछ भी नहीं रोक रहा है जो विंडोज के लिए पूरी तरह से अनुकूलित है, अलग कोड लिख रहा है जो पूरी तरह से ओएसएक्स के लिए अनुकूलित है, और फिर बस स्विचिंग जो प्लेटफॉर्म के आधार पर उपयोग किया जाता है। हालांकि, ऐसा करने के लिए समय और इस तरह से खर्च किए जाने वाले संसाधनों को अक्सर ऐसा करने का फायदा मिलता है।
जोर्डन माइलोनस 5

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

7

एक साथी मैक उपयोगकर्ता के रूप में, मैं एक अतिरिक्त कारक की पेशकश करना चाहूंगा: ओएस एक्स में सीपीयू अनुसूचक विंडोज की तुलना में अधिक "निष्पक्ष" है।

यह एक जटिल कंप्यूटर विज्ञान विषय है, इसलिए यहां आपके सीपीयू अनुसूचक के बारे में सोचने का एक सरल तरीका है: आपके प्रोसेसर को एक साथ कई कार्यों को टालना पड़ता है (आपके सभी खुले कार्यक्रम, प्लस पृष्ठभूमि सिस्टम प्रक्रियाएं)। यह केवल कर सकते हैं वास्तव में (, एक डुअल कोर i7 उदाहरण के लिए एक बार में 4 कार्यों कर सकते हैं, कोर समय की संख्या प्रति कोर धागे की संख्या) एक बार में एक जोड़े को काम करते हैं। इसलिए यह सभी कार्यों को टुकड़ों में विभाजित करता है, और उनके बीच बारी-बारी से ऐसा होता है कि ऐसा लगता है कि यह वास्तव में एक ही बार में बहुत कुछ कर रहा है। जब आप दो प्रोग्राम चलाते हैं, तो प्रोसेसर वास्तव में उन दो प्रोग्रामों को संसाधित करने के बीच आगे और पीछे बारी-बारी से होता है, वास्तव में तेज (जैसे, यहां कुछ माइक्रोसेकंड, और फिर कुछ माइक्रोसेकंड)।

पैटर्न जिसके लिए चीजों को किस क्रम में और कितने समय के लिए "शेड्यूलिंग एल्गोरिदम" द्वारा तय किया जाता है। उदाहरण के लिए, राउंड रॉबिन शेड्यूलर सिर्फ एक सर्कल में कार्यों को व्यवस्थित करता है और प्रत्येक को क्रम में संसाधित करता है। एक अन्य अनुसूचक कम से कम-से-अधिकांश समय से कार्यों की व्यवस्था कर सकता है - छोटे कार्य जल्दी से हो जाएंगे, और बड़े कार्यों को किए जाने से पहले थोड़ी देर इंतजार करना पड़ सकता है।

विंडोज और ओएस एक्स बहुत अलग हैं, और उनके शेड्यूलिंग एल्गोरिदम भी अलग हैं। विंडोज चीजों को प्राथमिकता देने के बारे में थोड़ा "होशियार" है, इसलिए यह कंप्यूटर को तेज दिखाने के लिए दृश्य कार्यक्रमों को अतिरिक्त प्राथमिकता देता है। हालाँकि, OS X, पृष्ठभूमि प्रक्रियाओं के लिए अधिक उचित है। दोनों ओएस के बीच समग्र एल्गोरिदम बहुत अधिक हैं (वे दोनों बहुस्तरीय प्रतिक्रिया कतार हैं ), लेकिन इस छोटे से विस्तार से एक अलग उपयोगकर्ता अनुभव होता है।

दोनों पक्षों के अपने फायदे हैं। जैसा मैंने कहा, विंडोज में दृश्यमान कार्यक्रम तेजी से दिखाई देंगे क्योंकि उन्हें अधिक प्राथमिकता मिलती है; लेकिन अगर एक दृश्य कार्यक्रम बहुत अधिक शक्ति लेने का फैसला करता है, तो पूरा कंप्यूटर थोड़ा अधिक पीड़ित होता है। ओएस एक्स के अधिक निष्पक्ष अनुसूचक का परिणाम अधिक पूर्वानुमान और स्थिर गति है, जो ऑडियो और वीडियो संचालन के लिए अच्छा है। उदाहरण के लिए यदि आप बैकग्राउंड में कोई गाना बजा रहे हैं, तो जब आप विंडोज की तुलना में एक ही समय में दूसरे काम करते हैं, तो हकलाने की संभावना कम होती है।

तो, takeaway बिंदु यह है: विंडोज में एक पूर्ण-स्क्रीन गेम सीपीयू पर उच्च प्राथमिकता प्राप्त करने जा रहा है और पृष्ठभूमि में चलने वाली किसी भी चीज को बस इंतजार करना होगा। ओएस एक्स में, यह मामला कम है।

अनुसूचियों के बारे में कुछ तकनीकी जानकारी यहाँ दी गई है ; इस उत्तर का शेष मेरे कंप्यूटर विज्ञान की शिक्षा और पिछले 10 महीनों में ओएस एक्स के मेरे उपयोग से है, 10 साल से अधिक समय तक विंडोज का उपयोग करने के बाद (और कभी-कभी लिनक्स)। मैं कभी-कभी अधिक निष्पक्ष अनुसूचक से निराश होता हूं, लेकिन अन्य बार मैं इसके फायदे की सराहना करता हूं।

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


-2

MacOSX के लिए "पोर्टेड" किए गए कुछ गेम वास्तव में एक एमुलेटर के भीतर चलने वाले विंडोज गेम हैं। जबकि मेरे पास उदाहरणों की पूरी सूची नहीं है, ऐसा लगता है कि कम से कम ऐसा है जो इस तरह था:

SPORE को कभी भी आधिकारिक तौर पर GNU / Linux और मैक संस्करण को खराब तरीके से जारी नहीं किया गया था। मैक पोर्ट वास्तव में साइडर के साथ पैक किया गया विंडोज रिलीज़ है, जो कि खेलों के चारों ओर वाइन के एक (अब पुराना) संस्करण को लपेटने वाली एक मूल्यह्रास तकनीक है। ( स्रोत )

एक एमुलेटर के भीतर एक सॉफ्टवेयर चलाना मूल रूप से चलाने की तुलना में परिभाषा धीमी है।

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