Dangerous Dave - Rust Edition
April 5, 2025 ยท View on GitHub
A 2D platformer game written in Rust using macroquad, inspired by the classic "Dangerous Dave" game.

๐ฎ About
Dave-RS is a remake of the classic DOS game "Dangerous Dave" implemented in Rust. Navigate through levels, avoid monsters, collect items, and find your way to the exit door in this action platformer.
โจ Features
- Classic platformer gameplay
- Monster AI with customizable waypoints and behaviors
- Shooting mechanics
- Tiled map integration for level design
- Custom rotation effects for enemies
๐ง Requirements
- Rust (latest stable version)
- Cargo package manager
- Compatible OS: Windows, macOS, or Linux
๐ Building and Running
Clone the repository:
git clone https://github.com/oawad79/dave-rs.git
cd dave-rs
Build and run the game:
cargo run --release
For development:
cargo run
๐ฏ How to Play
- Arrow Keys: Move & Jump
- Left Alt: Jet Pack
- Left Ctrl : Shoot
- ESC: Pause/Menu
- F1: Help
- Ctrl-A: Toggle Full/Windowed Mode
- Ctrl-[1-9, 0]: Cheats to Skip to levels, 0 for Level 10
๐ ๏ธ Technical Details
The game is built with:
- Rust: Programming language
- macroquad: 2D game framework
- macroquad-tiled: Tiled map integration
- Tiled Map Editor: Tiled Editor
Monster System
Monsters in the game follow custom waypoint paths defined in Tiled maps. They can:
- Move along predefined paths
- Rotate around different axes
- Shoot at the player when in range
Level Design
Levels are created using the Tiled map editor, with custom properties to define:
- Monster placement and behavior
- Collectible items
- Player starting position
- Exit points
๐ Development Status
This project is under active development. New features and improvements are being added regularly.
๐ Credits
- Original "Dangerous Dave" game by John Romero
- Macroquad library by Fedor Logachev
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request