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.

Dave-RS 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:

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request