কনটেন্টে যান
Bevy-এর উপর নির্মিত
Bevy

আপনার ব্রাউজার গেম, কম্পাইল হয়ে একটি নেটিভ অ্যাপে

যখন কোনো প্রজেক্ট ট্যাব ছেড়ে যাওয়ার জন্য প্রস্তুত, তখন Engine সেটি এক্সপোর্ট করে এবং Rust-এ একটি Bevy প্রজেক্ট তৈরি করে — তারপর সেটিকে Windows, macOS, Linux বা Android বিল্ডে কম্পাইল করে।

টার্গেট

Bevy 0.19

লাইসেন্স

MIT / Apache 2.0

ভাষা

Rust (rustc ≥ 1.95)

রেন্ডারার

wgpu

Bevy আসলে কী

Bevy হলো Rust-এ লেখা একটি গেম ইঞ্জিন, ডুয়াল MIT / Apache 2.0 লাইসেন্সের অধীনে বিনামূল্যে ও ওপেন সোর্স। এটি একটি এনটিটি-কম্পোনেন্ট-সিস্টেম আর্কিটেকচারের ওপর গড়ে উঠেছে এবং wgpu-এর মাধ্যমে রেন্ডার করে — সেই একই গ্রাফিক্স অ্যাবস্ট্রাকশন যা WebGPU-এর ভিত্তি। এটি কম্পাইল হয়ে একটি প্রকৃত নেটিভ বাইনারিতে পরিণত হয় — কোনো ব্রাউজার নেই, সাথে পাঠানোর মতো কোনো রানটাইমও নেই।

কেন আরেকটি ইঞ্জিন দরকার হলো

Babylon.js-ই aukimi-কে সম্ভব করে তোলে: একটি 3D অ্যাপ্লিকেশন যা আপনি একটি URL দিয়ে খোলেন। কিন্তু একটি সম্পূর্ণ গেমকে প্রায়ই একটি ফাইল হতে হয় — স্টোর পেজে দেওয়ার মতো কিছু, কোনো খেলোয়াড়ের হাতে তুলে দেওয়ার মতো, অথবা ট্যাব ছাড়াই চালানোর মতো। আপনাকে অন্য কোথাও প্রজেক্ট নতুন করে তৈরি করতে বলার বদলে, Engine সেটি রূপান্তর করে: ব্রাউজারে তৈরি করা সিনটি একটি Bevy প্রজেক্টে পরিণত হয় যা ডেস্কটপ বা মোবাইল অ্যাপ্লিকেশনে কম্পাইল হয়।

আসলে কী এক্সপোর্ট হয়

বিল্ড আপনার সিনের স্ক্রিনশট নেয় না। এটি সিনটিকে বের করে আনে: জ্যামিতি ও ম্যাটেরিয়াল একটি স্ট্যান্ডার্ড GLB হিসেবে বেরিয়ে যায়, ইঞ্জিন যা কিছু জানে কিন্তু glTF বহন করতে পারে না (টেরেইন, গাছপালা, আকাশ, পোস্ট-প্রসেসিং, এনটিটি ডেটা, সিন সেটিংস) তার পাশে স্ট্রাকচার্ড JSON হিসেবে বেরিয়ে যায়, আর এই দুটি ফাইল থেকে একটি সম্পূর্ণ Rust প্রজেক্ট তৈরি হয়। সেই প্রজেক্টটি একটি সাধারণ Cargo প্রজেক্ট — আপনি এটি পড়তে পারেন।

  • scene.glb — জ্যামিতি, ম্যাটেরিয়াল, অ্যানিমেশন
  • scene.json — টেরেইন, গাছপালা, আলো, সেটিংস
  • Bevy 0.19-লক্ষ্যে তৈরি একটি জেনারেটেড Cargo প্রজেক্ট

আপনার স্ক্রিপ্টগুলোও সঙ্গে যায়

Engine-এ লেখা গেমপ্লে স্ক্রিপ্ট হাতে করে Rust-এ পুনরায় লেখা হয় না, আর সেগুলো বাদও দেওয়া হয় না। জেনারেটেড প্রজেক্টে একটি JavaScript রানটাইম (QuickJS) এমবেড করা থাকে এবং একই স্ক্রিপ্টিং API বাইন্ড করা থাকে, ফলে ব্রাউজারে লেখা একটি স্ক্রিপ্ট নেটিভ বিল্ডে যেভাবে লেখা হয়েছিল সেভাবেই চলে। এই দুটি API-কে সামঞ্জস্যপূর্ণ রাখা কোডবেসের একটি স্থায়ী নিয়ম, পরে যোগ করা কোনো ভাবনা নয়।

চারটি টার্গেট, আর একটি যা নিজের অনুপস্থিতির কথা স্বীকার করে

Windows এক্সিকিউটেবল, macOS অ্যাপ বান্ডল, Linux AppImage এবং Android APK — এগুলোই আজ বিল্ড প্যানেল যে টার্গেট দেয়। iOS তালিকাভুক্ত কিন্তু বন্ধ — টুলচেইনের যে প্রয়োজনীয়তা আছে তা আমরা কোনো স্পিনারের আড়ালে লুকাতে পারি না। যদি বিল্ড সার্ভার আপনার টার্গেট নিতে না পারে, তাহলে আপনি একটি ব্যর্থতার বার্তার বদলে জেনারেটেড Rust প্রজেক্টটি পান, নিজে কম্পাইল করার জন্য।

  • Windows 10/11 এক্সিকিউটেবল
  • macOS অ্যাপ বান্ডল
  • Linux AppImage
  • Android APK (Android 8+)

যা পার হয় না, তা নিজেই বলে দেয়

দুটো রেন্ডারার মানে দুটো রেন্ডারার। ব্রাউজার প্রিভিউ যা কিছু করে তার কিছু জিনিসের এখনো Bevy-এর দিকে সমতুল্য কিছু নেই — যার মধ্যে আছে বেকড লাইটম্যাপ এবং লোকালাইজড লাইট প্রোব। এক্সপোর্টার একটি রূপান্তর প্রতিবেদন লেখে যাতে ঠিক কী বহন করা যায়নি তার তালিকা থাকে, চুপচাপ তা বাদ দিয়ে আপনাকে চূড়ান্ত বিল্ডে পার্থক্যটি আবিষ্কার করতে দেওয়ার বদলে। যে ফাঁকটি আপনি পড়তে পারেন, সেই ফাঁকের জন্য আপনি পরিকল্পনা করতে পারেন।

আপনার প্রজেক্ট একটি প্রকৃত বাইনারিতে বিল্ড করুন

ব্রাউজারে গেম তৈরি করুন। এটি একটি অ্যাপ্লিকেশন হিসেবে প্রকাশ করুন।

প্রজেক্ট সমর্থন করুন