Skip to content

Latest commit

 

History

History
78 lines (59 loc) · 5.83 KB

tooling.md

File metadata and controls

78 lines (59 loc) · 5.83 KB

Recommended 3rd-party tools

Check out the Bevy Assets page for more great options.

Libraries

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 and bevy_mod_debugdump help fill the gap until Bevy has its own editor.
  • avian or bevy_rapier helps fill the gap until Bevy has its own physics engine. avian is easier to use, while bevy_rapier is more performant.
  • bevy_cobweb_ui is well-aligned with bevy_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.

VS Code extensions

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.

RustRover Live Templates

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.

Other templates

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.