Skip to content

BlackPhlox/foxtrot

 
 

Repository files navigation

Foxtrot

Live Demo

The all-in-one Bevy 3D game template.

foxtrot-480p.mov

What does this template give you?

  • A 3D character controller
  • Physics via bevy_rapier
  • Audio via bevy_kira_audio
  • Pathfinding via oxidized_navigation
  • bevy_editor_pls in the dev feature, bound to 'Q'
  • Custom editor for the game state found in the windows selection for bevy_editor_pls.
  • Saving / loading levels
  • Saving / loading the game state
  • Animations
  • A custom dialog system
  • Shaders
  • GLTF imports, including auto-detection of colliders
  • Dynamic builds in the native-dev feature
  • Grass blades using warbler_grass
  • Smooth cameras via bevy_dolly
  • A skydome that follows the camera
  • Simple error handling via bevy_mod_sysfail
  • Simple plugin creation via seldom_fn_plugin
  • Particle effects via bevy_hanabi
  • Clean and extensible object spawning via spew

Usage

Simply use the template button on GitHub to create a new repository from this template. Then, replace all instances of the word foxtrot with the name of your game. Change the game version as well as the author information in the following files:

  • Cargo.toml
  • build/windows/installer/Package.wxs
  • build/macos/src/Game.app/Contents/Resources/Info.plist

Running the game

Native:

cargo run

Wasm:

trunk serve --no-default-features --features wasm_dev

Building in general requires setting up LLD or ZLD as described in the Bevy book. Don't worry, it's super easy:

  • Ubuntu: sudo apt-get install lld

  • Arch: sudo pacman -S lld

  • Windows: Ensure you have the latest cargo-binutils

    cargo install -f cargo-binutils
    rustup component add llvm-tools-preview
  • MacOS: Modern LLD does not yet support MacOS, but we can use zld instead: brew install michaeleisel/zld/zld

Building WASM requires trunk:

cargo install --locked trunk

Updating assets

You should keep the credits directory up to date. The release workflow automatically includes the directory in every build.

Updating the icons

  1. Replace build/windows/icon.ico (used for windows executable and as favicon for the web-builds)
  2. Replace build/macos/icon_1024x1024.png with a 1024 times 1024 pixel png icon and run create_icns.sh (make sure to run the script inside the macos directory) - Warning: sadly this seems to require a mac...

Releases

No releases published

Packages

No packages published

Languages

  • Rust 97.2%
  • JavaScript 1.3%
  • Other 1.5%