2009-07-30 11 views
44

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

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

तो, क्या आप किसी भी कार्यात्मक प्रोग्रामिंग लेख/पुस्तकें/ब्लॉग/वास्तविक गेम में इसका उपयोग करने के बारे में जो भी जानते हैं, या कार्यात्मक प्रोग्रामिंग भाषाओं के साथ सरल गेम इंजन डिजाइन करना और इस कार्यात्मक में गेम और गेम इंजन के बीच सभी बातचीत वातावरण?

कृपया, कुछ ऐसा सुझाव न दें जैसे "केवल कार्यात्मक में सरल सामग्री प्रोग्रामिंग शुरू करें और धीरे-धीरे यह आपके पास आएगा"। जैसा कि मैंने पहले कहा था, यह स्पष्ट है, लेकिन जो कुछ मैं यहां पूछ रहा हूं वह विषय पर कुछ संसाधन हैं, यदि कोई है तो। धन्यवाद!

+1

ओकम्ल एक दिलचस्प कार्यात्मक भाषा विकल्प हो सकता है। – Christian

उत्तर

23

अच्छा, आप इनमें से कुछ haskell games के कोड का अध्ययन करने से भी बदतर हो सकते हैं।

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

प्रासंगिक सामग्री वाले ब्लॉगर्स में James Hague शामिल हैं।

नोट पहले चरण में FunGEn - हालांकि सक्रिय रूप से बनाए रखा नहीं है यह कामकाजी उदाहरणों के साथ एक 2 डी गेम इंजन है।

इसके साथ game library and nice screenshots के साथ स्वच्छ भाषा भी है।

+0

धन्यवाद, यह वही है जो मैं ढूंढ रहा था। – Mikka

+1

यह भी देखें [हैकेज पर FunGEn] (http://hackage.haskell.org/package/FunGEn), अद्यतन करने की आवश्यकता है। –

2

Wings3D एरलांग पैकेज है जिसका प्रयोग वायरफ्रेम आकार को आकर्षित करने के लिए किया जाता है। मुझे लगता है कि यह गेम में प्रयोग किया जाता है, लेकिन यह मेरा बैग नहीं है ...

+1

github.com/dgud/esdl/tree/master लाइब्रेरी का प्रयोग wings3d में किया जाता है, लेकिन लेखक ओपनग्लॉग पर जाने के लिए wxerlang का उपयोग करने की अनुशंसा करता है। – Christian

1

अच्छा, मुझे यकीन नहीं है कि इससे कितना मदद मिलती है, और आपने शायद इसके बारे में पहले ही सुना होगा, लेकिन एक स्पष्ट शुरुआत की तरह लगता है: यहां जैक और डेक्सटर पर article

+1

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

+0

लिस्प का उपयोग करने वाला एक और गेम "दुर्व्यवहार" था, जो अब सार्वजनिक डोमेन है। हालांकि, फिर, शायद लिस्प का सबसे कार्यात्मक उपयोग नहीं है। – Ken

+1

लिस्प एक वैसे भी शुद्ध 'कार्यात्मक प्रोग्रामिंग भाषा' नहीं है। आमतौर पर यह बहु-प्रतिमान है और कई अन्य प्रतिमानों (तर्क, नियम, संबंध, बाधाओं, एजेंटों, ...) को शामिल करने का समर्थन करता है। तो कोई वास्तविक लिस्प कार्यक्रम खुशी से अनिवार्य, कार्यात्मक, ऑब्जेक्ट उन्मुख और अन्य प्रोग्रामिंग शैलियों को मिलाएगा। –

4

थोड़ा दिनांकित, लेकिन this एक्सएनए गेम विकास ढांचे के साथ एफ # का उपयोग करने के तरीके की एक श्रृंखला में पहला है। आपको ब्लॉग F# for Game Development में कुछ उपयोगी सामग्री भी मिल सकती है।

7

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

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

7

यदि आप गेम के नेटवर्क पक्ष में रुचि रखते हैं, तो Joel Reymont ने अपने अनुभवों के बारे में एक ऑनलाइन Poker server कोडिंग के बारे में लिखा है। मुझे लगता है कि उन्होंने कम से कम तीन अलग-अलग कार्यान्वयन (लिस्प, एरलांग, हास्केल) किया था। दुर्भाग्यवश, उनकी सामग्री इंटरनेट पर बिखरी हुई है। यहाँ दो संकेत आप उपयोगी लग सकते हैं:

संपादित करें:

यहाँ कुछ अनुवर्ती संकेत दिए गए और इसके बाद के संस्करण दस्तावेजों को बदल दिया है कि से लिंक कर रहे हैं।

संपादित द्वितीय:

योएल जाहिरा तौर पर, के बाद से अपने पोकर कोड बेच दिया है इसलिए यह नहीं रह गया है open source के रूप में उपलब्ध है।

+0

कि आखिरी लिंक ने पार्सर से नरक को भ्रमित कर दिया है। उम्मीद है कि मैंने वेब अभिलेखागार का संदर्भ नहीं देकर इसे खराब कर दिया है। – nlucaroni

+1

हो सकता है कि आप अभी भी tinyurl या ऐसा कुछ इस्तेमाल कर सकते थे :) – Mikka

3

Frag मुन मान चेओंग द्वारा हास्केल में लिखा गया एक 3 डी पहला व्यक्ति शूटिंग गेम है। यह जीपीएल के तहत लाइसेंस प्राप्त है। फ्रैग का डिजाइन और कार्यान्वयन मुन के स्नातक थीसिस, कार्यात्मक प्रोग्रामिंग और 3 डी खेलों में वर्णित है।

1

जैसा कि नाथन सैंडर्स ऊपर बताते हैं ("हैकेल गेम्स जीसी" पर अपने स्वयं के गुगल से) एक समय था जब हास्केल (?) जीसी के साथ कुछ गंभीर समस्याएं थीं ... this old article (6 साल पुराना, मुझे पता है) this question भी देखें। चूंकि Frag आस-पास है, मुझे लगता है कि उन्होंने जीएचसी के बाद के संस्करणों में कम से कम कुछ चीजें तय करनी होंगी।

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