কিভাবে গেম এডিটর Construct 3 ব্যবহারকারীদের তাদের গেমগুলি সংরক্ষণ করতে দেওয়ার জন্য ফাইল সিস্টেম অ্যাক্সেস API ব্যবহার করে

ফাইল সিস্টেম অ্যাক্সেস API পড়তে, লিখতে এবং ফাইল পরিচালনার ক্ষমতা দেয়। কনস্ট্রাক্ট 3 কীভাবে এই API ব্যবহার করে তা জানুন।

ভূমিকা

(এই নিবন্ধটি একটি ভিডিও আকারে উপলব্ধ।)

কনস্ট্রাক্ট 3 হল একটি গেম এডিটর যা থমাস এবং অ্যাশলে গুলেন ভাইদের দ্বারা তৈরি করা হয়েছে। তাদের গেম এডিটরের বর্তমান তৃতীয় পুনরাবৃত্তির জন্য, দুটি সম্পূর্ণরূপে "[বাজি] ব্রাউজারটি নতুন অপারেটিং সিস্টেম হওয়ার পরে" উইন্ডোজ এবং NW.js এর আগে তৈরি করার পরে। আপনি সম্পাদকের সাথে বিকশিত কিছু গেমের একটি ছাপ পেতে পারেন এর শোকেস অন্বেষণ করে বা নির্দেশিত সফরের মাধ্যমে কাজ করে৷ ওয়েবের পরাশক্তিদের ধন্যবাদ, আপনি "অনুপ্রাণিত হন" উদাহরণগুলির যে কোনো একটিতে ক্লিক করতে পারেন এবং অবিলম্বে সম্পাদনা শুরু করতে পারেন৷

কনস্ট্রাক্ট 3 অ্যাপটি ব্যবহারকারীকে স্টার্টার প্রকল্পগুলির একটি সম্পাদনা করছে।

কনস্ট্রাক্ট 3-এ ফাইল সিস্টেম অ্যাক্সেস API

কনস্ট্রাক্ট ফাইল সিস্টেম অ্যাক্সেস API এর সাথে স্থানীয় ফাইলগুলিতে সংরক্ষণ করার বিকল্প প্রদান করে, সেইসাথে ক্লাউড সেভ (গুগল ড্রাইভ, ওয়ানড্রাইভ, ড্রপবক্স), এবং প্রকল্প ফাইলের একটি অনুলিপি ডাউনলোড করে। কনস্ট্রাক্ট ডেভেলপারদের সংগ্রহ করা পরিসংখ্যান দেখায় যে 65% সংরক্ষণ করা হয়েছে ফাইল সিস্টেম অ্যাক্সেস API দিয়ে, যা দেখায় যে এটি বেশিরভাগ গ্রাহকরা ব্যবহার করতে চান৷

সংরক্ষণের জন্য, নিচের স্নিপেট showSaveFilePicker() পদ্ধতি থেকে একটি FileSystemFileHandle পাওয়ার জন্য মূল উৎপাদন কোড দেখায়, যা প্রকৃত তথ্য সংরক্ষণ করতে কাজ করে। কনস্ট্রাক্ট id বিকল্প প্যারামিটার ব্যবহার করে। ফাইল পিকারটি যে ডিরেক্টরিতে খোলে সেটির পরামর্শ দেওয়ার জন্য 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;
}

কনস্ট্রাক্ট টিম ব্যবহারকারীর ফাইল সিস্টেমে ফাইলগুলির সাথে কাজ করাকে খুব স্বজ্ঞাত বলে মনে করেছে। এটি প্রথাগত ডেস্কটপ অ্যাপের মতোই কাজ করে এবং অন্যান্য সফ্টওয়্যারের সাথে সুবিধাজনকভাবে সংহত করে। উদাহরণস্বরূপ, ব্যাকআপ সফ্টওয়্যার যা ব্যবহারকারীদের ফাইলগুলির ব্যাকআপ তৈরি করতে পারে, বা সহজেই অন্য জায়গায় কাজ পাঠানোর জন্য, বা বাহ্যিক সরঞ্জামগুলির সাহায্যে ফাইল সম্পাদনা করতে পারে। তারা ফাইল সিস্টেম অ্যাক্সেস API ব্যবহার করে বিভিন্ন অন্যান্য ব্যবহারের ক্ষেত্রে, যেমন একটি ব্যাকআপ ফোল্ডার নির্বাচন করা বা অ্যানিমেশনের মতো সম্পদ আমদানি করা।

বড় ফাইল এবং ফোল্ডার সঙ্গে কাজ

Construct এর কিছু গ্রাহক শত শত মেগাবাইটে অনেক বড় প্রকল্পের সাথে কাজ করে। একটি একক ফাইলে এত বড় পরিমাণ কাজ সংরক্ষণ করা বেদনাদায়কভাবে ধীর, এটিকে ক্লাউড পরিষেবাতে আপলোড করা ছেড়ে দিন। ফাইল সিস্টেম অ্যাক্সেস API পাওয়ার ব্যবহারকারীদের তাদের সমস্ত সম্পদ আলাদা ফাইলে একটি স্থানীয় ফোল্ডারের সাথে কাজ করতে দেয়। এটি খুব দ্রুত সংরক্ষণের অনুমতি দেয়, কারণ শুধুমাত্র পরিবর্তিত ফাইলগুলিকে আপডেট করতে হবে।

আপনি যেখানে ছেড়েছিলেন সেখানে চালিয়ে যান

উভয় ফাইল এবং ডিরেক্টরি হ্যান্ডেলগুলিকে ইনডেক্সডডিবি-তে সিরিয়ালাইজ করা যেতে পারে, কনস্ট্রাক্টকে একটি সাম্প্রতিক প্রকল্পের তালিকা প্রদান করার অনুমতি দেয় যা সেশন জুড়ে অব্যাহত থাকে, যাতে ব্যবহারকারীরা একই ফাইল বা ফোল্ডার আবার অ্যাক্সেস করতে পারে, যা ব্যবহারকারীর জন্য একটি দুর্দান্ত সুবিধা। প্রকৃতপক্ষে, নির্মাণে খোলা সমস্ত প্রকল্পের প্রায় 30% এইভাবে খোলা হয়। নিম্নলিখিত স্ক্রিনশট দুটি সাম্প্রতিক প্রজেক্ট দেখায়, tetris.c3p এবং columns.c3p এবং, DevTools উইন্ডোতে, সংশ্লিষ্ট FileSystemFileHandle অবজেক্টগুলি একটি IndexedDB টেবিলে সিরিয়াল করা হয়েছে।

দুটি সাম্প্রতিক প্রকল্প, tetris.c3p এবং columns.c3p সহ কনস্ট্রাক্ট 3 শুরু পৃষ্ঠা। নীচে DevTools অনুরূপ দুটি FileSystemFileHandle অবজেক্ট দেখাচ্ছে IndexedDB-তে সিরিয়াল করা হয়েছে।

টেনে আনুন এবং ড্রপ ইন্টিগ্রেশন

ফাইল সিস্টেম অ্যাক্সেস এপিআই ড্র্যাগ অ্যান্ড ড্রপ এপিআই- এর সাথেও একীভূত হয়, যাতে ব্যবহারকারী অ্যাপ্লিকেশনটিতে .c3p ফাইল টেনে আনতে পারে। Construct তারপর DataTransferItem অবজেক্টে getAsFileSystemHandle() পদ্ধতির মাধ্যমে একটি FileSystemFileHandle পেতে পারে, যার অর্থ এইভাবে খোলা ফাইলগুলিকে একটি পৃথক ফাইল সংরক্ষণ ডায়ালগের মাধ্যমে না গিয়ে অবিলম্বে সম্পাদনা এবং সংরক্ষণ করা যেতে পারে।

অবসরপ্রাপ্ত NW.js বিল্ড

পূর্বে, টিমের একটি NW.js বিল্ড অফ কনস্ট্রাক্ট ছিল যা স্থানীয় ফাইলগুলি অ্যাক্সেস করার জন্য আলাদাভাবে রক্ষণাবেক্ষণ এবং আপডেট করার প্রয়োজন ছিল। 84 সংস্করণে ক্রোমিয়াম ফাইল সিস্টেম অ্যাক্সেস API-এর জন্য সমর্থন যোগ করার পরে, কনস্ট্রাক্ট ডেভেলপাররা 2020 সালে API প্রয়োগ করেছিল , এবং একটি উপ-প্রোডাক্ট হিসাবে NW.js বিল্ডকে অবসর দিতে এবং ব্রাউজারটিকে একচেটিয়াভাবে সমস্ত প্ল্যাটফর্মে ব্যবহার করতে সক্ষম হয়েছিল। এটি বিকাশকে সহজ করে এবং অ্যাপের সাথে ব্রাউজার ইঞ্জিন বান্ডিল করার প্রয়োজন এড়ায়।

উপসংহার

Construct তাদের ব্যবহারকারীদের সুবিধার জন্য যথাক্রমে showOpenFilePicker() , showSaveFilePicker() এবং showOpenDirectoryPicker() তিনটি পিকার পদ্ধতির ব্যাপক ব্যবহার করে যারা Construct এর সাথে কাজ করার এই পদ্ধতির উপর নির্ভর করতে শিখেছে। একটি অতিরিক্ত সুবিধা হিসাবে, Construct ফাইল হ্যান্ডলিং API ব্যবহার করে, যা Construct 3 কে .c3p ফাইলগুলির একটি (ডিফল্ট) ফাইল হ্যান্ডলার হিসাবে নিবন্ধন করতে দেয়। এর মানে হল যে ব্যবহারকারীরা তাদের অপারেটিং সিস্টেমের ফাইল এক্সপ্লোরার থেকে সরাসরি তাদের গেম ফাইলগুলি কনস্ট্রাক্ট 3 দিয়ে ডাবল ক্লিক বা রাইট-ক্লিক করতে এবং খুলতে পারে। ওয়েবে সম্পূর্ণভাবে বাজি ধরে, Construct অন্যান্য আধুনিক ব্রাউজার API-এর লোড ব্যবহার করে—যেমন WebGL, Web Audio, Web Workers, WebAssembly, WebRTC মাল্টিপ্লেয়ার গেমের জন্য, স্থানীয় ফন্ট অ্যাক্সেস, তাদের নতুন অ্যানিমেশন পণ্যের জন্য WebCodecs এবং আরও অনেক কিছু। তাদের লক্ষ্য সর্বদা ওয়েব প্ল্যাটফর্মের পূর্ণ ব্যবহার করা এবং এটির উপরে কীভাবে দুর্দান্ত পণ্য তৈরি করা যেতে পারে তা দেখানো, তাই তাদের নির্দেশিত সফর চেষ্টা করে দেখুন এবং আপনার নিজস্ব গেম তৈরি করতে ভুলবেন না।