A modern retro dungeon pixel art game starter project built with HTML5 Canvas, Pixi.js, and procedural dungeon generation.
- 🏰 Procedural dungeon generation using Dungeoneer
- 🛡️ Knight character with smooth movement controls
- 🖱️ Diablo-style mouse click pathfinding - Click to move with automatic route finding
- ⌨️ Smooth keyboard movement - Hold arrow keys for continuous movement
- 🎯 A* pathfinding algorithm for intelligent navigation
- ⚔️ Combat system with enemies and gold rewards
- 🎨 Pixel art graphics with 32x32 sprites
- ✨ Win condition when reaching the finish tile
- 🎲 Generate new dungeons on demand
- 📱 Responsive design with Bootstrap 5
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/vomitorius/endless_dungeon.git
cd endless_dungeon- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:3000
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run lint:fix- Run ESLint with auto-fixnpm run format- Format code with Prettier
- Movement Controls:
- Arrow Keys: Hold for smooth continuous movement
- Mouse Click: Click on any walkable tile for automatic pathfinding (500ms steps)
- Touch/Swipe: Swipe gestures on mobile devices
- Virtual Gamepad: On-screen controls for mobile
- Navigate through floors (dark areas) and doors
- Defeat enemies by moving into them (they drop gold)
- Avoid walls (brown blocks)
- Collect all gold and reach the finish tile to win
- Generate new dungeons for endless gameplay
- Click "Generate New Dungeon" to create a new challenge
- Knight 🛡️ - Your character (controllable)
- Floor - Dark areas you can walk on
- Wall - Brown blocks that block movement
- Door - Openings between rooms
- Finish ✨ - Goal tile that triggers victory
- Pixi.js - HTML5 Canvas/WebGL library for rendering
- Dungeoneer - Procedural dungeon generation
- Vite - Modern build tool and dev server
- Bootstrap 5 - UI framework
- ESLint & Prettier - Code quality and formatting
endless_dungeon/
├── public/
│ └── img/ # Game sprites and assets
├── src/
│ └── main.js # Main game logic
├── index.html # Entry point
├── vite.config.js # Vite configuration
└── package.json # Dependencies and scripts
- Fork the repository
- Create a feature branch
- Make your changes
- Run linting and formatting:
npm run lint:fix && npm run format - Submit a pull request
MIT License - see LICENSE file for details