Dash
A fast-paced side-scrolling runner teaching PPU graphics, sprite management, and NMI-driven game loops.
Coming Soon
Dash is currently in development. Check back soon!
What You’ll Build
Side-scrolling runner. The world rushes past. Obstacles appear. React or crash. Every frame counts.
Guide your character through an ever-accelerating world of obstacles. Jump, slide, and dodge your way to survival. The NES PPU renders the scrolling world while your code keeps the player alive.
Why This Game?
Dash is your first NES game — and it teaches everything you need to know about the hardware. The PPU draws the background. Sprites draw the player and obstacles. The NMI interrupt drives the game loop. Controller input keeps you in control.
- Set up the PPU and understand tile graphics
- Manage hardware sprites for the player and obstacles
- Build an NMI-driven game loop that runs at 60fps
- Read controller input for responsive controls
- Implement collision detection between sprites and background
- Create a scrolling world that gets faster over time
By the end, you’ll understand how the NES draws every frame.
Skills You’ll Master
- PPU graphics — tiles, palettes, nametables
- Sprite management — OAM, positioning, animation
- NMI handling — vblank-driven game loop
- Controller input — reading the joypad
- Scrolling — hardware scroll registers
- Collision detection — sprite vs background
Prerequisites
This is Game 1. No prerequisites — just enthusiasm and a willingness to learn 6502 assembly.
You’ll need an assembler (ca65), a linker (ld65), and an emulator (Mesen or FCEUX).
Time Investment
128 units at 60-90 minutes each. Roughly 128-192 hours total, spread across 8 phases.
Unit Roadmap
Phase 1
Build the core game loop
Phase 2
Expand mechanics and variety
Phase 3
Content and level design
Phase 4
Visual polish and effects
Phase 5
Audio and music
Phase 6
Advanced features
Phase 7
Optimisation and testing
Phase 8
Final polish and distribution