2009-08-11 11 views
9

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

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

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

धन्यवाद :)

उत्तर

6

देखो:

http://ezide.com/games/writing-games.html

यह अजगर के लिए लिखा और बहुत अच्छा खेल के लिए MVC बताते है।

शुभकामनाएं!

+0

हां! धन्यवाद! अब यह विषय पर और बहुत प्रासंगिक है। जो मैं ढूंढ रहा हूं उसके करीब है। – mpen

5

ठीक है, खेल के विकास के लिए क्लिच प्रारंभिक बिंदु gamedev हो रहा है। वहां से शुरू करने के लिए कई ट्यूटोरियल और आलेख हैं। इसमें काफी सक्रिय मंच भी है। पुस्तक भी है, "प्रोग्रामिंग लिनक्स गेम्स" (मुझे क्यूटी के माध्यम से लगता है कि आप लिनक्स का उपयोग कर रहे हैं), लेकिन मेरा मानना ​​है कि इससे पैसे खर्च होते हैं। हालांकि, कई पुस्तकों को इंटरनेट पर पाया जा सकता है, और यह उनमें से एक हो सकता है।

"गेम प्रोग्रामिंग की काली कला" भी है, वास्तव में डरावनी अध्याय शीर्षक वाले विकी। यहां एक विशेष रूप से प्रासंगिक अध्याय का एक लिंक दिया गया है, बेशक आप पूरी बात देख सकते हैं: Chapter 2। (archive.org backup link)

आशा इस, मदद करता है - AGOR

+0

मैं कुछ एक के लिए उम्मीद की गई थी "gamedev" से थोड़ा अधिक विशिष्ट। गेम प्रोग्रामिंग की वह काला कला ... बहुत भयानक है। यह ज्यादातर वर्णन करता है कि गेम को अंतिम उपयोगकर्ता को कैसे दिखाना चाहिए, और एक कठोर फैशन में (कई आवाज़ें और सामान के साथ मौत एनीमेशन खेलें, फिर उच्च स्कोर स्क्रीन प्रदर्शित करें!)। यह एक मूल घटना लूप का वर्णन करता है, लेकिन मैं एक फ़ाइल में 200-लाइन गेम लिखने के तरीके से थोड़ा अधिक जटिल होने की उम्मीद कर रहा था। मैं कर सकता हूँ मेरा मतलब इतना आसान नहीं था। मैं यह नहीं बता सकता कि यह 15 साल की उम्र में लिखा गया है, या 60 वर्षीय पीएचडी प्रोफेसर "teh" कूल करने की कोशिश कर रहा है। – mpen

+0

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

+0

कोई चिंता नहीं। यदि आप अधिक स्तर की विस्तार की तलाश में हैं, तो यह आपके * गेम के * प्रकार * पर अधिक जानकारी प्रदान करने में सहायक हो सकता है। मैं कल्पना करता हूं कि, वास्तविक समय-रणनीति गेम में पहले व्यक्ति-निशानेबाजों, या पहेली-खेल, या जो भी हो, की तुलना में काफी अलग-अलग कोड-संरचना होती है। एक अन्य सुझाव के रूप में: (निश्चित रूप से) किसी भी शैली के ओपन-सोर्स गेम हैं, इसलिए आप उन्हें मार्गदर्शन के लिए देख सकते हैं। व्यक्तिगत रूप से, मैं स्रोत कोड के सिर या पूंछ कभी नहीं बना सकता, लेकिन शायद आप अधिक कुशल हैं। :) [और हाँ, मैं "काला कला" चीज़ से शर्मिंदा था, लेकिन उस समय यह उचित लग रहा था? :)] – agorenst

0

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

+0

लोग pygame का सुझाव देते रहते हैं ... मुझे वास्तव में एक नई लाइब्रेरी को बदलने या सीखने में दिलचस्पी नहीं है, * लेकिन * मैं दस्तावेजों को देखने के लिए देखता हूं कि वे चीजों की संरचना कैसे करते हैं। यदि यह वास्तव में महान है, तो यह * सही ढंग से डिजाइन किया जाना चाहिए? धन्यवाद। – mpen

+0

स्क्रैच करें कि। ऐसा लगता है कि pygame कोई संरचना प्रदान नहीं करता है ... यह सिर्फ एक बड़ी उपयोगिता लाइब्रेरी है ना? मेरे लिए बिल्कुल अपील नहीं करता है। – mpen

0

मैं लगभग my question के डुप्लिकेट को चिल्लााना चाहता हूं लेकिन यह लंगड़ा होगा। :)

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

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

+2

यही समस्या है। मैं हमेशा * करता हूं * सही कूदता हूं और कभी योजना नहीं बनाता, और फिर मैं अपने हाथों पर एक बड़ी गड़बड़ी करता हूं जो मेरे बाहर बिल्ली को परेशान करता है और फिर मैं पूरे कार्यक्रम को फिर से कुछ भी नहीं करता। कुछ संरचना के साथ शुरू करने के लिए बेहतर है ताकि मैं इसे अलग करने के लिए इतना मोहक नहीं हूं। मेरे पास थोड़ा सा गेम अनुभव है, लेकिन कोई नहीं। मेरे पास एक सुपर बेसिक मारियो क्लोन है, और एक और गेम है ... लेकिन जब आप अधिक तत्व जोड़ने की कोशिश करते हैं (मेनू स्क्रीन की तरह) सबकुछ बस अलग हो जाता है। जैसे कि आपका खिलाड़ी एकमात्र ऑब्जेक्ट है जो इनपुट को संभालता है ... जब वह मर जाता है तो क्या होता है? – mpen

+0

वैसे भी, आप सही हैं। यह आपके प्रश्न के समान है, मैं उन उत्तरों के माध्यम से भी पढ़ूंगा। धन्यवाद :) – mpen

+0

http://dev.koonsolo.com/9/model-view-controller-for-games/ यह एक अच्छा है। मैंने हमेशा "मॉडल" के रूप में "डेटाबेस" और नियंत्रक के रूप में सोचा था ... मुझे पता नहीं है, पोस्ट डेटा को संभालने और इसे मॉडल में भेजना, और विचार विचार हैं .... देखने के लिए मेरे सिर को थोड़ा मोड़ना पड़ा मैं इसे एक खेल में कैसे लागू कर सकता हूं। सहायक :) – mpen

0

को देखने के लिए सुनिश्चित करें आधुनिक घटक उन्मुख (पढ़ें: प्लगेबल) दृष्टिकोण, के रूप में PushButtonEngine द्वारा समर्थन किया और इस छोटे से (5 मिनट) वीडियो में वर्णित:

http://www.youtube.com/watch?v=auaqZzcjl-Y

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