A fast-paced, neon-themed endless runner game inspired by Geometry Dash, built as a Progressive Web App (PWA).
- 🎮 Endless Gameplay: Single endless level with progressively increasing difficulty
- 🌟 Neon Aesthetics: Cyberpunk-inspired visuals with glowing effects
- 🎵 Music Sync: Gameplay elements pulse to the beat
- 📊 Progress Tracking: Death counter, best score, progress bar, and difficulty level
- 🦘 Physics-Based Movement: Jump over obstacles with realistic physics
- 📱 PWA Support: Install as an app on desktop and mobile devices
- 🎯 Multiple Obstacles: Spikes, blocks, rotating saws, moving platforms, and... poop!
- 📈 Progressive Difficulty: Game starts easy and gradually introduces new challenges
- Desktop: Press
SPACEto jump - Mobile: Tap anywhere on the screen to jump
- Jump Height: Designed to clear 2 obstacles in a single jump
- Quick Retry: Press
SPACEafter game over to instantly retry
-
Generate Assets:
- Open
generate_assets.htmlin a browser - Right-click and save each canvas as directed
- Save icons to
assets/icons/folder - Save screenshots to
assets/screenshots/folder
- Open
-
Add Audio Files (Optional): Create or download simple audio files and place them in
assets/audio/:background.mp3orbackground.ogg- Background musicjump.mp3orjump.ogg- Jump sound effectdeath.mp3ordeath.ogg- Death sound effect
-
Start Local Server:
# Using Python python3 -m http.server 8000 # Or using Node.js npx serve .
-
Open in Browser: Navigate to
http://localhost:8000
The game can be installed as a Progressive Web App:
- Visit the game in a supported browser (Chrome, Edge, Safari)
- Look for the install button (📥) or browser prompt
- Click to install the app to your device
- The game will work offline once installed
# Test with HTTPS locally (required for service worker)
npx serve . --ssl-cert cert.pem --ssl-key key.pem
# Audit PWA compliance
npx lighthouse http://localhost:8000 --viewbeanie-dash/
├── index.html # Main game HTML
├── manifest.json # PWA manifest
├── service-worker.js # Offline functionality
├── js/
│ └── game.js # Game logic and physics
├── styles/
│ └── main.css # Neon theme styling
├── assets/
│ ├── icons/ # PWA icons
│ ├── screenshots/ # PWA screenshots
│ └── audio/ # Sound effects and music
└── generate_assets.html # Asset generator utility
- Time your jumps carefully - you can clear 2 obstacles with one jump
- Watch for patterns in obstacle placement
- Moving platforms are safe to land on
- The game speeds up gradually - stay focused!
- Your best score is saved locally
The game now features an extremely gentle learning curve:
- 0-40m (Learning): Only simple spikes, very slow speed, huge spacing (500px)
- 40-80m (Easy): Still just spikes, slightly faster
- 80-120m (Normal): Blocks introduced, moderate speed
- 240-320m (Medium): Moving platforms appear
- 320-400m (Hard): Rotating saws added, challenging speed
- 400m+ (INSANE!): All obstacles including poop, maximum challenge
Key Features:
- Obstacles start 800px away (plenty of reaction time)
- Spacing decreases by only 5px per level (very gradual)
- No moving objects until 240m (level 6)
- Minimum spacing is 250px (always manageable)
Edit these values in js/game.js:
jumpPower: Jump height (default: -14)gravity: Fall speed (default: 0.8)speed: Initial game speed (default: 3.5)maxSpeed: Maximum speed (default: 12)obstacleSpacing: Initial distance between obstacles (default: 500px)minObstacleSpacing: Minimum spacing at high difficulty (default: 250px)speedIncrement: Rate of speed increase (default: 0.0004)lastObstacleX: First obstacle distance (default: 800px)
Add new obstacle types in the generateObstacle() method in js/game.js.
- ✅ Chrome/Edge (Full PWA support)
- ✅ Firefox (No PWA install)
- ✅ Safari (Limited PWA support)
- ✅ Mobile browsers (Touch controls)
MIT License - See LICENSE file for details
Created by Chris Crane (2025)
Note: This is a demo game created for educational purposes. For production use, consider adding:
- Actual audio assets
- Server-side high score tracking
- Multiple levels or themes
- Power-ups and achievements
- Social sharing features