প্রকল্প সম্পর্কে
Avian হলো Bevy গেম ইঞ্জিনের জন্য বিশেষভাবে ডিজাইন করা একটি ECS-চালিত 2D ও 3D ফিজিক্স ইঞ্জিন। এটি কোনো বিদ্যমান ইঞ্জিনের র্যাপার নয়, বরং Bevy-এর Entity Component System-কে কেন্দ্রে রেখে শুরু থেকে তৈরি, তাই ফিজিক্স স্টেট গেমের বাকি এনটিটিগুলোর মতোই একই ওয়ার্ল্ডে থাকে।
ডিজাইন নীতিমালা
- Bevy দিয়ে, Bevy-এর জন্য তৈরি, বিদ্যমান ইঞ্জিনের কোনো র্যাপার নেই।
- সহজ ও পরিচিত API।
- আলাদা ফিজিক্স ওয়ার্ল্ডের বদলে ECS-এর ব্যাপক ব্যবহার।
- মডুলার প্লাগইন আর্কিটেকচার, ফলে ইঞ্জিনের অংশগুলো প্রতিস্থাপন করা যায়।
- ডকুমেন্টেশনে বিশেষ গুরুত্ব।
ফিচার
- রিজিড বডি: ডাইনামিক, কাইনেমেটিক ও স্ট্যাটিক, সাথে লিনিয়ার ও অ্যাঙ্গুলার ভেলোসিটি, বাহ্যিক বল, টর্ক ও ইম্পালস, গ্র্যাভিটি ও গ্র্যাভিটি স্কেল, লিনিয়ার ও অ্যাঙ্গুলার ড্যাম্পিং, অ্যাক্সিস লকিং, রিজিড বডি ডমিনেন্স, কন্টিনিউয়াস কোলিশন ডিটেকশন (CCD), এবং স্লিপিংয়ের মাধ্যমে স্বয়ংক্রিয় নিষ্ক্রিয়করণ।
- Parry-চালিত কোলিশন ডিটেকশন: কনফিগারযোগ্য কোলিশন লেয়ার, ডেনসিটি ও ম্যাটেরিয়াল প্রপার্টিসহ কোলাইডার; মেশ ও সম্পূর্ণ সিনের জন্য কোলাইডার জেনারেশন; কোলিশন ইভেন্ট; কোলাইডিং এনটিটিতে অ্যাক্সেস; কোলিশন ফিল্টারিং ও পরিবর্তনের জন্য কোলিশন হুক; ম্যানুয়াল কন্ট্যাক্ট কোয়েরি ও ইন্টারসেকশন টেস্ট।
- কনস্ট্রেইন্ট ও জয়েন্ট: বিল্ট-ইন ফিক্সড, ডিস্ট্যান্স, প্রিজম্যাটিক, রিভোলিউট ও স্ফেরিক্যাল জয়েন্ট, সাথে XPBD ব্যবহার করে কাস্টম জয়েন্ট ও কনস্ট্রেইন্টের সমর্থন।
- স্পেশিয়াল কোয়েরি: রে-কাস্টিং, শেপ-কাস্টিং, পয়েন্ট প্রজেকশন ও ইন্টারসেকশন টেস্ট, সাথে কম্পোনেন্ট-ভিত্তিক API, একটি নমনীয় SpatialQuery সিস্টেম প্যারামিটার ও কোয়েরি ফিল্টার।
- ফিক্সড টাইমস্টেপের জন্য ট্রান্সফর্ম ইন্টারপোলেশন ও এক্সট্রাপোলেশন।
- কোলাইডার, AABB, কন্ট্যাক্ট, জয়েন্ট ও স্পেশিয়াল কোয়েরির জন্য ডিবাগ রেন্ডারিং।
- কনফিগারযোগ্য শিডিউলিং, উচ্চ কাস্টমাইজেবিলিটি, মডুলার প্লাগইন, কাস্টম কোলিশন ব্যাকএন্ডের সমর্থন, এবং f32/f64 প্রিসিশন (ডিফল্টভাবে f32)।
ব্যবহার
Cargo.toml-এ avian2d বা avian3d যোগ করুন, Bevy-এর DefaultPlugins-এর পাশে PhysicsPlugins রেজিস্টার করুন, তারপর RigidBody, Collider, AngularVelocity ও Transform-এর মতো কম্পোনেন্টসহ এনটিটি স্পন করুন। README-তে একটি সম্পূর্ণ 3D উদাহরণ রয়েছে, যেখানে একটি ঘূর্ণায়মান কিউব একটি স্ট্যাটিক সিলিন্ড্রিক্যাল প্ল্যাটফর্মের উপর পড়ে।
উদাহরণ ও সংস্করণ
অসংখ্য 2D ও 3D উদাহরণ crates/avian2d/examples এবং crates/avian3d/examples-এর অধীনে রয়েছে। এগুলো f32 ও f64 উভয় প্রিসিশন সমর্থন করে; f64-এর জন্য ডিফল্ট ফিচার নিষ্ক্রিয় করে ডাইমেনশন ও প্রিসিশন ম্যানুয়ালি নির্বাচন করতে হয়। একটি সংস্করণ টেবিল Bevy রিলিজের সাথে Avian রিলিজের ম্যাপিং দেয় (যেমন Bevy 0.19-এর সাথে Avian 0.7), এবং মাইগ্রেশন গাইড দেওয়া আছে। Avian হলো Bevy XPBD-এর উত্তরসূরি।
কমিউনিটি ও লাইসেন্স
ইস্যু ও পুল রিকোয়েস্টের মাধ্যমে অবদান স্বাগত, সাথে প্রথমে পর্যালোচনার জন্য একটি AI নীতি রয়েছে। ডেভেলপমেন্ট আলোচনা হয় Avian Dev Discord ও Bevy Discord-এ। প্রকল্পটি ব্যবহারকারীর ইচ্ছানুযায়ী MIT বা Apache-2.0-এর অধীনে ডুয়াল-লাইসেন্সড।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.