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

# Born React Native Godot React Native Godot আপনাকে React Native অ্যাপের ভিতরে গডোট ইঞ্জিন এমবেড করতে দেয়। এটি [Born](https://born.com) তৈরি করেছে এবং [Migeran](https://migeran.com) এর সাথে সহযোগিতায় উন্নয়ন করেছে। ## প্রধান বৈশিষ্ট্য * Android এবং iOS সমর্থন করে, [LibGodot](https://github.com/migeran/libgodot) এর উপর নির্মিত। * Born দ্বারা প্রোডাকশনে ব্যবহৃত, লক্ষ লক্ষ ব্যবহারকারীকে সেবা দেয়। * গডোট ইঞ্জিন শুরু, বন্ধ এবং পুনরায় চালু করুন; প্রতিটি পুনরায় চালুতে ভিন্ন গডোট প্রজেক্ট লোড হতে পারে। * চলমান গডোট ইনস্ট্যান্স পজ এবং রিজিউম করুন। * গডোট আলাদা থ্রেডে চলে, UI এবং React Native JavaScript থ্রেড প্রতিক্রিয়াশীল রাখে। * গডোটের মূল উইন্ডো এবং এর সাবউইন্ডো একই বা ভিন্ন স্ক্রিনে এমবেড করুন। * TypeScript/JavaScript থেকে সম্পূর্ণ গডোট API অ্যাক্সেস করুন: অবজেক্ট ইনস্ট্যান্টিয়েট করুন, মেথড কল করুন, প্রপার্টি get/set করুন, সিগন্যালে সংযোগ করুন এবং JS কলেবল গডোটে পাস করুন। ## উদাহরণ অ্যাপ দিয়ে শুরু [উদাহরণ অ্যাপ](example/) প্রধান বৈশিষ্ট্যগুলি প্রদর্শন করে। প্রয়োজনীয় প্রি-রিকুইজিট ইনস্টল করার পর (যেমন, Node, Java, Gradle, Ruby-এর জন্য ASDF ব্যবহার করে) এবং গডোট স্যাম্পল এক্সপোর্ট করার পর (`./export_godot_GodotTest.sh android|ios`, ইত্যাদি), প্রি-বিল্ট লাইব্রেরি ডাউনলোড করুন এবং `yarn ios` / `yarn android` দিয়ে iOS বা Android-এ চালান। একটি সুবিধাজনক `update_deps.sh` স্ক্রিপ্ট সেটআপ পরিচালনা করে। ## আপনার প্রথম React Native Godot অ্যাপ 1. npm থেকে ইনস্টল করুন: `yarn add @borndotcom/react-native-godot` 2. প্রি-বিল্ট LibGodot প্যাকেজ ডাউনলোড করুন: `yarn download-prebuilt` (npm-এর মাধ্যমে বিতরণ করা হয় না; এটি কাস্টম বিল্ডের অনুমতি দেয়)। 3. ভিউ ইমপোর্ট এবং ব্যবহার করুন: `import { RTNGodot, RTNGodotView, runOnGodotThread } from "@borndotcom/react-native-godot"`। 4. `<RTNGodotView style={...}/>` যোগ করুন (ডিফল্টভাবে গডোটের মূল উইন্ডো)। 5. কমান্ড-লাইন আর্গুমেন্ট সহ `RTNGodot.createInstance([...])` কল করে গডোট থ্রেডে গডোট ইনিশিয়ালাইজ করুন। মূল পয়েন্ট: - React Native-এ এমবেড করতে `--display-driver embedded` ব্যবহার করুন। - Android-এ, একটি ফোল্ডার পাথ (যেমন, `--path /main`) বা PCK পাস করুন; iOS-এ, প্যাক ফাইলের সাথে `--main-pack` ব্যবহার করুন। ছোট আকার এবং সহজ আপডেটের জন্য গডোট অ্যাপের রানটাইম ডাউনলোড সুপারিশ করা হয়। 6. গডোট থ্রেডে `RTNGodot.destroyInstance()` দিয়ে বন্ধ করুন; JS মূল থ্রেড থেকে `RTNGodot.pause()` / `RTNGodot.resume()` দিয়ে পজ/রিজিউম করুন। আপনার গডোট প্রজেক্ট PCK বা ZIP হিসাবে এক্সপোর্ট করুন; উদাহরণে সহায়ক স্ক্রিপ্ট অন্তর্ভুক্ত রয়েছে। ## গডোট API ব্যবহার `RTNGodot.API()` এর মাধ্যমে API অ্যাক্সেস করুন: ```typescript let Godot = RTNGodot.API(); var engine = Godot.Engine; var vector = Godot.Vector2(); vector.x = 1.0; vector.y = 2.0; var sceneTree = engine.get_main_loop(); var root = sceneTree.get_root(); ``` `.connect(function() { ... })` দিয়ে সিগন্যালে সংযোগ করুন, এবং JS ফাংশন Callable হিসাবে গডোট মেথডে পাস করুন (যেমন, কাস্টম Node-এর GDScript থেকে)। ## থ্রেডিং এবং JavaScript গডোট নিজস্ব থ্রেডে চলে। JavaScript থেকে ইন্টারঅ্যাক্ট করতে, লাইব্রেরি [react-native-worklets-core](https://github.com/margelo/react-native-worklets-core) ব্যবহার করে `runOnGodotThread()` এর মাধ্যমে গডোট থ্রেডে ওয়ার্কলেটাইজড JS চালায়। এটি প্রস্তাবিত পদ্ধতি; RN মূল থ্রেড থেকে সরাসরি কল সম্ভব তবে সীমিত (যেমন, Scene Tree অ্যাক্সেস থ্রেড-নিরাপদ নয়) এবং অবজেক্ট রেফারেন্স প্রসঙ্গের মধ্যে বিনিময়যোগ্য নয়। ## উন্নত বিষয় * **কাস্টম LibGodot বিল্ড**: LibGodot ক্লোন করুন (ব্রাঞ্চ `libgodot_migeran_45`), প্রদত্ত স্ক্রিপ্ট দিয়ে বিল্ড করুন, এবং পরিবেশ ভেরিয়েবলের মাধ্যমে ডাউনলোড পাথ ওভাররাইড করুন (যেমন, `LIBGODOT_XCFRAMEWORK_PATH`)। * **নেটিভ কোড ডিবাগিং**: iOS-এর জন্য, একটি ডেভ LibGodot বিল্ড করুন এবং Xcode-এ ব্রেকপয়েন্ট সেট করুন; Android-এর জন্য, সিম্বল ডিরেক্টরি যোগ করুন এবং ঐচ্ছিকভাবে গডোট সোর্স ট্রি সিমলিংক করুন। * **গডোট এডিটরে রিমোট ডিবাগিং**: `--remote-debug tcp://<host>:6007` পাস করুন এবং Android-এ `adb reverse` ব্যবহার করুন; iOS-এ এডিটরের Remote Host সেট করুন। ## লাইসেন্স MIT লাইসেন্সের অধীনে প্রকাশিত। ## সহায়তা বাণিজ্যিক সহায়তা এবং উন্নয়ন [Migeran](https://migeran.com) দ্বারা প্রদান করা হয়। Born React Native ইঞ্জিনিয়ার নিয়োগ করছে (দেখুন [born.com](https://born.com))।