an opinionated bevy template for my projects.
migration to bevy 0.15 and partial rewrite in progress. not everything is functional. use the previous branch instead
- uses bevy 0.15
- minimal and curated plugin support
- fully featured accesible menu with keyboard, mouse and gamepad navigation
- ci that checks errors and lint
- creates binaries for web, linux, mac and windows when releasing a tag
- deploy to itch automatically
- has a nix flake development shell for easy building
- use this template in a new project (on github, a green button on the top right)
to run a debug build use cargo:
cargo run
you can also play around with some of the included examples with cargo run --example <name>
. and if you want to get started quickly, copy any example to src/main.rs
!
if you have nix installed, running nix develop
you get a shell with all the dependencies already installed.
in order to create a release build with binaries for all platforms you have two options: either you trigger it manually on the actions page or you add a tag like '[anything]0.1' with the version you want.
git tag -a "0.1" -m "test release"
git push --tags
if you want to also deploy this build to itch, go to the repository settings > secrets > actions and add:
ITCH_API_KEY = [your api key]
to run a release build locally:
cargo run --release --no-default-features --features release
bevy has built in support for the tracy profiler. you can profile your game easily:
tracy-capture -o capture.tracy &
cargo run --release --no-default-features --features trace
and then view the result with:
tracy capture.tracy
this is heavily based on TheBevyFlock/bevy_quickstart and NiklasEi/bevy_game_template. please use these more general templates that are robust and have community support. hello bevy is hardly tested and very tailored to my preferences.
this template intends to use as little external dependencies as possible to facilitate version updates and avoid bloat. that said, there are a few awesome community plugins that make everything as easy as possible.
- leafwing-input-manager: an awesome way of handling input from multiple sources and create simple bindings
- bevy-inspector-egui: optional and only enabled when using the
inspector
feature. it provides a very useful world inspector
this project is dual licensed under MIT and Apache 2.0, do what you want with it!
the files under assets may come from other sources and have different licenses:
icons/bevy.png
andicons/pixelbevy.png
from cart, not opensounds/boing.ogg
, sound effect from bigsoundbank.com, CC0music/rain.ogg
, sound effect from bigsoundbank.com, CC0fonts/pixel.ttf
, public pixel font from ggbot, CC0fonts/sans.tff
, outfit font from google, OFL