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

গডোট-পাইথন একটি প্রকল্প যা গডোট গেম ইঞ্জিনে পাইথন ভাষা সমর্থন একটি স্ক্রিপ্টিং মডিউল হিসেবে আনার লক্ষ্য রাখে। এটি ডেভেলপারদের GDScript-এর পরিবর্তে পাইথনে গেম স্ক্রিপ্ট লেখার অনুমতি দেয়, পাইথনের ইকোসিস্টেম এবং সিনট্যাক্স ব্যবহার করে। **মূল বৈশিষ্ট্য:** - **গডোটে পাইথন স্ক্রিপ্টিং:** গডোট নোড থেকে উত্তরাধিকারসূত্রে প্রাপ্ত পাইথন ক্লাস ব্যবহার করুন (যেমন `Node2D`, `KinematicBody`) এবং `@exposed` ডেকোরেটরের মাধ্যমে ইঞ্জিনে প্রকাশ করুন। - **এক্সপোর্ট:** গডোটের ইনস্পেক্টরের সাথে সংহতির জন্য `export(<type>)` ব্যবহার করে এক্সপোর্টেড অ্যাট্রিবিউট এবং প্রপার্টি সংজ্ঞায়িত করুন। - **সম্পূর্ণ API অ্যাক্সেস:** জেনারেটেড বাইন্ডিংয়ের মাধ্যমে গডোটের API অ্যাক্সেস করুন (যেমন `Vector2`, `ResourceLoader`)। - **সহায়ক ক্লাস:** অ-এক্সপোজড পাইথন ক্লাস অভ্যন্তরীণ লজিকের জন্য ব্যবহার করা যেতে পারে। - **বিল্ড সিস্টেম:** Scons, Cython এবং Jinja2-এর উপর ভিত্তি করে, Linux, Windows এবং macOS সমর্থন সহ। - **পরীক্ষা এবং উদাহরণ:** pytest-ভিত্তিক পরীক্ষা এবং একটি Pong উদাহরণ প্রকল্প অন্তর্ভুক্ত। **বর্তমান অবস্থা:** প্রকল্পটি গডোট ৪ সমর্থনের জন্য ব্যাপক পুনর্গঠনের অধীনে রয়েছে, যা বর্তমান কোডবেসের সাথে সামঞ্জস্যপূর্ণ নয়। উন্নয়ন `godot4-meson` শাখায় চলছে। মাস্টার শাখা গডোট ৩.x লক্ষ্য করে। **ইনস্টলেশন:** ব্যবহারকারীরা গডোটের অ্যাসেট লাইব্রেরির মাধ্যমে ইনস্টল করতে পারেন, অ্যাসেট লাইব্রেরি ওয়েবসাইট থেকে ডাউনলোড করতে পারেন, অথবা রিলিজ পেজ থেকে প্ল্যাটফর্ম-নির্দিষ্ট বিল্ড পেতে পারেন। **ব্যবহারের উদাহরণ:** ```python from godot import exposed, export, Vector2, Node2D, ResourceLoader @exposed class Player(Node2D): name = export(str) @export(int) @property def age(self): return self._age @age.setter def age(self, value): self._age = value def talk(self, msg): print(f"I'm saying {msg}") def _ready(self): self._age = 42 print(self.get_name()) def _process(self, delta): self.position += Vector2(10, 10) * delta ``` **সোর্স থেকে বিল্ডিং:** Python >= 3.7 এবং একটি C কম্পাইলার প্রয়োজন। ধাপগুলির মধ্যে GDNative হেডারগুলির জন্য সাবমডিউল ইনিশিয়ালাইজ করা, একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা, নির্ভরতা ইনস্টল করা এবং প্ল্যাটফর্ম-নির্দিষ্ট কমান্ড দিয়ে Scons চালানো (যেমন `scons platform=x11-64 release`) অন্তর্ভুক্ত। **FAQ হাইলাইট:** - **প্রকল্প এক্সপোর্টিং:** ম্যানুয়াল এক্সপোর্ট প্রয়োজন; রিলিজ ফোল্ডারে পাইথন এনভায়রনমেন্ট এবং গডোট বাইনারি কপি করুন। - **পাইথন প্যাকেজ ব্যবহার:** `ensurepip` দিয়ে pip ইনস্টল করুন এবং তারপর এমবেডেড ইন্টারপ্রেটারে প্যাকেজ যোগ করতে `pip install` ব্যবহার করুন। - **PyCharm দিয়ে ডিবাগিং:** গডোট বাইনারির নাম পরিবর্তন করে 'python' অন্তর্ভুক্ত করুন এবং "Attach to Local Process" ব্যবহার করুন। - **অটোলোডিং স্ক্রিপ্ট:** `project.godot`-এ `[autoload]` এবং `[gdnative]`-এর অধীনে কনফিগার করুন। - **PoolArrays:** দক্ষ অ্যাক্সেসের জন্য `arr.raw_access()` কনটেক্সট ম্যানেজার ব্যবহার করুন, তবে মেমরি নিরাপত্তা সম্পর্কে সতর্ক থাকুন। **নোট:** প্রকল্পটি গডোট ৩-এর জন্য সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয় না, এবং ব্যবহারকারীদের ভবিষ্যত আপডেটের জন্য `godot4-meson` শাখা পরীক্ষা করা উচিত।