सामग्री पर जाएँ
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 की ओर अभी कोई समकक्ष नहीं है — इनमें बेक्ड लाइटमैप और लोकलाइज़्ड लाइट प्रोब शामिल हैं। एक्सपोर्टर एक कन्वर्ज़न रिपोर्ट लिखता है जिसमें ठीक-ठीक बताया जाता है कि क्या नहीं ले जाया जा सका, बजाय इसके कि वह इसे चुपचाप छोड़ दे और आपको यह अंतर तैयार बिल्ड में खुद पता चले। जिस कमी को आप पढ़ सकते हैं, उसके इर्द-गिर्द आप योजना बना सकते हैं।

अपने प्रोजेक्ट को एक असली बाइनरी में बिल्ड करें

गेम ब्राउज़र में बनाएँ। इसे एक एप्लिकेशन के रूप में शिप करें।

प्रोजेक्ट को सपोर्ट करें