Convert Flash games to HTML5

Sep 13, 2025
कैसे करना है
Convert Flash games to HTML5

एचटीएमएल 5 और जावास्क्रिप्ट के पक्ष में एडोब द्वारा फ्लैश को धीरे-धीरे छोड़ दिया जा रहा है; इसका आधिकारिक अंत-जीवन वर्ष 2020 के लिए निर्धारित है। और यही वह लेख है जहां यह लेख आसान हो जाएगा।

  • 2018 के लिए 2004 की फ्लैश वेबसाइट का पुनर्निर्माण करें
  • [2 9]

    नीचे वर्णित टिप्स एचटीएमएल 5 गेम डेवलपर्स को जावास्क्रिप्ट में बदलने के दौरान सामान्य गलतियों से बचें, साथ ही पूरी विकास प्रक्रिया को जितना संभव हो सके उतना आसानी से चलते हैं। आपको केवल जावास्क्रिप्ट, वेबजीएल और फ़ासर ढांचे का मूल ज्ञान चाहिए।

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

    अपनी डिजाइन प्रक्रिया को सरल रखना पसंद है? ए [3 9] वेबसाइट निर्माता

और दाईं ओर [3 9] वेब होस्टिंग प्रदाता इसे इस तरह रख सकता है।

01. एचटीएमएल 5 गेम अनुभव में सुधार करें

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

  • [3 9] मोबाइल उपकरणों का समर्थन

फ्लैश से जावास्क्रिप्ट से कनवर्ट करना व्यापक दर्शकों तक पहुंचने की अनुमति देता है - मोबाइल डिवाइस के उपयोगकर्ता टचस्क्रीन नियंत्रण के लिए समर्थन आमतौर पर गेम में लागू करने की आवश्यकता होती है। सौभाग्य से, एंड्रॉइड और आईओएस दोनों डिवाइस अब वेबजीएल का भी समर्थन करते हैं, इसलिए 30 या 60 एफपीएस प्रतिपादन आमतौर पर आसानी से हासिल किया जा सकता है। कई मामलों में, 60 एफपीएस किसी भी समस्या का कारण नहीं बनेंगे, जो केवल समय के साथ सुधार करेगा, क्योंकि मोबाइल डिवाइस अधिक से अधिक प्रदर्शनकारी हो जाते हैं।
  • [3 9] प्रदर्शन सुधारना

  • जब एक्शनस्क्रिप्ट और जावास्क्रिप्ट की तुलना करने की बात आती है, तो उत्तरार्द्ध तेज़ होता है। इसके अलावा, एक गेम को कनवर्ट करना गेम कोड में उपयोग किए जाने वाले एल्गोरिदम पर पुनर्विचार करने का एक अच्छा अवसर है। जावास्क्रिप्ट गेम डेवलपमेंट के साथ आप उन्हें अनुकूलित कर सकते हैं या मूल डेवलपर्स द्वारा छोड़े गए अप्रयुक्त कोड को पूरी तरह से स्ट्रिप कर सकते हैं।
  • [3 9] बग फिक्सिंग और गेमप्ले में सुधार करना

  • गेम के स्रोत कोड को देखने वाले नए डेवलपर्स होने से ज्ञात बग को ठीक करने या नए और बहुत दुर्लभ लोगों की खोज करने में मदद मिल सकती है। यह खेल को खिलाड़ियों के लिए कम परेशान करना होगा, जो उन्हें आपकी साइट पर अधिक समय बिताने और उन्हें अपने अन्य गेमों को आजमाने के लिए प्रोत्साहित करेगा।
  • [3 9] वेब Analytics जोड़ना

  • यातायात को ट्रैक करने के अलावा, वेब एनालिटिक्स का उपयोग ज्ञान इकट्ठा करने के लिए भी किया जा सकता है कि खिलाड़ी एक खेल में कैसे व्यवहार करते हैं और जहां वे गेमप्ले के दौरान अटक जाते हैं।
  • [3 9] स्थानीयकरण जोड़ना

  • यह दर्शकों को बढ़ाएगा और आपके खेल को खेलने वाले अन्य देशों के बच्चों के लिए महत्वपूर्ण है। या शायद आपका खेल अंग्रेजी में नहीं है और आप उस भाषा का समर्थन करना चाहते हैं? [2 9]

    02. 60 एफपीएस प्राप्त करें

    जब जावास्क्रिप्ट गेम डेवलपमेंट की बात आती है, तो यह इन-गेम बटन, विजेट और अन्य जीयूआई तत्वों के लिए एचटीएमएल और सीएसएस का लाभ उठाने के लिए मोहक हो सकती है। हमारी सलाह यहां सावधान रहना है। यह counterintuitive है, लेकिन वास्तव में leveraging डीओएम तत्व जटिल खेलों पर कम प्रदर्शनकारी है और यह मोबाइल पर अधिक महत्व प्राप्त करता है। यदि आप सभी प्लेटफार्मों पर निरंतर 60 एफपीएस प्राप्त करना चाहते हैं, तो एचटीएमएल और सीएसएस से इस्तीफा देना आवश्यक हो सकता है।

    गैर-इंटरैक्टिव जीयूआई तत्व, जैसे स्वास्थ्य सलाखों, एएमएमओ बार या स्कोर काउंटर को नियमित छवियों ('फ़ेसर.मेज' वर्ग) का उपयोग करके फेसर में आसानी से कार्यान्वित किया जा सकता है, '.crop' संपत्ति को ट्रिमिंग और 'फेसर के लिए ले जाया जा सकता है। सरल पाठ लेबल के लिए पाठ 'कक्षा।

    बटन और चेकबॉक्स जैसे इंटरैक्टिव तत्व अंतर्निहित 'फ़ेसर.बटन' क्लास का उपयोग करके कार्यान्वित किए जा सकते हैं। अन्य, अधिक जटिल तत्वों को विभिन्न सरल प्रकारों, जैसे समूह, छवियों, बटन और टेक्स्ट लेबल से बना दिया जा सकता है।

    03. कस्टम फोंट लोड हो रहा है

    यदि आप एक कस्टम वेक्टर फ़ॉन्ट (जैसे टीटीएफ या ओटीएफ) के साथ पाठ प्रस्तुत करना चाहते हैं, तो आपको यह सुनिश्चित करने की ज़रूरत है कि किसी भी पाठ को प्रस्तुत करने से पहले फ़ॉन्ट को ब्राउज़र द्वारा पहले ही लोड किया जा चुका है। फेसर v2.6 इस उद्देश्य के लिए समाधान प्रदान नहीं करता है, लेकिन एक और पुस्तकालय का उपयोग किया जा सकता है - वेब फ़ॉन्ट लोडर [8 9] ।

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

    [9 3] @ फ़ॉन्ट-फेस { // यह नाम आप जेएस में उपयोग करेंगे फ़ॉन्ट-परिवार: 'गुनप्ले'; // फ़ॉन्ट फ़ाइल के लिए यूआरएल, सापेक्ष या पूर्ण हो सकता है एसआरसी: यूआरएल ('.. / फोंट / gunplay.ttf') प्रारूप ('Truetype'); फ़ॉन्ट-वजन: 400; } [9 4]

    अब WebFontConfig नामक एक वैश्विक चर को परिभाषित करें। इसके रूप में सरल कुछ आमतौर पर पर्याप्त होगा:

    [9 3] var webfontconfig = { 'कक्षाएं': गलत, 'टाइमआउट': 0, 'सक्रिय': फ़ंक्शन () { // फ़ॉन्ट सफलतापूर्वक लोड हो गया है ... }, 'कस्टम': { 'परिवार': ['गनप्ले'], // पहले उल्लिखित सीएसएस के लिए यूआरएल 'URL': ['शैलियों / fonts.css'] } };

    अपने कोड को ऊपर दिखाए गए 'सक्रिय' कॉलबैक में रखना याद रखें। और बस!

    04. खेल को सहेजें

    अब हम जावास्क्रिप्ट रूपांतरण के लिए हमारे फ्लैश के मध्य बिंदु में हैं - यह शेडर्स की देखभाल करने का समय है। एक्शनस्क्रिप्ट में स्थानीय डेटा को लगातार संग्रहीत करने के लिए आप 'Sharewobject' वर्ग का उपयोग करेंगे। जावास्क्रिप्ट में, सरल प्रतिस्थापन है स्थानीय स्टोरेज एपीआई [8 9] , जो बाद में पुनर्प्राप्ति, जीवित पृष्ठ पुनः लोड के लिए तारों को संग्रहीत करने की अनुमति देता है।

    डेटा बचत बहुत आसान है:

    [10 9] var प्रगति = 15; localstorage.setitem ('mygame.progress', प्रगति); [9 4]

    ध्यान दें कि उपरोक्त उदाहरण में 'प्रगति' चर, जो एक संख्या है, को एक स्ट्रिंग में परिवर्तित कर दिया जाएगा।

    लोडिंग भी सरल है, लेकिन याद रखें कि यदि वे मौजूद नहीं हैं तो पुनर्प्राप्त मूल्य तार या शून्य होंगे।

    [10 9] var progress = parseint (localstorage.getitem ('mygame.progress')) || 0;

    यहां हम यह सुनिश्चित कर रहे हैं कि रिटर्न वैल्यू एक संख्या है। यदि यह अस्तित्व में नहीं है, तो 0 को 'प्रगति' चर को सौंपा जाएगा।

    आप अधिक जटिल संरचनाओं को भी स्टोर और पुनर्प्राप्त कर सकते हैं, उदाहरण के लिए, JSON:

    [10 9] var आँकड़े = {'लक्ष्यों': 13, 'जीत': 7, 'नुकसान': 3, 'ड्रा': 1 }; localstorage.setitem ('mygame.stats', json.stringify (आँकड़े)); ... var आँकड़े = json.parse (localstorage.getitem ('mygame.stats')) || {};

    कुछ मामले हैं जब 'लोकलस्टोरेज' ऑब्जेक्ट उपलब्ध नहीं होगा। उदाहरण के लिए, फ़ाइल का उपयोग करते समय: // प्रोटोकॉल या जब कोई पृष्ठ किसी निजी विंडो में लोड होता है। आप यह सुनिश्चित करने के लिए 'कोशिश करें और कैच' कथन का उपयोग कर सकते हैं, यह सुनिश्चित करने के लिए कि आपका कोड दोनों काम करना जारी रखेगा और डिफ़ॉल्ट मानों का उपयोग करेगा, जो नीचे दिए गए उदाहरण में दिखाया गया है:

    [10 9] कोशिश करो { var progress = localstorage.getitem ('mygame.progress'); } कैच (अपवाद) { // लोकलस्टोरेज उपलब्ध नहीं है, डिफ़ॉल्ट मानों का उपयोग करें } [9 4]

    याद रखने की एक और बात यह है कि संग्रहीत डेटा प्रति डोमेन सहेजा गया है, प्रति यूआरएल नहीं। तो यदि कोई जोखिम है कि एक डोमेन पर कई गेम होस्ट किए जाते हैं, तो बचत करते समय उपसर्ग (नेमस्पेस) का उपयोग करना बेहतर होता है। उपरोक्त उदाहरण में, 'MyGame'। एक उपसर्ग है और आप आमतौर पर इसे खेल के नाम से बदलना चाहते हैं।

    यदि आपका गेम आईफ्रेम में एम्बेडेड है, तो स्थानीय स्टोरेज आईओएस पर नहीं बनेगा। इस मामले में, आपको इसके बजाय मूल iframe में डेटा स्टोर करने की आवश्यकता होगी।

    05. डिफ़ॉल्ट टुकड़ा शेडर

    [13 9]

    फेसर और पिक्सेज में टिनटिंग विधि को बदलने के लिए एक कस्टम डिफ़ॉल्ट शेडर का उपयोग किया जा सकता है। टैंक फ्लैश व्हाइट जब हिट

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

    [10 9] फंक्शन प्रीलोड () { this.load.shader ('filename.frag', 'शेडर्स / filename.frag'); } फंक्शन बनाएं () { var renderer = this.renderer; var batch = renderer.spritebatch; batch.defaultshader = नया pixi.abstractfilter (this.cache.getshader ('filename.frag')); batch.setcontext (renderer.gl); } [9 4]

    06. टिनटिंग विधि बदलें

    फेसर और पिक्सेज में डिफ़ॉल्ट टिनटिंग विधियों को बदलने के लिए एक कस्टम डिफ़ॉल्ट शेडर का उपयोग किया जा सकता है। फेसर और पिक्सेज में टिनटिंग एक दिए गए रंग द्वारा बनावट पिक्सल को गुणा करके काम करता है। गुणा हमेशा रंगों को अंधेरा करता है, जो स्पष्ट रूप से कोई समस्या नहीं है; यह फ्लैश टिनटिंग से अलग है। हमारे खेलों में से एक के लिए हमें फ्लैश के समान टिनटिंग को लागू करने की आवश्यकता थी और निर्णय लिया कि एक कस्टम डिफ़ॉल्ट शेडर का उपयोग किया जा सकता है। नीचे इस तरह के एक टुकड़ा शेडर का एक उदाहरण है:

    [10 9]// विशिष्ट टिंट संस्करण, फ्लैश टिनटिंग के समान जो जोड़ता है // रंग के लिए और गुणा नहीं करता है। एक रंग का नकारात्मक // इस शेडर के लिए ठीक से काम करने के लिए आपूर्ति की जानी चाहिए, यानी सेट // sprite.tint 0 से 0 तक स्प्राइट को सफेद करने के लिए। प्रेसिजन लोप फ्लोट; अलग-अलग vec2 vtexturecoord; अलग-अलग vec4 vcolor; वर्दी sampler2d usampler; शून्य मुख्य (शून्य) { Vec4 एफ = Texture2D (Usampler, VtextureCoord); फ्लोट ए = क्लैंप (vcolor.a, 0.00001, 1.0); gl_fragcolor.rgb = f.rgb * vcolor.a + क्लैंप (1.0 - vcolor.rgb / a, 0.0, 1.0) * vcolor.a * f.a; gl_fragcolor.a = f.a * vcolor.a; } [9 4]

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

    [10 9] sprite.tint = 0x000000; // यह स्प्राइट को सफेद रंग में रंग देता है Sprite.tint = 0x00ffff; // यह लाल देता है

    07. ओवरड्रा का निरीक्षण करें

    Convert Flash games to HTML5: Overdraw shader

    बाईं तरफ की तस्वीर बताती है कि एक खिलाड़ी कैसे खेल को देखता है, जबकि दाईं ओर एक ओवरड्रा शेडर को उसी दृश्य में लागू करने का प्रभाव प्रदर्शित करता है

    डिबगिंग के साथ मदद करने के लिए एक डिफ़ॉल्ट शेडर को प्रतिस्थापित करने के लिए भी लीवरेज किया जा सकता है। नीचे हमने समझाया है कि इस तरह के एक शेडर के साथ ओवरड्रा का पता लगाया जा सकता है।

    ओवरड्राडिंग तब होती है जब स्क्रीन पर कई या सभी पिक्सल कई बार प्रदान किए जाते हैं। उदाहरण के लिए, कई वस्तुएं एक ही स्थान ले रही हैं और एक दूसरे पर प्रस्तुत की जा रही हैं। प्रति सेकंड एक जीपीयू कितने पिक्सेल को भरने की दर के रूप में वर्णित कर सकते हैं। आधुनिक डेस्कटॉप जीपीयू में सामान्य 2 डी उद्देश्यों के लिए अत्यधिक भरने की दर है, लेकिन मोबाइल लोग बहुत धीमे हैं।

    स्क्रीन पर प्रत्येक पिक्सेल को पिक्सेज और फ़ेसर में डिफ़ॉल्ट ग्लोबल फ्रैगमेंट शेडर को प्रतिस्थापित करके कितनी बार लिखा गया एक आसान तरीका है:

    [10 9] शून्य मुख्य (शून्य) { gl_fragcolor.rgb + = 1.0 / 7.0; } [9 4]

    यह शेडर पिक्सेल को हल्का करता है जिन्हें संसाधित किया जा रहा है। संख्या 7.0 इंगित करता है कि पिक्सेल को सफेद करने के लिए कितने लिखने की आवश्यकता होती है; आप इस नंबर को अपनी पसंद के अनुसार ट्यून कर सकते हैं। दूसरे शब्दों में, स्क्रीन पर हल्का पिक्सल कई बार लिखे गए थे, और सफेद पिक्सेल कम से कम सात बार लिखे गए थे।

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

    08. भौतिकी इंजन आपके दोस्त क्यों हैं

    Convert Flash games to HTML5: Phaser physics debug

    छवि का बायां हिस्सा एक खेल से एक दृश्य है, जबकि दायां पक्ष शीर्ष पर प्रदर्शित फ़ेसर भौतिकी डीबग ओवरले के साथ एक ही दृश्य दिखाता है

    एक भौतिकी इंजन एक मिडिलवेयर है जो भौतिकी निकायों (आमतौर पर कठोर शरीर की गतिशीलता) और उनके टकराव को अनुकरण करने के लिए ज़िम्मेदार है। भौतिकी इंजन 2 डी या 3 डी रिक्त स्थान अनुकरण करते हैं, लेकिन दोनों नहीं। एक ठेठ भौतिकी इंजन प्रदान करेगा:

    • वेग, त्वरण, जोड़ों, और मोटर्स सेट करके ऑब्जेक्ट आंदोलन;
    • विभिन्न आकार प्रकारों के बीच टकराव का पता लगाना;
    • टकराव प्रतिक्रियाओं की गणना, यानी। जब वे टकराते हैं तो दो वस्तुओं को प्रतिक्रिया कैसेनी चाहिए।
    • [2 9]

      एक फ़ेसर प्लगइन है जो इस उद्देश्य के लिए अच्छी तरह से काम करता है। एकता गेम इंजन और गेममेकर स्टूडियो 2 में बॉक्स 2 डी का भी उपयोग किया जाता है।

      जबकि एक भौतिकी इंजन आपके विकास को तेज करेगा, वहां एक कीमत है जिसे आपको भुगतान करना होगा: कम रनटाइम प्रदर्शन। टकराव और गणना प्रतिक्रियाओं का पता लगाना एक सीपीयू-गहन कार्य है। आप मोबाइल फोन या चेहरे अपमानित प्रदर्शन के दृश्य में कई दर्जन गतिशील वस्तुओं तक सीमित हो सकते हैं, साथ ही 60 एफपीएस से नीचे गहरे फ्रेम दर भी सीमित हो सकते हैं।

      09. निर्यात ध्वनि

      यदि आपके पास एक .fla फ़ाइल के अंदर एक फ़्लैश गेम ध्वनि प्रभाव है, तो जीयूआई से उन्हें निर्यात करना संभव नहीं है (कम से कम एडोब एनिमेट सीसी 2017 में नहीं) इस उद्देश्य की सेवा करने वाले मेनू विकल्पों की कमी के कारण। लेकिन एक और समाधान है - एक समर्पित स्क्रिप्ट जो सिर्फ यही करती है:

      [10 9] फ़ंक्शन NormalizeFilename (नाम) { // एक camelcase नाम को snake_case नाम में परिवर्तित करता है वापसी name.replace (/ ([a-z]) / जी, '_ $ 1')। (/ ^ _ /, '') .toLowerCase (); } फंक्शन डिस्प्लेपैथ (पथ) { // फ़ाइल पथ को अधिक पठनीय बनाता है Unescape (पथ) लौटें। प्रासल ('फ़ाइल: ///', '')। प्रासल ('|', ':'); } fl.outputpanel.clear (); अगर (fl.getdocumentdom ()। library.getselectedems ()। लंबाई & gt; 0) // केवल चयनित आइटम प्राप्त करें var पुस्तकालय = fl.getdocumentdom ()। पुस्तकालय। GetEtelectedEms (); अन्य // सभी आइटम प्राप्त करें var पुस्तकालय = fl.getdocumentdom ()। पुस्तकालय। Items; // निर्यात गंतव्य निर्देशिका के लिए उपयोगकर्ता से पूछें var root = fl.browseforfolderurl ('एक फ़ोल्डर का चयन करें'); var त्रुटियों = 0; के लिए (var i = 0; i & lt; librage.length; i ++) { var आइटम = पुस्तकालय [i]; यदि (item.itemtype! == 'ध्वनि') जारी रखें; var पथ = रूट + '/'; यदि (item.originalcompressiontype === 'रॉ') पथ + = normalizefilename (item.name.split ('।')
      ) + '.wav'; अन्य पथ + = normalizefilename (item.name); var सफलता = rete.exporttofile (पथ); अगर (सफलता) त्रुटियां + = 1; Fl.Trace (DisplayPath (पथ) + ':' + (सफलता? 'ठीक है': 'त्रुटि')); } fl.trace (त्रुटियों + 'त्रुटि (ओं)'); [9 4]

      ध्वनि फ़ाइलों को निर्यात करने के लिए स्क्रिप्ट का उपयोग कैसे करें:

      1. अपने कंप्यूटर पर एक .jsfl फ़ाइल के रूप में ऊपर कोड को सहेजें।
      2. एडोब एनिमेट के साथ एक .fla फ़ाइल खोलें।
      3. कमांड का चयन करें और जीटी; शीर्ष मेनू से कमांड चलाएं और खुलने वाली संवाद में स्क्रिप्ट का चयन करें।
      4. अब एक और संवाद फ़ाइल निर्यात गंतव्य निर्देशिका का चयन करने के लिए पॉप अप करती है।

      हॊ गया! अब आपके पास निर्दिष्ट निर्देशिका में डब्ल्यूएवी फाइलें होनी चाहिए। क्या करना बाकी है, उदाहरण के लिए, एमपी 3, ओजीजी या एएसी। (यदि आपके पास सुरक्षित रखने के लिए गेम फाइलें हैं, तो सभ्य में अपग्रेड करें [3 9] घन संग्रहण

    ।)

    10. एमपी 3 का उपयोग कैसे करें

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

    फिर भी, एमपी 3 के बारे में याद रखने के लिए आपको दो महत्वपूर्ण चीजें हैं:

    • डिजाइनरों के लिए 5 आकस्मिक खेल
    • अपने स्वयं के वेबजीएल भौतिकी खेल का निर्माण
    • एकता संपत्ति आयात पाइपलाइन को समझें
    • [2 9]

    कैसे करना है - सर्वाधिक लोकप्रिय लेख

    How to storyboard in Photoshop

    कैसे करना है Sep 13, 2025

    (छवि क्रेडिट: मार्क इवान लिम) [1 9] फ़ोटोशॉप में..


    The essential guide to foreshortening in art

    कैसे करना है Sep 13, 2025

    (छवि क्रेडिट: रोब लुन) [1 9] यदि आप सोच रहे हैं कि..


    वास्तविकता कैप्चर के साथ 3 डी स्कैन कैसे बनाएं

    कैसे करना है Sep 13, 2025

    (छवि क्रेडिट: फिल नोलन) [1 9] रियलिटी कैप्चर अपन..


    Make grass in Unreal Engine

    कैसे करना है Sep 13, 2025

    आर्किटेक्चरल विजुअलाइजेशन बनाते समय आपको बहुत स..


    स्केलेबल उत्तरदायी घटक बनाएं

    कैसे करना है Sep 13, 2025

    जब भी हम रखरखाव और स्केलेबल वेबसाइटों के निर्माण ..


    Make a composite in Photoshop

    कैसे करना है Sep 13, 2025

    एडोब आज वीडियो ट्यूटोरियल की एक नई श्रृंखला लॉन्च कर रहा है जिसे इसे अब ब�..


    Create perspective by warping your textures in Photoshop

    कैसे करना है Sep 13, 2025

    मैं एक दृढ़ आस्तिक हूं कि आपको पूरी तरह से आपके लि�..


    Create simple illustrations for the web

    कैसे करना है Sep 13, 2025

    मैं बैठ गया, कुछ संगीत खेला, रोशनी मंद हो गया और मे�..


    श्रेणियाँ