इस प्रोजेक्ट के बारे में

# Bevy गेम टेम्पलेट शानदार [Bevy इंजन][bevy] का उपयोग करके गेम बनाने के लिए टेम्पलेट, जिसमें Windows, Linux, macOS, Web (Wasm), Android और iOS के लिए तैयार बिल्ड शामिल हैं। # यह टेम्पलेट आपको क्या देता है? * छोटा उदाहरण ["गेम"](https://niklasei.github.io/bevy_game_template/) * [trunk] का उपयोग करके वेब बिल्ड चलाने के लिए आसान सेटअप (`trunk serve`) * `cargo run` के साथ नेटिव संस्करण चलाएं * Windows, Linux, macOS और Web (Wasm) के लिए वितरण योग्य रिलीज़ बनाने वाले GitHub एक्शन के लिए वर्कफ़्लो * यही वर्कफ़्लो मोबाइल प्लेटफ़ॉर्म के लिए डेवलपमेंट बिल्ड भी बनाता है (दो अलग-अलग वर्कफ़्लो [कुछ सेटअप](#deploy-mobile-platforms) के बाद स्टोर पर पुश कर सकते हैं) * फ्लो ट्रिगर करने के लिए `v[0-9]+.[0-9]+.[0-9]+*` (जैसे `v1.1.42`) फॉर्म का टैग पुश करें * CI वर्कफ़्लो जो हर पुश पर आपके एप्लिकेशन को सभी नेटिव प्लेटफ़ॉर्म पर जांचता है चेतावनी: यदि आप निजी रिपॉजिटरी में काम करते हैं, तो कृपया ध्यान दें कि macOS और Windows रनर अधिक बिल्ड मिनट खर्च करते हैं। **सार्वजनिक रिपॉजिटरी के लिए वर्कफ़्लो रनर मुफ़्त हैं!** # इस टेम्पलेट का उपयोग कैसे करें? 1. रिपॉजिटरी के पेज पर "Use this template" पर क्लिक करें 2. अपने गेम का नाम हर जगह उपयोग करने के लिए `ToDo` देखें 3. [नीचे बताए अनुसार आइकन अपडेट करें](#updating-the-icons) 4. कोडिंग शुरू करें :tada: * नेटिव ऐप शुरू करें: `cargo run` * वेब बिल्ड शुरू करें: `trunk serve` * [trunk] की आवश्यकता है: `cargo install --locked trunk` * `wasm32-unknown-unknown` टारगेट की आवश्यकता है: `rustup target add wasm32-unknown-unknown` * यह आपके ऐप को `8080` पर सर्व करेगा और कोड बदलने के बाद स्वचालित रूप से रीबिल्ड + रीलोड करेगा * एंड्रॉइड ऐप शुरू करें: `cargo apk run -p mobile` * [एंड्रॉइड सेटअप के लिए bevy उदाहरण readme][android-instructions] में दिए गए निर्देशों का पालन करना आवश्यक है * iOS ऐप शुरू करें ([iOS सेटअप निर्देशों के लिए bevy उदाहरण readme देखें][ios-instructions]) * ऐप स्टोर से Xcode इंस्टॉल करें * Xcode लॉन्च करें और iOS सिम्युलेटर इंस्टॉल करें (पहले स्टार्ट पर बॉक्स चेक करें, या बाद में `Preferences > Platforms` से इंस्टॉल करें) * `rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim` के साथ iOS और iOS सिम्युलेटर Rust टारगेट इंस्टॉल करें * `/mobile` डायरेक्टरी के अंदर `make run` चलाएं आपको `credits` डायरेक्टरी को अपडेट रखना चाहिए। रिलीज़ वर्कफ़्लो स्वचालित रूप से हर बिल्ड में डायरेक्टरी शामिल करता है। ### आइकन अपडेट करना 1. `build/macos/icon_1024x1024.png` को `1024` गुणा `1024` पिक्सल पीएनजी आइकन से बदलें और `create_icns.sh` या यदि आप लिनक्स उपयोग करते हैं तो `create_icns_linux.sh` चलाएं (स्क्रिप्ट को `build/macos` डायरेक्टरी के अंदर चलाना सुनिश्चित करें) - _नोट: `create_icns.sh` के लिए मैक की आवश्यकता है, और `create_icns_linux.sh` के लिए imagemagick और png2icns की आवश्यकता है_ 2. `build/windows/icon.ico` बदलें (विंडोज़ एक्ज़ीक्यूटेबल और वेब-बिल्ड के लिए फेविकॉन के रूप में उपयोग किया जाता है) * आप इन चरणों का पालन करके विंडोज़ के लिए `.ico` फ़ाइल बना सकते हैं: 1. [Gimp](https://www.gimp.org/downloads/) में `macos/AppIcon.iconset/icon_256x256.png` खोलें 2. `File > Export As` मेनू आइटम चुनें। 3. फ़ाइल एक्सटेंशन को `.ico` में बदलें (या `Select File Type (By Extension)` पर क्लिक करें और `Microsoft Windows Icon` चुनें) 4. `build/windows/icon.ico` के रूप में सहेजें 3. `build/android/res/mipmap-mdpi/icon.png` को `macos/AppIcon.iconset/icon_256x256.png` से बदलें, लेकिन इसका नाम बदलकर `icon.png` करें ### वेब बिल्ड को GitHub पेज पर डिप्लॉय करें 1. `deploy-github-page` वर्कफ़्लो ट्रिगर करें 2. अपने रिपॉजिटरी के लिए [GitHub पेज](https://pages.github.com/) सक्रिय करें 1. `gh-pages` शाखा से स्रोत (अभी निष्पादित एक्शन द्वारा बनाई गई) 3. कुछ मिनटों के बाद आपका गेम `http://username.github.io/repository` पर लाइव हो जाता है नए संस्करण डिप्लॉय करने के लिए, बस `deploy-github-page` वर्कफ़्लो फिर से चलाएं। # मोबाइल प्लेटफ़ॉर्म डिप्लॉय करें मोबाइल समर्थन के बारे में सामान्य जानकारी के लिए, आप [Bevy के साथ मोबाइल डेवलपमेंट पर मेरे ब्लॉग पोस्ट][mobile_dev_with_bevy_2] में से एक देख सकते हैं जो वर्तमान सेटअप के लिए प्रासंगिक है। ## एंड्रॉइड वर्तमान में, डेवलपमेंट ऐप चलाने के लिए `cargo-apk` का उपयोग किया जाता है। लेकिन APK अब स्टोर में प्रकाशित नहीं किए जा सकते हैं और `cargo-apk` आवश्यक AAB उत्पन्न नहीं कर सकता है। इसीलिए दो एंड्रॉइड संबंधित टूल के लिए सेटअप है। [`mobile/Cargo.toml`](./mobile/Cargo.toml) में, `package.metadata.android` अनुभाग `cargo-apk` कॉन्फ़िगर करता है जबकि [`mobile/manifest.yaml`](./mobile/manifest.yaml) `xbuild` के एक कस्टम फोर्क को कॉन्फ़िगर करता है जिसका उपयोग `release-android-google-play` वर्कफ़्लो में AAB बनाने के लिए किया जाता है। मेरे ब्लॉग पर [एंड्रॉइड रिलीज़ वर्कफ़्लो कैसे सेट करें][workflow_bevy_android] के बारे में एक पोस्ट है। ## iOS सेटअप काफी हद तक वही है जो Bevy मोबाइल उदाहरण के लिए करता है। मेरे ब्लॉग पर [iOS रिलीज़ वर्कफ़्लो कैसे सेट करें][workflow_bevy_ios] के बारे में एक पोस्ट है। # मोबाइल प्लेटफ़ॉर्म हटाना यदि आप Android या iOS को लक्षित नहीं करना चाहते हैं, तो आप बस `/mobile`, `/build/android` और `/build/ios` डायरेक्टरी को हटा सकते हैं। फिर `Cargo.toml` से `[workspace]` अनुभाग हटा दें। # डेवलपमेंट वातावरण ## Nix समर्थन nixgl केवल गैर-NixOS Linux सिस्टम पर उपयोग किया जाता है; वहां चलाते समय हमें `--impure` फ्लैग का उपयोग करना होगा: ``` nix develop --impure ``` यदि nixgl का उपयोग कर रहे हैं, तो जैसे `gl cargo run`, अन्यथा सामान्य रूप से `cargo` का उपयोग करें। # Bevy के साथ शुरुआत करना आपको [संसाधनों के लिंक][bevy-learn] के लिए Bevy वेबसाइट और बहुत सारे सहायक दस्तावेज़ और उदाहरणों के लिए [Bevy Cheat Book] देखना चाहिए। मैं विकास के साथ अपडेट रहने और अन्य Bevy उपयोगकर्ताओं से मदद पाने के लिए [आधिकारिक Bevy Discord सर्वर][bevy-discord] की भी सिफारिश कर सकता हूं। # ज्ञात समस्याएं वेब-बिल्ड में ऑडियो कुछ ब्राउज़रों में समस्या पैदा कर सकता है। यह एक सामान्य प्रदर्शन समस्या प्रतीत होती है न कि ऑडियो के कारण (देखें [bevy_kira_audio/#9][firefox-sound-issue])। # लाइसेंस यह प्रोजेक्ट [CC0 1.0 Universal](LICENSE) के तहत लाइसेंस प्राप्त है, सिवाय `assets` की कुछ सामग्री और `build` डायरेक्टरी में Bevy आइकन के (देखें [Credits](credits/CREDITS.md))। पागल हो जाएं और मुझे दिखाने में संकोच न करें कि आप इसके साथ क्या बनाते हैं ([@nikl_me][nikl-twitter] / [@nikl_me@mastodon.online][nikl-mastodon])। [bevy]: https://bevyengine.org/ [bevy-learn]: https://bevyengine.org/learn/ [bevy-discord]: https://discord.gg/bevy [nikl-twitter]: https://twitter.com/nikl_me [nikl-mastodon]: https://mastodon.online/@nikl_me [firefox-sound-issue]: https://github.com/NiklasEi/bevy_kira_audio/issues/9 [Bevy Cheat Book]: https://bevy-cheatbook.github.io/introduction.html [trunk]: https://github.com/trunk-rs/trunk [android-instructions]: https://github.com/bevyengine/bevy/blob/latest/examples/README.md#setup [ios-instructions]: https://github.com/bevyengine/bevy/blob/latest/examples/README.md#setup-1 [mobile_dev_with_bevy_2]: https://www.nikl.me/blog/2023/notes_on_mobile_development_with_bevy_2/ [workflow_bevy_android]: https://www.nikl.me/blog/2023/github_workflow_to_publish_android_app/ [workflow_bevy_ios]: https://www.nikl.me/blog/2023/github_workflow_to_publish_ios_app/