Animated visual story: how Bevy's startup systems and update game loop work, illustrated with Space Invaders

space_invaders/src/main.rs — how a Bevy game runs
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, (
spawn_player,
spawn_enemies,
setup_ui,
))
.add_systems(Update, (
handle_input,
move_entities,
fire_bullets,
check_collisions,
))
.run();
}
waiting to run...
Score 0000 Lives ♥ ♥ ♥
Initializing...
STARTUP
INPUT
MOVE
FIRE
COLLIDE