vb.Net

2009-04-30 12 views
5

में गेम डेवलपमेंट वीबी.Net के साथ बड़ी सीमाएं क्या हैं जो लोगों को गेम विकसित करने के लिए भाषा के रूप में उपयोग करने से रोकती हैं?vb.Net

उत्तर

10

उच्च स्तरीय भाषाओं की गति आमतौर पर उन्हें "गंभीर" गेम विकास से बाहर रखती है, जहां सी और सी ++ सर्वोच्च शासन करते हैं। हालांकि, अधिक से अधिक गेम लुआ और पायथन जैसे भाषाओं को स्क्रिप्टिंग करने के लिए गेम लॉजिक को उजागर कर रहे हैं।

मैंने वीबी में इंडी गेम विकसित होने के बारे में सुना है, उदाहरण के लिए ज़ोंबी स्मैशर्स श्रृंखला जेम्स सिल्वा द्वारा वीबी में विकसित की गई थी, जिन्होंने हाल ही में सी # नेट में गेम Dishwasher Dead Samurai किया था।

आप Xbox लाइव आर्केड फ्रेमवर्क (XNA) माइक्रोसॉफ्ट को बाहर रखना चाहते हैं। आप इसे वीबी या सी # में उपयोग कर सकते हैं।

+1

इस के लिए एक चेतावनी के रूप में, आप XNA का उपयोग कर Xbox 360 के लिए गेम विकसित करने के लिए VB.NET का उपयोग नहीं कर सकते हैं। केवल सी # 3.0 समर्थित है। http://creators.xna.com/en-us/xnags_islive –

+0

एड को नहीं पता था, लेकिन आप दोनों में पीसी गेम बना सकते हैं। यही कारण है कि सिल्वा ने डिशवॉशर के लिए सी # पर स्विच किया, उन्हें वीबी से मजबूर कर दिया गया। –

3

यह वीबी.NET नहीं है जो बड़ी समस्या है, यह .NET Framework है।

विशेष रूप से, खेल विकास आमतौर पर सी/सी ++ में किया जाता है जहां प्रदर्शन के हर औंस प्राप्त किया जा सकता है। .NET ढांचा खुद को उधार नहीं देता है।

इसी के साथ

कहा खेल जो .NET में विकसित किया गया है

+0

सत्य के लिए ऊपर रखा गया। हालांकि मुझे .NET ढांचे से प्यार है, लेकिन अधिकांश प्रमुख डेवलपर्स रिकॉर्ड पर चले गए हैं कि यदि आप खेल के विकास में शामिल होना चाहते हैं तो सी ++ अच्छी तरह से जानें, और आपके डेटा स्ट्रक्चर/अल्गोस भी बेहतर (बर्फ़ीला तूफ़ान)। – bdd

+1

ठीक है, लेकिन क्या आप वास्तव में बर्फ़ीला तूफ़ान के साथ प्रतिस्पर्धा करने जा रहे हैं यदि आप शौकिया गेम पर काम कर रहे एकमात्र प्रोग्रामर हैं? –

0

VB.NET किसी अन्य .NET भाषा से अलग नहीं है देखते हैं।

धारणा है कि वीबी धीमा है, अब मामला नहीं है।

एक्सएनए (गेम डेवलपमेंट टूलकिट) के साथ वीबीएनईटी के लिए list of tutorials है।

1

इसका हिस्सा अभी भी एक धीमी भाषा होने के कारण वीबी से जुड़ा हुआ कलंक है। (जो लगभग उतना ही सत्य नहीं है जितना कि नेट फ्रेमवर्क की समानता के कारण होता था)

ईमानदार होने के बावजूद यह आपके विकास के किस प्रकार के गेम पर निर्भर करता है, यदि आप उच्च फ्रेम दर कर रहे हैं, तो उच्च स्तर 3-डी ग्राफिक्स, बढ़ते किनारे के खेल के बाद आप आवश्यक प्रदर्शन प्राप्त करने के लिए इसे सी या सी ++ में लिखने में फंस गए हैं। लेकिन यदि आप आजकल कई फ़्लैश आधारित गेम में जो कुछ देखते हैं, या यहां तक ​​कि सामान जो आप पुराने गेम में देख सकते हैं, तो कुछ और कर रहे हैं तो IMHO आप इसे लगभग किसी भी भाषा में कर सकते हैं।

+0

हाँ यह वास्तव में आपकी परियोजना के दायरे पर निर्भर करता है। आप जो हासिल करना चाहते हैं उसके लिए सही टूल का उपयोग करें। –

8

गेम प्रोग्रामर के लिए "धीमी" होने के कारण सी ++ से अधिक सी को स्वीकार करने में काफी समय लगा। मेरा मानना ​​है कि जल्द ही बहु-कोर युग धीरे-धीरे फीका हो जाएगा क्योंकि समानांतर में चलने से जितनी जल्दी संभव हो सके एक धागे को चलाने से कहीं अधिक महत्वपूर्ण होगा।

ध्यान रखें कि जीपीयू पर आजकल पिक्सेल/वर्टेक्स/ज्यामिति शेडर्स के साथ बहुत सी प्रोसेसिंग की जाती है। इसलिए हम कुछ सुंदर उन्नत गेम देख रहे हैं जिन्हें "धीमी" भाषा माना जा सकता है।

आखिरकार, .NET धीमा नहीं है। गेम डेवलपमेंट इमो के लिए यह परेशानीजनक बनाता है कचरा कलेक्टर की अप्रत्याशितता (जीसी एक विशाल बॉस लड़ाई के दौरान किक करता है और अंतराल का कारण बनता है), और सी # और देशी कोड के बीच होने वाली किसी भी मार्शलिंग।

सौभाग्य से, जीई और रनटाइम सहित .NET कैसे काम करता है, इसकी गहरी समझ के साथ - इन दोनों बाधाओं को दूर किया जा सकता है।

यदि किसी भी प्रबंधित भाषा में किसी गेम को प्रोटोटाइप करने की अत्यधिक अनुशंसा की जाती है, चाहे वह वीबी.नेट, सी #, पायथन, रूबी आदि हो ... और फिर यदि यह बहुत धीमी हो जाती है तो आप पोर्ट कर सकते हैं इसके कुछ हिस्सों में सी ++ है।

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

0

के रूप में दूसरों का उल्लेख किया है, नेट धीमी गति से नहीं है, लेकिन कुछ चीजें जो खेल के विकास के लिए इसके खिलाफ खड़े देखते हैं:

  1. कचरा संग्रहण की गैर नियतिवाद
  2. कम पोर्टेबिलिटी (सी की तुलना में)
  3. परिपक्व खेल देव उपकरण/पुस्तकालयों की कमी/चौखटे

VB.Net विशेष रूप से उपयोग करने के लिए के रूप में। प्रिय भगवान क्यों? :-)

0

आप ग्राफिक्स के लिए माइक्रोसॉफ्ट एक्सएनए फ्रेमवर्क और अपने सभी कोड को रखने के लिए एक विनियमन WinForms एप्लिकेशन का उपयोग कर सकते हैं। बस एक्सएनए फ्रेमवर्क स्थापित करें और अपने वीबी WinForms एप्लिकेशन से एक संदर्भ जोड़ें।

यदि आप एक्सएनए की पेशकश की सभी सुविधाओं का लाभ उठाना चाहते हैं, तो आपको सी # का उपयोग करने की आवश्यकता होगी जिसके साथ एक्सएनए अच्छी तरह से एकीकृत हो।

1

गति भाग के लिए, एक्सएनए-आधारित Visual3D.NET जैसे इंजनों ने मुझे विश्वास दिलाया है कि एक प्रबंधित गेम इंजन से अच्छा प्रदर्शन करना असंभव नहीं है। सबसे महत्वपूर्ण बात यह है कि सीपीयू किसी भी प्रदर्शन में एक बाधा के रूप में प्रतीत नहीं होता है, जो कि सी # का उपयोग करने का एकमात्र हिस्सा है। और जब भी यह सीपीयू सीमित है, तब भी यह केवल 50-60% को दबा रहा है क्योंकि इंजन अभी भी काफी थ्रेडेड है, इसलिए आज के दोहरे और क्वाड कोर सीपीयू, और कल के ऑक्टो- और हेक्साडेका कोर में सुधार के लिए बहुत सी जगह है। मुझे लगता है कि कई कोर युग में अच्छी तरह से स्केल करने के लिए एल्गोरिदम अनुकूलित करना भाषा की तुलना में अधिक महत्वपूर्ण होगा।

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

सी #/वीबी.नेट जैसी प्रबंधित भाषा का उपयोग भौतिकी जैसी सीपीयू आधारित चीजों के लिए सीमित हो सकता है, लेकिन फिर, मैं पूरी तरह से प्रबंधित भौतिकी लाइब्रेरी JigLibX एक्सएनए के लिए काफी प्रभावित हूं।

यह सब सी # है, लेकिन मुझे लगता है कि यह वीबी.नेट पर भी लागू होता है क्योंकि वे अंत में एक ही आईएल में संकलित किए जाते हैं, जब तक कि वीबी कंपाइलर में कुछ सीमाएं न हों जिन्हें मैं अनजान हूं।