Check out the Bevy Assets page for more great options.
A few libraries that the authors of this template have vetted and think you might find useful:
Name | Category | Description |
---|---|---|
leafwing-input-manager |
Input | Input -> Action mapping |
bevy-inspector-egui |
Debugging | Live entity inspector |
bevy_mod_debugdump |
Debugging | Schedule inspector |
avian |
Physics | Physics engine |
bevy_rapier |
Physics | Physics engine (not ECS-driven) |
bevy_common_assets |
Asset loading | Asset loaders for common file formats |
bevy_asset_loader |
Asset loading | Asset management tools |
iyes_progress |
Asset loading | Progress tracking |
bevy_kira_audio |
Audio | Advanced audio |
bevy_cobweb_ui |
UI | UI framework |
bevy_egui |
UI / Debugging | UI framework (great for debug UI) |
tiny_bail |
Error handling | Error handling macros |
In particular:.
leafwing-input-manager
is very likely to be upstreamed into Bevy in the near future.bevy-inspector-egui
andbevy_mod_debugdump
help fill the gap until Bevy has its own editor.avian
orbevy_rapier
helps fill the gap until Bevy has its own physics engine.avian
is easier to use, whilebevy_rapier
is more performant.bevy_cobweb_ui
is well-aligned withbevy_ui
and helps fill the gap until Bevy has a full collection of UI widgets and features.
None of these are necessary, but they can save you a lot of time and effort.
If you're using VS Code, the following extensions are highly recommended:
Name | Description |
---|---|
rust-analyzer | Rust support |
Even Better TOML | TOML support |
vscode-ron | RON support |
Dependi | crates.io dependency resolution |
EditorConfig for VS Code | .editorconfig support |
Note
About the included rust-analyzer settings
This template sets rust-analyzer.cargo.targetDir
to true
in .vscode/settings.json
.
This makes rust-analyzer
use a different target
directory than cargo
,
which means that you can run commands like cargo run
even while rust-analyzer
is still indexing.
As a trade-off, this will use more disk space.
If that is an issue for you, you can set it to false
or remove the setting entirely.
If you're using RustRover, you may want to set up Live Templates to provide autocomplete for common boilerplate code.
Unfortunately, it is not really possible at this time to share Live Templates on a per-project basis, as they are global, however you can still set them up yourself.
Here's a quick guide for porting this template's VS Code snippets to Live Templates:
- Replace any instances of
$0
in the template with$END$
- Replace any instances of
$1
in the template with$NAME$
or something similar. - For the
plugin
template, you might want to set the applicability to rust modules. - For the other templates, you might want to set the applicability to rust modules, statements, and expressions.
To make it easier to enable or disable these live templates for different projects, you can put them in a template group called Bevy
.
There are many other Bevy templates out there. Check out the templates category on Bevy Assets for more options. Even if you don't end up using them, they are a great way to learn how to implement certain features you might be interested in.