[package] name = "bevy_new_2d" version = "0.1.0" edition = "2024" license = "MIT OR Apache-2.0 OR CC0-1.0" [dependencies] # Use only features needed for a 2D game to improve compile time and size bevy = { version = "0.18", default-features = false, features = ["2d"] } rand = "0.9" # Compile out low-severity logs to improve performance. # Remove these features if you want to profile your game with tracy. # (see ) tracing = { version = "0.1", features = [ "max_level_debug", "release_max_level_warn", ] } [target.wasm32-unknown-unknown.dependencies] getrandom = { version = "0.3", features = ["wasm_js"] } [features] # Default to a native dev build. default = ["dev_native"] dev = [ # Improve compile times for dev builds by linking Bevy as a dynamic library. "bevy/dynamic_linking", "bevy/bevy_dev_tools", "bevy/bevy_ui_debug", # Improve error messages coming from Bevy "bevy/track_location", ] dev_native = [ "dev", # Enable asset hot reloading for native dev builds. "bevy/file_watcher", # Enable embedded asset hot reloading for native dev builds. "bevy/embedded_watcher", ] [package.metadata.bevy_cli.release] # Disable dev features for release builds. default-features = false [package.metadata.bevy_cli.web] # Disable native features for web builds. default-features = false [package.metadata.bevy_cli.web.dev] features = ["dev"] [lints.rust] # Mark `bevy_lint` as a valid `cfg`, as it is set when the Bevy linter runs. unexpected_cfgs = { level = "warn", check-cfg = ["cfg(bevy_lint)"] } [lints.clippy] # Bevy supplies arguments to systems via dependency injection, so it's natural for systems to # request more than 7 arguments, which would undesirably trigger this lint. too_many_arguments = "allow" # Queries may access many components, which would undesirably trigger this lint. type_complexity = "allow" # Make sure macros use their standard braces, such as `[]` for `bevy_ecs::children!`. nonstandard_macro_braces = "warn" # You can configure the warning levels of Bevy lints here. For a list of all lints, see: # [package.metadata.bevy_lint] # panicking_methods = "deny" # pedantic = "warn" # Compile with Performance Optimizations: # # Enable a small amount of optimization in the dev profile. [profile.dev] opt-level = 1 # Enable a large amount of optimization in the dev profile for dependencies. [profile.dev.package."*"] opt-level = 3 # Remove expensive debug assertions due to [profile.dev.package.wgpu-types] debug-assertions = false [profile.release] # Compile the entire crate as one unit. # Slows compile times, marginal improvements. codegen-units = 1 # Do a second optimization pass over the entire program, including dependencies. # Slows compile times, marginal improvements. lto = "thin" # This profile will be used by `bevy run web` automatically. [profile.web-release] # Default to release profile values. inherits = "release" # Optimize with size in mind (also try "z", sometimes it is better). # Slightly slows compile times, great improvements to file size and runtime performance. opt-level = "s" # Strip all debugging information from the binary to slightly reduce file size. strip = "debuginfo" # Optimize for build time in CI. [profile.ci] inherits = "dev" opt-level = 0 debug = "line-tables-only" codegen-units = 4 [profile.ci.package."*"] opt-level = 0