फ़ाइल सिस्टम ऐक्सेस एपीआई, फ़ाइल को पढ़ने, उसमें बदलाव करने, और उसे मैनेज करने की सुविधाएं देता है. जानें कि Construct 3 इस एपीआई का इस्तेमाल कैसे करता है.
परिचय
(यह लेख वीडियो के तौर पर भी उपलब्ध है.)
Construct 3 एक गेम एडिटर है. इसे थॉमस और ऐशले गुलेन ने डेवलप किया है. गेम एडिटर के मौजूदा तीसरे वर्शन के लिए, दोनों पूरी तरह से "ब्राउज़र को नया ऑपरेटिंग सिस्टम मानने पर [बेट]" हैं. इससे पहले, इसे Windows और NW.js के लिए बनाया गया था. एडिटर की मदद से बनाए गए कुछ गेम के बारे में जानने के लिए, इसके शोकेस को एक्सप्लोर करें या निर्देशों के साथ दिए गए टूर का इस्तेमाल करें. वेब की सुविधाओं की मदद से, "इंस्पिरेशन के लिए" दिए गए किसी भी उदाहरण पर क्लिक करके, तुरंत बदलाव करना शुरू किया जा सकता है.
Construct 3 में File System Access API
Construct, File System Access API की मदद से, लोकल फ़ाइलों में सेव करने का विकल्प देता है. साथ ही, यह क्लाउड में सेव करने (Google Drive, OneDrive, Dropbox) और प्रोजेक्ट फ़ाइल की कॉपी डाउनलोड करने का विकल्प भी देता है. Construct के डेवलपर ने जो आंकड़े इकट्ठा किए हैं उनसे पता चलता है कि 65% सेव, फ़ाइल सिस्टम ऐक्सेस एपीआई की मदद से किए जाते हैं. इससे पता चलता है कि ज़्यादातर ग्राहक इसका इस्तेमाल करना चाहते हैं.
सेव करने के लिए, यहां दिया गया स्निपेट showSaveFilePicker()
तरीके से FileSystemFileHandle
पाने के लिए ओरिजनल प्रोडक्शन कोड दिखाता है. इसके बाद, असली डेटा सेव किया जाता है. Construct, id
options पैरामीटर का इस्तेमाल करता है. id
फ़ील्ड में, उस डायरेक्ट्री का सुझाव दिया जा सकता है जिसमें फ़ाइल पिकर खुलता है. id
तय करके, ब्राउज़र अलग-अलग आईडी के लिए अलग-अलग डायरेक्ट्री को याद रख सकता है. इससे, आईडी के आधार पर डायलॉग को हमेशा एक ही डायरेक्ट्री में शुरू किया जा सकता है. उदाहरण के लिए, लेवल फ़ाइलें Documents/levels/
में खुल सकती हैं, जबकि टेक्सचर फ़ाइलें Images/textures/
में खुल सकती हैं. types
पैरामीटर, इस्तेमाल किए जा सकने वाले फ़ाइल टाइप का कलेक्शन होता है. इसमें स्थानीय भाषा में उपयोगकर्ता के लिए विज़ुअल description
और accept
ऑब्जेक्ट होता है. यह ऑब्जेक्ट, ऑपरेटिंग सिस्टम को बताता है कि शुरुआत में सिर्फ़ MIME टाइप application/x-construct3-project
वाली .c3p
फ़ाइलें स्वीकार की जाएं.
let fileHandle = null;
try {
fileHandle = await window["showSaveFilePicker"]({
id: "save-project-file",
types: [
{
description: lang("ui.project-file-picker.c3-single-file-project"),
accept: {
"application/x-construct3-project": [".c3p"],
},
},
],
});
} catch (err) {
// Assume user cancelled, or permission otherwise denied.
return;
}
Construct टीम को उपयोगकर्ता के फ़ाइल सिस्टम में फ़ाइलों के साथ काम करना काफ़ी आसान लगा. यह ऐप्लिकेशन, डेस्कटॉप पर काम करने वाले ऐप्लिकेशन की तरह ही काम करता है. साथ ही, इसे दूसरे सॉफ़्टवेयर के साथ आसानी से इंटिग्रेट किया जा सकता है. उदाहरण के लिए, बैकअप सॉफ़्टवेयर, जो उपयोगकर्ताओं की फ़ाइलों का बैकअप ले सकता है. इसके अलावा, यह अन्य जगहों पर आसानी से काम भेजने या बाहरी टूल की मदद से फ़ाइलों में बदलाव करने के लिए भी इस्तेमाल किया जा सकता है. वे File System Access API का इस्तेमाल, कई अन्य कामों के लिए भी करते हैं. जैसे, बैकअप फ़ोल्डर चुनना या ऐनिमेशन जैसी ऐसेट इंपोर्ट करना.
बड़ी फ़ाइलों और फ़ोल्डर के साथ काम करना
Construct के कुछ ग्राहक, सैकड़ों मेगाबाइट के बहुत बड़े प्रोजेक्ट पर काम करते हैं. इतना ज़्यादा काम एक फ़ाइल में सेव करने में काफ़ी समय लगता है. इसके बाद, उसे क्लाउड सेवा पर अपलोड करने में और भी ज़्यादा समय लगता है. File System Access API की मदद से, बेहतर सुविधाओं वाले उपयोगकर्ता, किसी लोकल फ़ोल्डर में अलग-अलग फ़ाइलों में अपनी सभी एसेट के साथ काम कर सकते हैं. इससे फ़ाइलों को बहुत तेज़ी से सेव किया जा सकता है, क्योंकि सिर्फ़ बदली गई फ़ाइलों को अपडेट करना होता है.
वहीं से जारी रखना जहां आपने छोड़ा था
फ़ाइल और डायरेक्ट्री, दोनों के हैंडल को IndexedDB में सीरियलाइज़ किया जा सकता है. इससे Construct, हाल ही में खोले गए प्रोजेक्ट की सूची दिखा सकता है. यह सूची सभी सेशन में सेव रहती है, ताकि उपयोगकर्ता उसी फ़ाइल या फ़ोल्डर को फिर से ऐक्सेस कर सकें. यह सुविधा उपयोगकर्ताओं के लिए काफ़ी मददगार होती है. असल में, Construct में खोले गए सभी प्रोजेक्ट में से करीब 30% प्रोजेक्ट इस तरह खोले जाते हैं. नीचे दिए गए स्क्रीनशॉट में, हाल ही के दो प्रोजेक्ट, tetris.c3p
और columns.c3p
दिखाए गए हैं. साथ ही, DevTools विंडो में, IndexedDB टेबल में क्रम से लगाए गए उससे जुड़े FileSystemFileHandle
ऑब्जेक्ट दिखाए गए हैं.
'खींचें और छोड़ें' सुविधा का इंटिग्रेशन
फ़ाइल सिस्टम ऐक्सेस एपीआई, खींचकर छोड़ने की सुविधा देने वाले एपीआई के साथ भी इंटिग्रेट होता है. इससे उपयोगकर्ता, ऐप्लिकेशन पर .c3p
फ़ाइलों को खींचकर छोड़ सकता है. इसके बाद, Construct DataTransferItem
ऑब्जेक्ट पर getAsFileSystemHandle()
तरीके से FileSystemFileHandle
पा सकता है. इसका मतलब है कि इस तरह से खोली गई फ़ाइलों में तुरंत बदलाव किया जा सकता है और उन्हें सेव किया जा सकता है. इसके लिए, फ़ाइल सेव करने के लिए अलग से डायलॉग बॉक्स नहीं खोलना पड़ता.
रिटायर्ड NW.js बिल्ड
पहले, टीम के पास Construct का NW.js बिल्ड था. लोकल फ़ाइलों को ऐक्सेस करने के लिए, इसे अलग से मैनेज और अपडेट करना पड़ता था. Chromium ने वर्शन 84 में फ़ाइल सिस्टम ऐक्सेस एपीआई के लिए सहायता जोड़ने के बाद, Construct के डेवलपर ने 2020 में एपीआई लागू किया. साथ ही, NW.js बिल्ड को रिटायर कर दिया और सभी प्लैटफ़ॉर्म पर ब्राउज़र का इस्तेमाल किया. इससे डेवलपमेंट आसान हो जाता है और ऐप्लिकेशन के साथ ब्राउज़र इंजन को बंडल करने की ज़रूरत नहीं होती.
मीटिंग में सामने आए नतीजे
Construct, पिकर के तीन तरीकों showOpenFilePicker()
, showSaveFilePicker()
, और showOpenDirectoryPicker()
का ज़्यादा इस्तेमाल करता है. इससे, उन उपयोगकर्ताओं को फ़ायदा मिलता है जिन्होंने Construct के साथ काम करने के इस तरीके पर भरोसा करना सीख लिया है. एक और फ़ायदा यह है कि Construct, फ़ाइल हैंडलिंग एपीआई का भी इस्तेमाल करता है. इससे Construct 3, .c3p
फ़ाइलों के लिए, अपने-आप (डिफ़ॉल्ट) फ़ाइल हैंडलर के तौर पर रजिस्टर हो जाता है. इसका मतलब है कि उपयोगकर्ता अपने ऑपरेटिंग सिस्टम के फ़ाइल एक्सप्लोरर से, गेम की फ़ाइलों पर दो बार क्लिक या राइट क्लिक करके, उन्हें Construct 3 में खोल सकता है. Construct, वेब पर पूरी तरह से काम करता है. यह कई अन्य मॉडर्न ब्राउज़र एपीआई का इस्तेमाल करता है. जैसे, मल्टीप्लेयर गेम के लिए WebGL, Web Audio, Web Workers, WebAssembly, WebRTC, लोकल फ़ॉन्ट ऐक्सेस, नए ऐनिमेशन प्रॉडक्ट के लिए WebCodecs वगैरह. उनका मकसद हमेशा वेब प्लैटफ़ॉर्म का ज़्यादा से ज़्यादा फ़ायदा उठाना और यह दिखाना रहा है कि इस प्लैटफ़ॉर्म पर बेहतरीन प्रॉडक्ट कैसे बनाए जा सकते हैं. इसलिए, उनके गाइडेड टूर को आज़माएं और अपने गेम बनाएं.