2010-06-06 22 views
8

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

इसे आसान बनाने के लिए: मेरे कॉलेज के मित्र और मैंने प्रोग्रामिंग में हमारे कौशल को आगे बढ़ाने के लिए खुद को एक बड़ी चुनौती देने का फैसला किया। छह महीने के समय में हम खुद को एक पीएसी-मैन गेम दिखाना चाहते हैं। पीएसी-मैन भूत की तरह एआई नियंत्रित होगा और जो भी पीएसी-मैन कोशिशों के एक सेट के बाद सबसे लंबे समय तक रहता है।

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

तो मेरा सवाल यह है: मुझे खुद को कैसे तैयार करना शुरू कर देना चाहिए? मैंने पहले से ही वेक्टर गणित, matrices, सभी मजेदार सामान शुरू कर दिया है। मेरा वांछित मंच डायरेक्टएक्स 9.0 सी होगा; क्या यह सलाह दी जाती है? ध्यान रखें कि यह सिर्फ इस परियोजना के लिए प्राथमिकता नहीं है, लेकिन मैं ग्राफिक्स विकास में कुछ प्रकार का भविष्य चाहता हूं, इसलिए मैं भविष्य में सुरक्षित मंच चुनना चाहता हूं।

सामान्य रूप से खेल के विकास के लिए, मुझे क्या विचार करना चाहिए? मैंने पहले कभी असली खेल नहीं किया है, इसलिए किसी भी और सभी मध्य-स्तरीय परियोजनाओं के विकास की सलाह देते हैं (यदि यह मध्य-स्तर की परियोजना होगी) की सराहना की जाती है।

मेरी मुख्य चिंताओं गड्ढे-गिरने और demotivators हैं।

क्षमा करें यदि प्रश्न इतना अस्पष्ट है। यदि यह यहां नहीं है, तो मैं इसे हटा दूंगा। अन्यथा, बड़ी परियोजनाओं के संबंध में किसी भी और सभी सलाह की सराहना की जाती है।

+7

'http: // www-cs-students.stanford.edu/~ amitp/gameprog.html' पर एक नज़र डालें, इससे कुछ विषयों में मदद मिल सकती है। – tur1ng

+0

क्या एक अच्छा पेज है! लिंक के लिए बहुत बहुत धन्यवाद! – IAE

+0

डायरेक्टएक्स समकक्ष "हैलो वर्ल्ड!" प्रतिपादन प्रणाली का उपयोग कर स्क्रीन पर एक त्रिकोण खींचना है। "डायरेक्टएक्स ड्रा एक त्रिकोण" खोजने के लिए प्रयास करें। ;) –

उत्तर

2

व्यक्तिगत रूप से, यहाँ क्या मैं करना होगा:

  • अध्ययन खुला स्रोत खेल वे क्या
  • खेल प्रोग्रामिंग (वास्तव में, मैं a book about game programming पहले से ही है, लेकिन आप शायद चाहते हैं के बारे में एक पुस्तक खरीदने को देखने के लिए कुछ है कि अधिक से अधिक हाल ही में)
  • ट्यूटोरियल है कि पुस्तकालय के साथ आते हैं के माध्यम से Google Code)
  • काम एक टूलसेट/खेल विकास पुस्तकालय (Sourceforge, लेने , संभवतः एक अलग पुस्तकालय पर स्विच करते हैं एपीआई भी अजीब है
  • एक आवश्यकताओं दस्तावेज़
  • पहली बार एक पास डिजाइन तैयार ("योजना दूर एक फेंकने के लिए") के साथ आते हैं, try to have somebody review it
  • एक परीक्षण की योजना पर फैसला
  • write up a schedule, इसलिए नहीं कि मैं समय पर रहना चाहते हैं, लेकिन क्योंकि मैं चीजों को आसानी से परिभाषित कार्यों में टूट चाहते
  • छोटी से छोटी पूरा खेल मैं कर सकता लिखने (जैसे।, एक पीएसी मैन स्प्राइट है कि मैं एक के अंदर नियंत्रित कर सकते हैं खिड़की: कोई भूलभुलैया, भूत, स्कोर, जीवन, मरने की क्षमता, आदि)
  • जब तक मैंने पूरी चीज को लागू नहीं किया है तब तक उस गेम में विशेषताओं को जोड़ें
+0

वे कुछ सुंदर ठोस विचार हैं। सिर्फ एक प्रश्न, आप "अजीब" एपीआई के रूप में क्या परिभाषित करेंगे? – IAE

+7

इससे पहले कि मैंने उपरोक्त में से कोई भी किया है, मैं एक संस्करण नियंत्रण प्रणाली स्थापित करूंगा और अपने उपयोग के साथ खुद को परिचित कर दूंगा। –

+0

इसे मेरी सूची में रखो, धन्यवाद! विशेष रूप से कोई भी आप सिफारिश कर सकते हैं, या बल्कि "प्रयोग और खुद के लिए देखें" थोड़ी सी बात? – IAE

1

एक सीखने की परियोजना के लिए एक अच्छा विचार की तरह लगता है!2 सामान्य चीजें मैं अपने दृष्टिकोण के लिए सलाह देते हैं

  1. रास्ता

प्रारंभ छोटे-साथ पुनरावृत्ति में काम

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

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

  • 9

    यह देखते हुए कि आपने इस तरह की चीज की कोशिश नहीं की है, यहां कुछ ऐसी चीजें हैं जो मैं सुझाऊंगा।

    DirectX (और शायद सी ++) के अलावा कुछ

    DirectX और सी आप बाद में सीख सकते हैं निम्न स्तर के सामान का एक बहुत करने के लिए आप को बेनकाब ++ के साथ प्रारंभ । चीजों को सरल रखें और शायद एक्सएनए और सी # को आज़माएं जो पर्याप्त है, आप इसे बाद में बंद कर सकते हैं लेकिन अब आपको स्मृति प्रबंधन और पॉइंटर्स जैसी कई चीजें छोड़ने देंगे।

    प्रारंभ 2 डी के बजाय 3 डी

    के साथ मूल Pacman अब के लिए 2 डी ताकि आप की आवश्यकता नहीं होगी वेक्टर गणित है।

    तो यह आपको कहां छोड़ देता है?

    ठीक है, कुछ चीजें सोचने के लिए गेम लूप हैं, चीजों को सिंक में रखते हुए, स्क्रीन अपडेट करना और उपयोगकर्ता इनपुट का जवाब देना।

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

    मैं इस मार्ग (बातें मजेदार और दिलचस्प रखने का आदेश) नीचे जाना चाहते हैं

    1. एक स्क्रीन प्रदर्शित हो जाओ - यह अत्यंत दृश्य
    2. उपयोगकर्ता इनपुट पर प्रतिक्रिया एक Pacman हो जाओ है
    3. Pacman जाओ दीवारों के भीतर करने के लिए विवश
    4. माध्यमिक उपयोगकर्ता इनपुट पर प्रतिक्रिया एक भूत प्राप्त करें - आप एक दूसरे के
    5. चित्रा बाहर कुछ टक्कर पता लगाने का पीछा कर सकते हैं
    6. ,210
    7. डॉट्स और इतने प्रतिपादन शक्ति की गोलियाँ आप स्कोर कर सकते हैं जाओ और खाने के भूत
    8. कुछ और भूत प्रस्तुत और खोजने के लिए ऐ यह पता लगाने
    9. कोड बाहर काम जब स्तर पूरा
    10. नक्शा परिवर्तन और राज्य बनाने है रीसेट जब एक नए स्तर

    बार जब आप इस काम की है और चल रहा है आप तो आप बेहतर ऐ, 3 डी गणित के साथ खेलते हैं या सी के लिए स्विच करने ++ चाहते हैं, तो तय कर सकते हैं किया है पर।

    +0

    हाय! टिप्पणी के लिए धन्यवाद, लेकिन स्पष्टीकरण के लिए: मैं गेम प्रोग्रामिंग में एक पूर्ण शुरुआत नहीं कर रहा हूं। मैंने पहले एक्शनस्क्रिप्ट में टावर रक्षा की है और पहले ही एक्सएनए सी # के साथ प्रोग्रामिंग कर ली है, इसलिए मुझे गेम लूप और * कुछ * प्रक्रियाओं के बारे में अच्छी तरह से पता है- हालांकि बहुत अधिक नहीं। कारण मैं सी ++ के साथ ऐसा करना चाहता हूं कि यह एक वास्तविक प्रोग्रामिंग भाषा है जो अधिकांश खेलों के लिए उपयोग की जाती है और साथ ही प्राथमिक पाठ्यक्रम जो कॉलेज पाठ्यक्रम पढ़ाते हैं। हालांकि मैं टिप्पणी की सराहना करता हूं, और मैं आपकी टिप्पणियों को दिल में ले जाऊंगा ^^ विशेष रूप से लगभग 2 डी-दोह! पता होना चाहिए कि वेक्टर वहां खेल नहीं सकते हैं। – IAE

    +0

    यह बढ़िया है! अगर आप दिल को ढीला नहीं करना चाहते हैं तो मैं ऊपर वर्णित जैसा अनुक्रम के साथ रहूंगा। एआई जैसी चीज़ों को लिखने की कोशिश करने से पहले आप इसे क्रिया में देख सकते हैं एक दर्दनाक प्रक्रिया है;) – DamienG

    +1

    हाँ, यही कारण है कि मैं अपने रास्ते को एक्सेल में एल्गोरिदम खोजने का मॉडल करता हूं, आप देख सकते हैं कि वास्तव में क्या हो रहा है (और आपको वह पागल होने की प्रतिष्ठा मिलती है कंपनी के भीतर एक्सेल लड़का) –

    3

    प्ले पॅकमैन! यह आपकी परियोजना के लिए पहला काम है!

    +0

    हाल की घटनाओं के कारण: http://www.google.com/pacman/ – tur1ng

    4

    मुझे ओओ कक्षा के लिए जावा में एक पॅकमैन गेम लिखना पड़ा। मैंने दीवारों को मैप करने का सबसे अच्छा तरीका जानने के अपवाद के साथ, यह बहुत सरल, पाया। कुछ शोध के बाद, मैं इस पर आया: http://javaboutique.internet.com/PacMan/source.html जो दीवारों को निर्धारित करने के लिए बिट-स्थानांतरण का उपयोग करता है। यह जटिलता ओवरकिल की तरह दिखता है, लेकिन मैंने गणित के साथ थोड़ा सा खेला, लेकिन मुझे यह बहुत सुंदर लग रहा था। इसके अलावा, पॅकमैन एक बहुत ही सरणी-अनुकूल अवधारणा है, इसलिए बोर्ड के लिए एक सरणी का उपयोग करें, कुछ बुनियादी स्प्राइट्स, गति के साथ टिंकर, रीफ्रेश करें, गेम डेटा का ट्रैक रखें, और इसे लूप में टॉस करें। भूत के साथ एआई के लिए, उनके बारे में लेख लिखे गए हैं। प्रत्येक भूत की एक विशिष्ट "रणनीति" होती है। या आप अपना खुद का रोल कर सकते हैं..तुम उन्हें हमेशा पॅकमैन (या उसके सामान्य स्थान/चतुर्भुज) की ओर बढ़ने के रूप में, या जटिल (शॉर्ट-पथ) के रूप में जितना चाहें उतना आसान हो सकते हैं।

    1

    अच्छी चीजें! मुझे खुशी है कि पॅकमैन आपको प्रेरित करता है और प्रेरित करता है।

    आरंभ करने के लिए चीजें।

    1) विकास पर्यावरण पर निर्णय लें।

    a) Are you building a standalone game or a networked game. 
    
    b) Which language are you targetting at to improve? 
    

    2) एआई के साथ कितनी अच्छी तरह से पता चला?

    3) प्रोग्रामिंग एल्गोरिदम तकनीकों के साथ कितनी अच्छी तरह से पता है - जैसे ए * (ए स्टार) पथ खोज, डिजस्ट्रा एल्गोरिथ, टकराव का पता लगाने, हिट परीक्षण या यहां तक ​​कि पुनरावर्ती प्रोग्रामिंग?

    4) क्या आप में से कोई भी ग्राफिकल डिज़ाइन में प्रतिभाशाली है?

    शुभकामनाएं।

    पी/एस एफवाईआई, अगर मैं एक पॅकमैन गेम लिखना चाहता था, तो मैं इसे सी # और सिल्वरलाइट 4.0 में करूँगा (मैं आराम से सी ++ लिख सकता हूं लेकिन मेरी प्राथमिकता सिल्वरलाइट बैंडवागन पर कूदना है)।

    3

    मैं पैकमैन के लिए मूल आर्केड कैबिनेट assembly code और description of what it does पर देखता हूं।यह एक असली आंख खोलने वाला है :)

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