প্রকল্প সম্পর্কে

ggez একটি রাস্ট লাইব্রেরি যার নামের অর্থ "Good Game Easily"। এটি একটি হালকা, ক্রস-প্ল্যাটফর্ম গেম ফ্রেমওয়ার্ক যা ন্যূনতম জটিলতায় 2D এবং 3D গেম তৈরি করার লক্ষ্যে। এর API LÖVE ফ্রেমওয়ার্কের একটি রাস্টিফাইড সংস্করণের উপর মডেল করা হয়েছে, তাই এটি পোর্টেবল ড্রয়িং, সাউন্ড, রিসোর্স লোডিং এবং ইভেন্ট হ্যান্ডলিং প্রদান করে, যদিও সূক্ষ্ম বিবরণ এবং কর্মক্ষমতা বৈশিষ্ট্য LÖVE থেকে ভিন্ন হতে পারে। প্রকল্পটি মূল কার্যকারিতার জন্য একটি ব্যাটারি-অন্তর্ভুক্ত পদ্ধতি গ্রহণ করে কিন্তু ইচ্ছাকৃতভাবে উচ্চ-স্তরের সিস্টেম নির্ধারণ করা এড়ায়। পদার্থবিদ্যা ইঞ্জিন, এন্টিটি-কম্পোনেন্ট সিস্টেম, GUI টুলকিট, অ্যানিমেশন, অ্যাসেট ম্যানেজার, AI এবং নেটওয়ার্কিং অন্যান্য ক্রেটে ছেড়ে দেওয়া হয়, তাই ব্যবহারকারীরা তাদের পছন্দের যেকোনো লাইব্রেরি বেছে নিতে পারেন বা ggez-এর উপর নিজের তৈরি করতে পারেন। README-তে বর্ণিত মূল বৈশিষ্ট্যগুলি: - ফোল্ডার বা জিপ ফাইল থেকে রিসোর্স লোড করতে পারে এমন ফাইলসিস্টেম অ্যাবস্ট্রাকশন - wgpu গ্রাফিক্স API-এর উপর নির্মিত হার্ডওয়্যার-ত্বরিত 2D এবং 3D রেন্ডারিং - rodio ক্রেটের মাধ্যমে .ogg, .wav এবং .flac ফাইল লোড এবং প্লে করা - glyph_brush দিয়ে TTF ফন্ট রেন্ডারিং - কীবোর্ড এবং মাউস ইভেন্টের জন্য কলব্যাক-ভিত্তিক ইন্টারফেস - ইঞ্জিন এবং গেম সেটিংসের জন্য একটি কনফিগ ফাইল - টাইমিং এবং FPS পরিমাপ সহায়ক - mint-এর সাথে ম্যাথ লাইব্রেরি ইন্টিগ্রেশন - শেডার, ইনস্ট্যান্সড ড্র এবং রেন্ডার টার্গেটের মতো উন্নত গ্রাফিক্স বিকল্প স্থাপত্য এবং ব্যবহার: ggez-এর তিনটি প্রধান অংশ রয়েছে। একটি Context অবজেক্ট হার্ডওয়্যারের সাথে ইন্টারফেস করার জন্য প্রয়োজনীয় অবস্থা ধারণ করে। একটি EventHandler ট্রেইট ব্যবহারকারী দ্বারা কলব্যাক নিবন্ধনের জন্য প্রয়োগ করা হয়। গ্রাফিক্স এবং অডিওর মতো সাব-মডিউলগুলি প্রকৃত কার্যকারিতা প্রদান করে। সাধারণ প্যাটার্ন হল একটি স্ট্রাক্ট সংজ্ঞায়িত করা যা গেম ডেটা ধারণ করে এবং EventHandler প্রয়োগ করে, ContextBuilder বা একটি Conf অবজেক্টের মাধ্যমে একটি Context তৈরি করা, তারপর মূল লুপ শুরু করতে Context এবং হ্যান্ডলারের সাথে event::run() কল করা। README-তে এই কাঠামো দেখানো একটি মৌলিক প্রকল্প টেমপ্লেট অন্তর্ভুক্ত রয়েছে, যেখানে update() এবং draw() পদ্ধতি এবং ড্রয়িংয়ের জন্য একটি graphics::Canvas ব্যবহৃত হয়। বাস্তবায়নের বিবরণ: ggez উইন্ডোিং এবং ইভেন্টের জন্য winit, শব্দের জন্য rodio এবং wgpu দিয়ে প্রয়োগ করা একটি 2D ড্রয়িং ইঞ্জিন ব্যবহার করে। এটি সম্পূর্ণ থ্রেড-নিরাপদ হিসাবে বর্ণনা করা হয়েছে, যদিও প্ল্যাটফর্মের সীমাবদ্ধতার জন্য মূল থ্রেডে ইভেন্ট হ্যান্ডলিং এবং ড্রয়িং প্রয়োজন। এটি Windows এবং Linux-এ পোর্টেবল এবং বিশুদ্ধ রাস্টে লেখা। প্ল্যাটফর্ম সমর্থন: Windows, Linux এবং MacOS সম্পূর্ণরূপে সমর্থিত। Android, iOS এবং ওয়েব আনুষ্ঠানিকভাবে সমর্থিত নয় তবে কাজ করতে পারে; সম্পর্কিত good-web-game প্রকল্পটি ggez সংস্করণ 0.7 পর্যন্ত Android, iOS এবং WebAssembly লক্ষ্য করে। README-তে ন্যূনতম rustc সংস্করণ 1.42 এবং crates.io-এর মাধ্যমে বিতরণ উল্লেখ করা হয়েছে, নির্ভরতা লাইন ggez = "0.10.0" সহ। ডকুমেন্টেশন এবং উদাহরণ: API ডক্স docs.rs-এ রয়েছে, এবং উদাহরণ ডিরেক্টরিতে বিভিন্ন জটিলতার অনেক মন্তব্য করা উদাহরণ রয়েছে। বেশিরভাগ উদাহরণ একটি একক বৈশিষ্ট্য প্রদর্শন করে, যখন astroblasto এবং snake ছোট কিন্তু সম্পূর্ণ গেম। ডক্স ডিরেক্টরিতে একটি "Hello ggez" গাইড রয়েছে এবং একটি FAQ সাধারণ সমস্যাগুলি সমাধান করে। README-তে ggez ব্যবহার করে গেমগুলির একটি প্রকল্প তালিকা এবং একটি Discord সার্ভার, GitHub ইস্যু ট্র্যাকার এবং রাস্ট গেমডেভ সম্প্রদায় সহ কমিউনিটি চ্যানেলগুলির দিকেও নির্দেশ করা হয়েছে। লাইসেন্স: MIT।