#rogue-like #gamedev #recursion #grid #visibility #observer #shadowcasting

shadowcaster

Recursive shadowcasting for grid based video games

4 releases

0.3.4 Jan 25, 2025
0.3.3 Jan 21, 2025
0.3.1 Jan 20, 2025
0.1.0 Dec 14, 2024

#1279 in Game dev

38 downloads per month

MIT license

18KB
404 lines

Shadowcaster

This is an implementation of recursive shadowcasting for use in grid based video games.

Example Usage

Bevy

/// Bevy requires any static data to implement Resource, so you can easily use that across the app
#[derive(Resource)]
pub struct VisContainer {
  pub visibility: shadowcaster::Visibility,
}

/// update the observer as the player moves
pub fn player_transform_system(
  mut commands: Commands,
  player_query: Query<&Transform, With<Player>>,
) {
    if player_query.get_single().is_err() {
        return;
    }
    let player_transform = player_query.single();
    vis_container.visibility.observer = player_grid_pos;
}

Dependencies

~4MB
~125K SLoC