FPS Counter Example - Bevy Typing CST Test
Loading…
FPS Counter Example — Bevy Code
Displays FPS on screen using Bevy UI.
use bevy::prelude::*;
fn main() {
App::build()
.add_plugins(DefaultPlugins)
.add_startup_system(setup.system())
.add_system(update_fps.system())
.run();
}
struct FpsText;
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn_bundle(UiCameraBundle::default());
commands.spawn_bundle(TextBundle {
text: Text::with_section(
"FPS: 0",
TextStyle {
font: asset_server.load("fonts/FiraSans-Bold.ttf"),
font_size: 30.0,
color: Color::WHITE,
},
Default::default(),
),
..Default::default()
}).insert(FpsText);
}
fn update_fps(time: Res<Time>, mut query: Query<&mut Text, With<FpsText>>) {
for mut text in query.iter_mut() {
text.sections[0].value = format!("FPS: {}", (1.0 / time.delta_seconds()) as i32);
}
}Bevy Language Guide
Bevy is a modern, open-source Rust game engine designed for high-performance 2D and 3D games, with a focus on ECS architecture, modularity, and cross-platform support for desktop and web.
Primary Use Cases
- ▸Cross-platform 2D and 3D games
- ▸Rust-native game projects
- ▸Educational games and simulations
- ▸Prototypes and experimental game engines
- ▸WebAssembly and desktop deployment
Notable Features
- ▸Rust-based ECS (Entity Component System)
- ▸Modular plugin architecture
- ▸wgpu renderer for 2D/3D
- ▸Bevy UI toolkit
- ▸Asset management and hot-reloading
Origin & Creator
Bevy was created by Carter Anderson and maintained by an open-source community, emphasizing Rust-native ECS and performance-focused game development.
Industrial Note
Bevy is gaining traction in Rust-native game development, educational games, indie 2D/3D games, simulations, and hobby projects where performance and safety are priorities.