A 2.5D raycasting engine written in Rust from scratch. This project renders a 3D-style perspective from a 2D map, inspired by classic games like Wolfenstein 3D.
- Raycasting Renderer: Renders a 3D perspective from a simple 2D tile-based map.
- DDA Algorithm: Implements a Digital Differential Analyzer (DDA) algorithm for efficient ray-wall intersection calculations.
- Player Movement: Includes first-person controls for movement (forward/backward, strafing) and rotation.
- Collision Detection: Simple AABB-style collision detection to prevent the player from walking through walls.
- Projection Math: Corrects for fisheye lens distortion to create a natural-looking perspective.
Ensure you have the Rust toolchain installed. You can install it from rustup.rs.
-
Clone the repository:
git clone https://github.com/shivkr6/boom.git cd boom -
Build and run the project in release mode for the best performance:
cargo run --release
- ↑ / ↓: Move forward / backward
- ← / →: Rotate left / right
This project is licensed under the MIT License. See the LICENSE file for details.
