- Rust 87.9%
- Nix 12.1%
| .cargo | ||
| art | ||
| assets | ||
| nix | ||
| src | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| cliff.toml | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| rust-toolchain.toml | ||
gaming
A bevy project for practicing purposes.
Prerequisites
- git-lfs
- mold (linux only)
- cargo-watch (optional)
- git-cliff (optional)
Git LFS
After git cloning, if the output warns about encountering files that should have been pointers, but weren't, run the following git lfs commands while inside the root of the repo directory.
git lfs install
git lfs pull
Cranelift
If you don't know what Cranelift is and don't intend to use it, then this section can be skipped.
On Windows, Cranelift can cause a STATUS_ACCESS_VIOLATION runtime error on the GPU. On Linux,
Cranelift can fail to compile for release builds. For these reasons, Cranelift is currently not
configured to be used. In order to use Cranelift, do the following:
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
Add the following under the target table of choice in config.toml.
"-Zcodegen-backend=cranelift"
Windows only
cargo install -f cargo-binutils
rustup component add llvm-tools
Blender
Blender is used for creating assets and blenvy is a blender extension for integrating the workflow between blender and bevy. Blenvy currently only supports Blender 4.2.
Open level_one.blend in Blender and follow Blenvy's Quickstart Guide to get started. Once all set up, saving in blender should auto export to bevy.
Where to start
Run cargo w to watch for changes, otherwise cargo r to run bevy. Before making commits, update the changelog with git-cliff by
running git-cliff --unreleased --with-commit "chore: changed textures and stuff" -o CHANGELOG.md then make a commit as you normally
would with the same content used in the --with-commit flag. This could be automated with CI/CD later.
- Unofficial Bevy Cheat Book for getting started.
- bevy/examples for references.
- Understanding bevy's Query for the fundamentals of accessing entities.
- bevy_best_practices for tips and tricks.
- bevy_egui is used in dev.rs for making quick UI windows for debugging purposes while in-game.
- avian3d for physics simulation.
- bevy_atmosphere for a procedural sky.
- pyri_state for managing game states.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.