প্রকল্প সম্পর্কে
godot-rust একটি লাইব্রেরি যা রাস্ট ভাষাকে গডোট ৪-এর সাথে সংহত করে, যা একটি ওপেন-সোর্স গেম ইঞ্জিন, যার লক্ষ্য উৎপাদনশীল, সব-অন্তর্ভুক্ত ২ডি এবং ৩ডি অভিজ্ঞতা প্রদান। এটি গডোটের GDExtension API ব্যবহার করে, যা তৃতীয়-পক্ষের ভাষা এবং লাইব্রেরিগুলিকে ইঞ্জিনে সংহত করার অনুমতি দেয়।
দর্শন
বাইন্ডিংটি GDScript-এর বিকল্প হিসেবে অবস্থান করছে, যেখানে টাইপ নিরাপত্তা, স্কেলেবিলিটি এবং কর্মক্ষমতার উপর জোর দেওয়া হয়েছে। দুটি ভাষা একটি প্রকল্পে মিশ্রিত করা যেতে পারে, এবং কাস্টম রাস্ট API গুলি GDScript থেকে টাইপ-নিরাপদভাবে কল করা যেতে পারে। ঘোষিত প্রধান লক্ষ্য হল গেম ডেভেলপারদের জন্য একটি ব্যবহারিক রাস্ট API প্রদান করা: পুনরাবৃত্তিমূলক কাজগুলো সহজ হওয়া উচিত এবং ন্যূনতম বয়লারপ্লেট প্রয়োজন, এবং API গুলি যতটা সম্ভব নিরাপদ এবং স্বাভাবিক রাস্ট হিসেবে ডিজাইন করা হয়েছে। যেহেতু এটি গডোটের সাথে একটি C++ ইঞ্জিন হিসেবে যোগাযোগ করে, প্রকল্পটি কখনও কখনও ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে অপ্রচলিত পদ্ধতি অনুসরণ করে।
README উদাহরণে দেখানো বৈশিষ্ট্য
প্রেরণাদায়ী উদাহরণটি একটি গডোট ক্লাস Player নিবন্ধন করে যা Sprite2D থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এটি প্রদর্শন করে:
- GodotClass ডেরাইভ ম্যাক্রোর মাধ্যমে ক্লাস ঘোষণা, স্বয়ংক্রিয় প্রাথমিককরণ এবং একটি বেস ক্লাস সহ।
- কম্পোজিশনের মাধ্যমে উত্তরাধিকার, বেস ক্লাস পদ্ধতিতে অ্যাক্সেস প্রদান।
- অ্যাট্রিবিউট-ভিত্তিক ফিল্ড প্রাথমিককরণ, একটি ডিফল্ট hitpoints মান সহ।
- OnReady চাইল্ড নোড অ্যাক্সেস, _ready() কল করার সময় স্বয়ংক্রিয়ভাবে প্রাথমিককরণ।
- পূর্বনির্ধারিত ট্রেইটের মাধ্যমে গডোট ভার্চুয়াল পদ্ধতি বাস্তবায়ন (যেমন _ready ওভাররাইড করা)।
- টাইপ-নিরাপদ সিগন্যাল সংযোগ, যেমন একটি হেলথ বার-এর value_changed সিগন্যালের সাথে সংযোগ।
- #[func] অ্যাট্রিবিউটের মাধ্যমে GDScript-এ প্রকাশিত কাস্টম পদ্ধতি।
- মিউটেবল বেস অ্যাক্সেসের মাধ্যমে self-এ Node পদ্ধতি কল করা।
বিকাশের অবস্থা
README-তে বলা হয়েছে যে লাইব্রেরিটি ২০২৩ সাল থেকে উল্লেখযোগ্যভাবে বিকশিত হয়েছে এবং এখন গেম, এডিটর প্লাগইন, টুল এবং অন্যান্য গডোট-ভিত্তিক অ্যাপ্লিকেশনের মতো প্রকল্পগুলির জন্য ব্যবহারযোগ্য। এটি উল্লেখ করে যে ব্রেকিং পরিবর্তনগুলি মাঝে মাঝে প্রবর্তিত হয়, সাধারণত ছোট এবং মাইগ্রেশন গাইড সহ; crates.io রিলিজগুলি SemVer অনুসরণ করে তবে master শাখার পিছনে থাকে। গডোট API-এর বিশাল সংখ্যাগরিষ্ঠ অংশ রাস্টে ম্যাপ করা হয়েছে। বর্তমান বিকাশের ফোকাস হল আরও স্বাভাবিক রাস্ট অভিজ্ঞতা এবং দৈনন্দিন গেম ডেভেলপমেন্টের জন্য উপযোগী ডিজাইন প্যাটার্ন। একটি বিস্তৃত CI স্যুটে clippy, ইউনিট টেস্ট, ইঞ্জিন ইন্টিগ্রেশন টেস্ট এবং মেমরি স্যানিটাইজার অন্তর্ভুক্ত রয়েছে, এমনকি হট-রিলোডও পরীক্ষা করা হয়। Wasm, Android এবং iOS-এর জন্য পরীক্ষামূলক সমর্থন রয়েছে, যদিও ডকুমেন্টেশন এবং টুলিং এখনও অভাব রয়েছে।
শুরু করা এবং সম্পদ
README godot-rust বইটিকে শুরু করার সেরা জায়গা হিসেবে নির্দেশ করে, যা API ডক্সের সাথে ব্যবহার করা উচিত। ব্যবহারিক উদাহরণ এবং ছোট গেমগুলি demo-projects রিপোজিটরিতে উপলব্ধ। সাহায্য একটি Discord সার্ভারের মাধ্যমে দেওয়া হয় যেখানে একটি #help চ্যানেল রয়েছে।
লাইসেন্স এবং অবদান
প্রকল্পটি Mozilla Public License 2.0 ব্যবহার করে, যা পারমিসিভ এবং কপিলেফ্ট লাইসেন্সের মধ্যে ভারসাম্য হিসাবে বর্ণিত। ব্যবহারকারীরা লাইব্রেরিটি বাণিজ্যিকভাবে ব্যবহার করতে পারেন এবং নিজের কোড বন্ধ-উৎস রাখতে পারেন; প্রধান শর্ত হল godot-rust-এ নিজের পরিবর্তনগুলি উপলব্ধ করতে হবে। অবদান স্বাগত, Contributing.md-এ নির্দেশনা সহ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.