منصوبے کے بارے میں
# ایک Bevy گیم ٹیمپلیٹ
شاندار [Bevy انجن][bevy] استعمال کرتے ہوئے ایک گیم کے لیے ٹیمپلیٹ، جس میں Windows، Linux، macOS، Web (Wasm)، Android اور iOS کے لیے تیار بلڈز شامل ہیں۔
# یہ ٹیمپلیٹ آپ کو کیا دیتا ہے؟
* چھوٹی مثال ["گیم"](https://niklasei.github.io/bevy_game_template/)
* [trunk] استعمال کرتے ہوئے ویب بلڈ چلانے کے لیے آسان سیٹ اپ (`trunk serve`)
* `cargo run` کے ساتھ نیٹو ورژن چلائیں
* GitHub actions کے لیے ورک فلو جو Windows، Linux، macOS اور Web (Wasm) کے لیے تقسیم کے لیے تیار ریلیز بناتا ہے
* یہی ورک فلو موبائل پلیٹ فارمز کے لیے ڈیولپمنٹ بلڈز بھی بناتا ہے ([کچھ سیٹ اپ](#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 مثال کے ریڈمی][android-instructions] میں دی گئی ہدایات پر عمل کرنا درکار ہے
* iOS ایپ شروع کریں ([iOS سیٹ اپ ہدایات کے لیے bevy مثال کا ریڈمی دیکھیں][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` پکسل کے png آئیکن سے تبدیل کریں اور `create_icns.sh` یا اگر آپ لینکس استعمال کرتے ہیں تو `create_icns_linux.sh` چلائیں (یقینی بنائیں کہ اسکرپٹ `build/macos` ڈائریکٹری کے اندر چلائیں) - _نوٹ: `create_icns.sh` کے لیے mac درکار ہے، اور `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 pages پر ڈیپلائے کرنا
1. `deploy-github-page` ورک فلو ٹرگر کریں
2. اپنی ریپوزٹری کے لیے [GitHub pages](https://pages.github.com/) فعال کریں
1. `gh-pages` برانچ سے سورس کریں (جو ابھی چلائی گئی ایکشن نے بنائی ہے)
3. چند منٹ بعد آپ کا گیم `http://username.github.io/repository` پر لائیو ہوگا
نئے ورژن ڈیپلائے کرنے کے لیے، بس `deploy-github-page` ورک فلو دوبارہ چلائیں۔
# موبائل پلیٹ فارمز ڈیپلائے کرنا
موبائل سپورٹ کے بارے میں عمومی معلومات کے لیے، آپ [Bevy کے ساتھ موبائل ڈیولپمنٹ کے بارے میں میری ایک بلاگ پوسٹ][mobile_dev_with_bevy_2] دیکھ سکتے ہیں جو موجودہ سیٹ اپ سے متعلق ہے۔
## اینڈرائیڈ
فی الحال، ڈیولپمنٹ ایپ چلانے کے لیے `cargo-apk` استعمال ہوتا ہے۔ لیکن APKs اب اسٹور میں شائع نہیں کیے جا سکتے اور `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 لینکس سسٹمز پر استعمال ہوتا ہے؛
وہاں چلاتے وقت ہمیں `--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/
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.