book_teaser.mp4
Read the first 7 chapters free. The paid ebook includes chapters 8-11, and I'm actively working on more content. As an early access release, it's currently available at a discounted price. Chapter 12 is also free to read.
Learn to build a video game from scratch using Rust and Bevy. This first chapter covers setting up your game world, creating a player character, and implementing movement and animations.
Learn procedural generation techniques to create dynamic game worlds.
Learn to build a data-driven character system in Bevy. We'll use a RON file to configure character attributes and animations, create a generic animation engine that handles walk, run, and jump animations, and implement character switching.
Let's make the player interact with the world properly, no more walking through trees, water, or rocks. We'll implement z-ordering so they can walk behind objects, giving your 2D game true depth. Also, you'll build a collision visualizer for debugging.
Build an inventory system to collect items from the world, then zoom in and add smooth camera follow.
Learn to build a particle system with magical powers and create stunning particle effects. Learn custom shaders, additive blending, and how to make your game feel alive.
Build intelligent enemies that hunt and attack the player.
Add health, damage, and combat mechanics that make your game feel dangerous.
Break through Wave Function Collapse size limits by stitching multiple maps into one massive world.
Learn to save and load your game so players can pick up exactly where they left off.
Learn how to add background music and sound effects to your Bevy game.
Learn how to build multiplayer networking in Bevy with SpacetimeDB.
Each chapter has its own directory with a complete, runnable project. Navigate to the chapter directory you want to explore and run:
cd chapter1 # or chapter2, chapter3, chapter4, chapter5, chapter6, chapter7, chapter12
cargo runNote for Linux users on Wayland: if you see rendering artifacts, run the app with the X11 backend:
WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY= cargo runCommunity Tip: This optimization was pointed out by one of our community members, thank you for helping make this tutorial better!
Bevy's default debug configuration can lead to performance issues: scenes that should run smoothly might drop to unplayable framerates, or large assets might take minutes to load.
The Bevy team documents this issue and provides a solution.
Add these optimizations to your Cargo.toml:
# At the bottom of your Cargo.toml
# 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- Join our Discord community to get notified when new chapters drop
- Connect with me on Twitter/X
- Connect with me on LinkedIn
- assets/tile_layers: "16x16 Game Assets" by George Bailey, CC-BY 4.0.
The tutorial code in this repository is licensed under the MIT License. See the LICENSE file for details.