एक या दो दिन में जावा खेल [बंद]


9

हम तीन लोग हैं जो स्कूल प्रोजेक्ट (विश्वविद्यालय, प्रथम वर्ष) के रूप में जावा में एक सरल खेल बनाने जा रहे हैं। खेल को ऑब्जेक्ट ओरिएंटेड होना चाहिए। हमारे पास ज्यादा समय नहीं है, 10-20 घंटे सबसे ऊपर हैं। हम में से किसी को भी खेल के विकास में कोई अनुभव नहीं है, लेकिन हम सभी के पास जावा में उचित कौशल है।

हम वास्तव में यह चुन सकते हैं कि किस तरह का खेल है, और यही वह जगह है जहाँ समस्या निहित है। हमें कितना ऊँचा लक्ष्य रखना चाहिए? इसमें एक प्रतियोगिता शामिल है, इसलिए हम उस समय में सर्वश्रेष्ठ खेल बनाना चाहते हैं। एक 3 डी खेल अवास्तविक है? क्या हमें किसी गेम-इंजन / लाइब्रेरी का इस्तेमाल करना चाहिए? हमें किस तरह की कार्यक्षमता से बचना चाहिए?


4
3 डी समय की परवाह किए बिना थोड़ा अधिक लक्ष्य कर रहा है, आपको कोई भी अनुभव नहीं है। ; पी
कम्युनिस्ट डक

दुख की बात है, मुझे लगा कि: पी
वाइंड

पोंग! पैडल, बॉल खुद की वस्तुएं हैं, एक स्कोर जोड़ें। गेंद एक पैडल मारती है जिसे आप दिशा द्वारा -1 से गुणा करते हैं। यदि गेंद दूसरी टीम के पैडल पॉइंट से आगे जाती है, तो गेंद दूसरे खिलाड़ी के पास होती है। या यह बहुत आसान है?>
Spooks

मुझे लगता है कि शायद हमें बेहतर, अधिक रचनात्मक अवधारणा के लिए लक्ष्य बनाना चाहिए, हालांकि विकसित करने के लिए एक आसान ...
indyvind

1
कैसे हमारे साथ अपने खेल को साझा करने के बारे में? :)
राख

जवाबों:


23

3 डी से बचें , क्योंकि आपको यह जानना होगा कि 3 डी मॉडल कैसे बनाएं या अच्छे वाले कैसे ढूंढें, आपको यह जानना होगा कि ऐसे मॉडल (अक्सर अपने आप में एक महाकाव्य का काम कैसे करें, दुख की बात है), और उन्हें स्क्रीन पर कैसे आकर्षित करें (जैसे ओपनगैल या डायरेक्टएक्स थोड़ा लाभ के लिए बहुत काम लेता है, और यहां तक ​​कि jMonkeyEngine जैसे इंजन को बुनियादी 3 डी ज्ञान के साथ-साथ इंजन का उपयोग करने के लिए ज्ञान की आवश्यकता होती है)। स्क्रीन पर 2 डी छवियों को ब्लिट करना और उन्हें इधर-उधर ले जाना, वर्टिकल, मटेरियल, व्यू मैट्रिसेस, ट्रांसफॉर्म आदि से निपटने की तुलना में कहीं अधिक सरल है। मुझे लगता है कि आपको बिंदु मिल जाएगा।

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

समय से पहले कोड स्निपेट्स की एक छोटी लाइब्रेरी बनाएं। इनमें एक छवि लोड करना, छवि को स्क्रीन पर स्थिति में लाना, छवि और अन्य प्रभावों को मापना, एक ध्वनि बजाना, पृष्ठभूमि संगीत बजाना, बॉक्स टकराव का पता लगाने के लिए बाध्य करना, ड्राइंग पाठ जैसी चीजें शामिल होंगी। एक कंकाल अनुप्रयोग भी है जो एक फ़्रेम (या एप्लेट) खोलता है, इसमें एक कैनवस जोड़ता है, और कैनवास के पेंट और रिपेंट तरीके को ओवरराइड किया जाना चाहिए, और एक धागा कैनवास रिपेंट विधि (या एक टाइमर जिसे कॉल करना चाहिए) को लूप करना चाहिए। अगर आप आस-पास खोजते हैं तो आप इन चीजों को सीख सकते हैं Java 2D game programming। यह मानते हुए कि आपके पास अपने विश्वविद्यालय के पुस्तकालय तक पहुंच है, आपके पास अपने निपटान में कई अच्छी जावा खेल पुस्तकें होनी चाहिए; उन्हें बाहर की जाँच करें और ऊपर बताए गए स्निपेट के लिए उनके माध्यम से स्किम करें, और अन्य जिन्हें मैंने याद किया।

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

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

अधिक सुझावों के लिए, मेरे प्रश्न के उत्तर देखें "खेल विकास प्रतियोगिता की तैयारी कैसे करें?"


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


यह उत्कृष्ट सलाह है।
अलेक्जेंडर गेसलर

1
अच्छे अंक। हालांकि मुझे लगता है कि स्रोत-नियंत्रण चीजों को शुरुआती के लिए और अधिक जटिल बना सकता है (कल्पना करें कि कोई व्यक्ति रेपो को गड़बड़ कर देता है)। जब समय महत्वपूर्ण होता है, तो किसी को नए टूल का उपयोग शुरू नहीं करना चाहिए। लेकिन अगर आप पहले से ही VCS से परिचित हैं तो इसका उपयोग निश्चित रूप से किया जाना चाहिए।
बंमज़ैक

4
कम लक्ष्य करने और प्राथमिकता वाली सूची का उपयोग करने के लिए रिकेट्स की सलाह बहुत अच्छी है - वे जोखिम को कम करने और पुनरावृत्ति को बढ़ाने के बारे में हैं। आप उन परिस्थितियों से बचना चाहते हैं जहां आपको कुछ भी चलाने से पहले 8 घंटे काम करना पड़ता है। यदि यह काम नहीं करता है या यदि इससे अधिक समय लगता है तो आप कुछ भी नहीं कर सकते हैं। इसके बजाय एक खेल को 1 घंटे से कम समय में चलाने का प्रयास करें और फिर अपने बाकी 10 घंटे चीजों को जोड़ने, परीक्षण करने, परिष्कृत करने में बिताएं। जैसा कि आप खेलते हैं आप जोड़ने के लिए और चीजें ढूंढते रहेंगे।
२२:४

@bummzack सहमत! यह वास्तव में रास्ते में मिल सकता है, इस प्रकार अभ्यास और इसके बारे में सुनिश्चित होना महत्वपूर्ण है, लेकिन अगर यह सही ढंग से उपयोग किया जाता है तो यह सुपर भयानक और उपयोगी भी हो सकता है।
मार्क

सबसे अच्छी बात यह है कि चीजों को तेजी से काम करने का तरीका चरम प्रोग्रामिंग फैशन (svns से बेहतर) में करना है, जिसका मतलब है कि पूरी टीम एक कंप्यूटर के सामने एक साथ बैठती है। यह छोटी टीमों (2-3 अधिकतम) में शानदार काम करता है। आप एक दूसरे का समर्थन करते हैं और समस्याएं अधिक तेज़ी से हल हो जाती हैं - आप निराश नहीं होते।
नोटाबिन

2

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

एक पहलू पर ध्यान केंद्रित करें और एक गेम-मैकेनिक खोजने की कोशिश करें जो सूट करता है। यदि आप 3D में रुचि रखते हैं, तो आपका गेम टिक-टैक-टो जैसा सरल हो सकता है, लेकिन स्क्रीन पर अच्छे 3D ग्राफिक्स प्राप्त करने पर ध्यान केंद्रित करें।

एक बार में बहुत अधिक नया सामान सीखने की कोशिश न करें। यथासंभव मौजूदा चौखटे / उपकरण का उपयोग करें।

इसे गोल करने के लिए, "गेम शुरू करना" गेम के लिए यहां कुछ विचार दिए गए हैं : "अपने पंख कमाने" के लिए अच्छे गेम क्या हैं?

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


2

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

लेकिन गेमप्ले के बिना एक गेम एक गेम नहीं है जबकि आश्चर्यजनक ग्राफिक्स के बिना एक गेम अभी भी मजेदार हो सकता है।

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


एक अच्छा बिंदु वास्तव में :)
'29
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.