खेल देव के लिए अच्छे जेएस पुस्तकालय क्या हैं? [बन्द है]


56

यदि मैं पाठ और चित्रमय (2d) दोनों को एक सरल खेल लिखने का निर्णय लेता हूं तो मैं किन पुस्तकालयों का उपयोग करूंगा? (मान लें कि हम HTML5 संगत ब्राउज़र का उपयोग कर रहे हैं)

मुख्य बातें जो मैं सोच सकता हूं

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

3
HTML5 गेम
लिबास

क्या? आप केवल शुद्ध जावास्क्रिप्ट के साथ वह सब कर सकते हैं। हालांकि, नेटवर्किंग के लिए सॉकेट।
जेकोरा

आपको स्टेज दिलचस्प लग सकता है (मैं इसका लेखक हूं)।
अली शाकिबा

जवाबों:


25

jQuery और MooTools , JavaScript लाइब्रेरी के लिए बहुत बढ़िया हैं; मैं खुद jQuery पसंद करते हैं। यदि आप DOM का उपयोग करते हैं तो कोई भी आपके JS गेम डेवलपमेंट में आपकी सहायता करेगा। यदि आप कैनवस प्रतिपादन के साथ जाते हैं, तो मुझे लगता है कि आपको उन पुस्तकालयों में से एक का उपयोग करना चाहिए, लेकिन आपको कैनवस के कार्यों को सीखने की आवश्यकता होगी। यहाँ एक ट्यूटोरियल है जो आपको ब्रेकआउट क्लोन बनाकर कैनवस से परिचित कराता है , इसलिए यह ठीक उसी तरह का हो सकता है जैसा आप देख रहे हैं (और यह jQuery का उपयोग करता है)।

स्प्राइट्स को एनिमेटेड करना एक छवि src को बदलने, या कई छवियों को प्रीलोड करने और उन्हें स्वैप करने, या एक कैनवास में बस एक एनीमेशन के फ़्रेम खींचने का मामला है। उपरोक्त पुस्तकालय इनमें से किसी भी मामले में मदद कर सकते हैं। लाइब्रेरी इनपुट के साथ भी मदद करती है (ऑनकीप्रेस और ऑनस्मोसोव जैसी घटनाओं को देखें)।

संसाधनों को प्रीलोड करने के लिए, मुझे कुछ ऐसे खेल प्रतीत होते हैं जो एक "स्प्राइट शीट" छवि का उपयोग करते हैं ( यहां Google के Pacman गेम के लिए एक है )। मेरा मानना ​​है कि वे मूल रूप से एक टाइल आकार का एक DIV बनाते हैं, सीएसएस पृष्ठभूमि-छवि संपत्ति को स्प्राइट शीट पर सेट किया गया है और पृष्ठभूमि-स्थिति संपत्ति स्प्राइट शीट पर टाइल के ऑफसेट पर सेट की गई है। मैंने एक लाइब्रेरी नहीं देखी है जो आपके लिए ऐसा करेगी, लेकिन jQuery या MooTools DIV को गतिशील रूप से बनाने और इसके CSS में हेरफेर करने में आपकी मदद कर सकते हैं। अन्यथा, प्रीलोडिंग छवियां उन छवियों के <img>टैग बनाने का मामला है जिन्हें आप पहले से लोड करना चाहते हैं, और उन्हें पेज पर नहीं जोड़ना (या अदृश्य रूप से जोड़ना)। यहाँ एक ब्लॉग पोस्ट है आपके लिए छवियों को प्रीलोड करने के लिए jQuery का उपयोग करके फ़ंक्शन के लिए कुछ कोड है।

SoundManager 2 को उपयोग करने के लिए JS साउंड लाइब्रेरी लगती है; मुझे पता है कि वेन्थिया इसका उपयोग करता है, और Google के पैकमैन ने ध्वनियों को खेलने के लिए पेज पर एक छिपी फ्लैश फ़ाइल का उपयोग करके कुछ समान (या कम से कम एक ही तकनीक) का उपयोग किया था।

नेटवर्किंग के लिए, jQuery आपके लिए AJAX को संभाल सकता है , या यदि आप अधिक वास्तविक समय नेटवर्किंग चाहते हैं (और ऐसा करने के लिए सर्वर है), तो जावास्क्रिप्ट सॉकेट में देखें । मुझे नहीं पता कि इसके लिए कोई स्थिर पुस्तकालय है या नहीं, लेकिन आप इस या इस पर गौर कर सकते हैं । अनिवार्य रूप से यह पृष्ठ पर एक छिपी हुई जावा या फ्लैश फ़ाइल का उपयोग करता है ताकि आप जावास्क्रिप्ट के साथ सच्चा सॉकेट संचार कर सकें , जो कि AJAX मतदान की तुलना में बहुत तेज है और "AJAX पुश" की तुलना में थोड़ा अधिक कुशल है । हालांकि, सबसे अधिक संभावना है, AJAX पुश वह होगा जो आप चाहते हैं, और APE (Ajax Push Engine) संभवतः उपयोग करने के लिए पुस्तकालय है।

इसके अलावा, यहां एक Google टेक "वेब के लिए एक जावास्क्रिप्ट-आधारित गेम इंजन का निर्माण" के बारे में बात की गई है । साफ-सुथरा दिखता है।


2
यह उत्तर थोड़ा रूढ़िवादी है; अगर वह एचटीएमएल 5 ब्राउज़रों का उपयोग करना चाहता है, तो वह कैनवास के लिए जा सकता है और एचटीएमएल 5 पुस्तकालयों में से एक का उपयोग कर सकता है (प्रश्न पर मेरी टिप्पणी देखें)। गेम्स के लिए DOM और CSS का उपयोग करना एक हैक की तरह लगता है (हालांकि कुछ मामलों में एक व्यावहारिक हैक)।
ओबेरम्सी

2
क्या यह एक हैक की तरह लग रहा है? Google को अपने PacMan लोगो के साथ प्योर DOM & CSS का उपयोग करने में कोई समस्या नहीं थी और मुझे अपने होमपेज पर मेरा पोंग गेम काफी पसंद है । वास्तव में ईमानदार होने के लिए, कैनवास एक हैक की तरह लगता है, ग्राफिक्स के एक वर्ग को हैक करके एक पृष्ठ में रेंडर करता है अन्यथा डोम का वर्चस्व होता है। लेकिन उस ओर WebGL के साथ अफसोस और यह स्पष्ट है कि ब्राउज़र हैवीवेट do-everything एप्लिकेशन बन जाएगा यदि यह पहले से ही नहीं है। मैं पचाता हूं ...
Ricket

यदि वह ऑडियो, नेटवर्किंग, टेक्स्ट रेंडरिंग का उपयोग करना चाहता है, तो उसे एचटीएमएल 5 तैयार ब्राउज़र का उपयोग करना होगा। Alas कैनवास एक अच्छा पिक होगा। यदि आप DOM और CSS के साथ चिपके रहते हैं तो आप अभी तक सीमित हैं क्योंकि ये प्रौद्योगिकियाँ पहले से ही कुछ मान्यताओं के साथ एक प्रस्तुति परत बनाती हैं (पाठ प्रवाह, लेयरिंग, किसी पाठ दस्तावेज़ के लिए एक दृश्य ग्राफ की तरह)। जबकि कैनवस के साथ आप किसी भी तरह से फिट दिखने वाले पिक्सल में हेरफेर कर सकते हैं, जो एसडीएल या ओपेंग्ल के शीर्ष पर 'सामान्य', कच्चे गेम इंजन के करीब है।
ओबेरहस्सी

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

1
हाँ, यह खेल पर निर्भर करता है। लेकिन वह एचटीएमएल 5 के लिए पूछता है और आपका जवाब ज्यादातर फ्लैश और डोम स्तर 1 :) के बारे में है। यदि वह एचटीएमएल 5 के विकास के लिए खून बहाना चाहता है, तो उसे वापस न करें।
ओबेरहमेसी

12

जब मैंने थोड़ी देर पहले जावास्क्रिप्ट इंजन का मूल्यांकन किया तो मेरा पसंदीदा चालाक था:

http://craftyjs.com/

विकल्पों में से एक कमी थी जिस पर मुझे विचार करना था, और कुछ अन्य जो मुझे पसंद थे, वे थे:

http://easeljs.com/

http://www.limejs.com/

http://code.google.com/p/casualjs/

(संयोग से, एक और विकल्प जो शुरू में बहुत सुस्त दिखता है, वह है http://impactjs.com/, लेकिन इस पर विचार करने में पैसे खर्च होते हैं और जिन अन्य विकल्पों पर मैंने ध्यान दिया, वे खुले स्रोत के इंजन थे, कुछ चमक वाले चूक थे, जैसे प्रदर्शन तत्वों को संलग्न करने में असमर्थता एक उत्तराधिकार।)


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


आज आप क्या सुझाव देंगे? 4 वर्षों के बाद
पूया एस्टाखरी

1
खैर अद्यतन 1.5 साल पहले से था, और मैं अभी भी सुझाव देता हूं।
jhocking

7

प्रभाव खेल इंजन (जावास्क्रिप्ट) 2 डी, टाइल / स्प्राइट आधारित खेल के लिए बढ़िया है। वेबसाइट यह बताने का बहुत अच्छा काम नहीं करती है कि इसके बारे में क्या शानदार है, लेकिन जैसे ही आप उत्कृष्ट दस्तावेज में खोदते हैं, आप देखेंगे कि आपके लिए कितना कवर किया गया है:

  • spriting
  • टक्कर की पहचान हुई है
  • स्तर का संपादन
  • परिसंपत्ति प्रबंधन
  • ऑडियो
  • इनपुट और नियंत्रण
  • टाइल्स निर्माण और प्रबंधन
  • लेयरिंग
  • एनीमेशन
  • प्रदर्शन (एक फ्रैमर्ट के लिए ताला)
  • क्रॉस-ब्राउज़र समर्थन और सार
  • मेजबानी
  • embedding
  • HUD समर्थन करते हैं

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


4
दुर्भाग्य से प्रभाव इंजन पूरी तरह से छोड़ दिया गया प्रतीत होता है।
सुस्ती

6

मैं JawsJS - http://jawsjs.com/ नामक एक कैनवास 2D गेम इंजन को बनाए रखता हूं

स्रोत @ https://github.com/ippa/jaws

क्लिफ नोट्स:

  • पठनीय, प्रलेखित कोड
  • 12+ बंडल्ड डॉक्यूमेंटेड उदाहरण
  • स्प्राइट (), स्प्राइटशीट () और एनीमेशन () जैसे उपयोगी निर्माणकर्ता
  • गेम स्टेट्स - बेहतर संगठित कोड के लिए आपके गेम के अलग सेक्शन
  • एसेट्स - खेल शुरू होने से पहले जबड़े आपकी सभी संपत्तियों को लोड कर देंगे
  • किसी अन्य जावास्क्रिप्ट लाइब्रेरी पर निर्भर नहीं करता है
  • रूबी खेल लिब के विकास के वर्षों से सीखा सबक


4

मैं हाल ही में इस क्षेत्र में कुछ शोध कर रहा हूं, इसलिए मुझे अपने $ 0.02 में चिप करने दें:

PlayN Google से एक क्रॉस प्लेटफॉर्म लाइब्रेरी है, जो जावा से जावास्क्रिप्ट / फ्लैश / एंड्रॉइड के लिए ऑब्जेक्ट ओरिएंटेड गेम को संकलित करता है। यह JSON (AJAX), डेटा मॉडल को संभालेगा, और अपडेट और रेंडरिंग के लिए इसमें शब्दार्थ विज्ञान है। बहुत मस्त माल।

प्रसंस्करण पुस्तकालय का उपयोग करने के लिए एक सरल है जो डिजाइनरों और कलाकारों के उद्देश्य से है। यह असाधारण रूप से उपयोग करने के लिए सरल है और आपको शानदार परिणाम दे सकता है। मैंने वैज्ञानिक मॉडलिंग के लिए जावा संस्करण का उपयोग किया है, और यह उपयोग करने के लिए एक खुशी है। 3D दृश्यों के लिए WebGL की आवश्यकता होगी, लेकिन 2D दृश्य बिना काम करते हैं।

तीन .js में कुछ बेहतरीन दिखने वाले डेमो हैं। इसके लिए WebGL की आवश्यकता है, लेकिन परिणाम इसके लायक प्रतीत होता है। ऑनलाइन भीकुछ उदाहरण हैं।

मेरे व्यक्तिगत लिंकडम्प में कुछ अन्य वस्तुएं हैं जो वेबलॉग से संबंधित हैं:




2

एक और जिसे मैं हाल ही में बड़ी दिलचस्पी से देख रहा हूं, वह है CreateJs । यह शामिल करने के लिए खुला स्रोत पुस्तकालयों का एक संग्रह है ...

अतिरिक्त यह EaslJs Box2D JS के साथ अच्छा खेलता है


1

पिक्सी प्लगइन्स

कॉन्ट्रासॉरस के रचनाकारों ने अपने व्यक्तिगत घटकों का एक बहुत कुछ जारी किया है !!!

उनके पास मैट्रिक्स ट्रांसफ़ॉर्मेशन , कैनवास एब्स्ट्रक्शन और कई और दिलचस्प चीजें करने के लिए कोड है ।

उनका कोड बहुत अच्छा है और उनके पुस्तकालय वास्तव में उपयोगी हैं।



1

अजीब बात है कि Google बंद लाइब्रेरी का उल्लेख नहीं किया गया है। इसमें एक बहुत बड़ा API है, जो अधिक ऑब्जेक्ट ओरिएंटेड कोडिंग स्टाइल की अनुमति देता है और इसमें कंपाइलर होता है।

मैंने अब तक केवल संकलक का उपयोग किया है लेकिन मैं आराम की पढ़ाई करने की योजना बना रहा हूं।


1

मैं आमतौर पर जॉजज का उपयोग करता हूं क्योंकि इसे स्थापित करना और मिनटों में गेम विकसित करना शुरू करना वास्तव में आसान है। यह वास्तव में उपयोगी डिफ़ॉल्ट कक्षाओं (तिलमैप, व्यूपोर्ट, स्प्राइट और अन्य) के बहुत सारे हैं जो वास्तव में खेल के विकास में मदद करते हैं।


1

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

2D खेल इंजन

  • Cocos2D इस समय कुछ ज्यादा ही फैशनेबल है। मैंने हाल ही में Stackoverflow पर Cocos2D के सवालों को यहाँ और वहाँ पर देखा।
  • प्रभाव , आप आधिकारिक वेबसाइट पर एक बेंचमार्क देख सकते हैं।

3 डी गेम इंजन

मोज़िला फाउंडेशन पलाडिन नामक एक 3 डी गेम इंजन पर काम कर रहा है । यह मोज़िला है कि यह वास्तव में मुझे चोट नहीं पहुँचा सकता है।


0

गेम-वाई-फाई, एक jQuery आधारित गेम इंजन भी है। उनके एपीआई पर सभ्य प्रलेखन है, साथ ही, कुछ ध्वनि आवरण एपीआई वे अपनी साइट पर लिंक करते हैं।

http://gamequery.onaluf.org/




0

टॉम यहाँ Scirra से, हम एक 2 आदमी टीम है जिसने Construct 2, HTML5 गेम निर्माता बनाया है । (नि: शुल्क संस्करण उपलब्ध)।

आप हमारे जैसे एक इंजन पर विचार करना चाह सकते हैं क्योंकि यह आपके लिए बहुत काम करता है। उदाहरण के लिए कोड में टकराव करने के लिए वास्तव में मुश्किल हो सकता है (बहुभुज टकराव सोचें)। आपकी सूची में सब कुछ आसानी से निर्माण 2 के साथ प्राप्त किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.