2008-10-07 15 views
11

मैं अपने खाली समय में सी ++ और डायरेक्टएक्स का उपयोग करके 2 डी गेम विकास के साथ गड़बड़ कर रहा हूं। मुझे लगता है कि एंटरप्राइज़ समस्या डोमेन मॉडलिंग दृष्टिकोण जितना चाहें उतना मदद नहीं करता है;)2 डी गेम इंजन डिज़ाइन पर कुछ अच्छे संसाधन क्या हैं?

मैं मूल गेम इंजन डिज़ाइन के बराबर "सर्वोत्तम प्रथाओं" की तलाश में हूं। एक दूसरे के साथ कैसे इकाइयों को बातचीत करनी चाहिए, आदर्श दुनिया में एनिमेशन और ध्वनियों का प्रतिनिधित्व कैसे किया जाना चाहिए।

किसी के पास अच्छे संसाधन हैं जो वे अनुशंसा कर सकते हैं?

उत्तर

15

Gamedev.net जहाँ मैं खेल विकास समुदाय में अन्य लोगों के क्या कर रहे हैं की एक विचार प्राप्त करने के लिए बारी आम तौर पर है।

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

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

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

मैं आपको वादा करता हूं कि यह आपको "सही तरीके" के लिए ऑनलाइन चारों ओर पोकिंग की तुलना में कहीं अधिक तेजी से प्राप्त करेगा (यह किसी ऐसे व्यक्ति से आ रहा है जिसने पोकिंग का बहुत कुछ किया है)।

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

शुभकामनाएं, और सब से ऊपर याद रखें: खेल (और उनके विकास) को मजेदार होना चाहिए! छोटी चीजों पर भी पकड़े मत जाओ!

6

एक गेम बनाएं। पूरा करने के बाद, एक और बनाओ। देखो कि आपको क्या पसंद आया और आपको क्या पसंद नहीं आया और फिर दूसरा बनाओ।

गंभीरता से हालांकि, आप पढ़ सकते हैं "सर्वोत्तम प्रथाओं" के सभी डिजाइन आप चाहें तो खेल के लिए मार्गदर्शन करता है, लेकिन अंत में यह अनुभव करने के लिए नीचे आता है। अनुभव पाने का एकमात्र तरीका बैठना और गेम लिखना है। ऐसा करने के बाद आपको कुछ बार अधिक गेम लिखने का बेहतर विचार मिलेगा।

+3

बस एक घर बनाने की तरह। अपने सबसे दुश्मन के लिए पहला, एक दोस्त के लिए अगला और अपने लिए तीसरा बनाओ। :-) – KPexEA

3

सुंदर बहुत किसी भी पुस्तक की उपलब्धता Andre Lamothe योगदानकर्ताओं में से एक के रूप में।

GameDev में कई लेख भी हैं।

0

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

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

1

मैं आपसे अधिक सहमत नहीं हो सकता: एंटरप्राइज़ एप्लिकेशन गेम प्रोग्रामिंग के लिए आपको तैयार नहीं करते हैं।

मैंने पायथन, जावा, एचटीएमएल/पीएचपी और पर्ल में कुछ छोटे पैमाने पर गेम बनाए हैं। एक खेल की बुनियादी संरचना, जैसा कि आप शायद जानते हैं, है:

मुख्य लूप:
    handleInput()
    updateGameLogic()
    renderImages()

अब, यह है सभी अच्छी तरह से और सिंगल-स्क्रीन, सिंगल थ्रेडेड गेम्स के लिए अच्छा, 70 के दशक या 80 के दशक की तरह कुछ भी। लेकिन मुझे यह संरचना बहु-स्क्रीन गेम (जैसे आरपीजी) या किसी भी विदेशी के लिए विशेष रूप से मजबूत फिट नहीं मिलती है। यह धागा बहुत अच्छी तरह से नहीं है। कोड बहुत मज़ेदार हो जाता है क्योंकि आपको विभिन्न प्रकार के इनपुट को संभालने की आवश्यकता होती है। यह अच्छी तरह से स्केल नहीं करता है।

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

मेरे लिए, गेम प्रोग्रामिंग के सबसे कठिन, सबसे अधिक समय लेने वाले पहलुओं ग्राफिक और ध्वनि संपत्ति हैं। जबकि मैं एक ऑडियो बेवकूफ और शौकिया संगीतकार हूं, विश्वासयोग्य और उचित संगीत बना रहा हूं और एसएफएक्स एक परियोजना है। मेरे पास कोई ग्राफिक प्रतिभा नहीं है, इसलिए मुझे exisitng छवियों को संशोधित करने या स्वतंत्र रूप से उपलब्ध लोगों का उपयोग करने पर भरोसा करना चाहिए। सौभाग्य से, एक व्यापक रूप से उपलब्ध मुफ्त फोंट हैं जो गेम के लिए उपयोग किए जा सकते हैं (और कुछ और, क्योंकि वे लगभग सार्वभौमिक रूप से खराब हैं)।

आखिरकार, ओपन सोर्स की तरह कुछ भी नहीं है यह देखने के लिए कि अन्य परियोजनाएं इसे कैसे संभालती हैं। वेस्टनॉथ की लड़ाई एक परिपक्व, मध्यम आकार का गेम है। आप देखना चाहते हैं कि वहां क्या हो रहा है। दोबारा, अजगर में खेल अक्सर अपने स्रोत कोड उपलब्ध कराते हैं, ताकि आप वहां सैकड़ों परियोजनाओं को देख सकें। आप अटारी 2600 रोम को भी संकुचित कर सकते हैं, लेकिन यह आपको आज प्रोग्रामिंग के बारे में बहुत कुछ नहीं बताएगा। पुराना वीसीएस एक समर्पित डिवाइस था जिसने अपने ऐप्स को बहुत ही सिस्टम-निर्भर तरीके से संभाला था। :- डी

अंत में, मुझे एंड्रयू लामोथ भी पसंद है। मेरी पुरानी 1 99 3 की किताब है जो लाखों पेज मोटी है। यद्यपि यह अभी भी कुछ सामान्य गेम विचारों पर एक अच्छा संदर्भ है, लेकिन इसमें बहुत से मुफ्त उपलब्ध पुस्तकालयों और ढांचे की उपलब्धता से मोटापा है जो तब मौजूद नहीं था।

आपकी परियोजना के साथ शुभकामनाएँ।

संबंधित मुद्दे