A 2D Bullet-Hell (Touhou-style) game engine built with Cinder framework.
- 6 Unique Bullet Patterns: Rain, Spiral, Burst, Aimed, Wall, and Mixed patterns
- Smooth Player Movement: Arrow keys or WASD for movement
- Focus Mode: Hold Shift to slow movement and show hitbox
- Graze System: Score bonus when bullets pass near player
- Hitbox Visualization: Toggle with H key
- Lives System: 3 lives with invincibility frames
- Pattern Switching: Press 1-6 to change patterns
- Auto-Pattern Cycle: Changes pattern every 15 seconds
- Spatial Grid Collision: O(1) collision detection for thousands of bullets
- Entity Pooling: Supports up to 8192 entities
| Key | Action |
|---|---|
| Arrow Keys / WASD | Move player |
| Shift | Focus mode (slow + show hitbox) |
| Z | Shoot |
| H | Toggle hitbox visibility |
| P | Pause game |
| 1-6 | Switch bullet patterns |
| Escape | Quit |
- Curtain Rain - Columns of red bullets falling with orange side bullets
- Spiral - Dual spirals emanating from center
- Burst - Circular burst pattern
- Aimed - Targeted spread shots following player
- Wall - Wall of green bullets
- Mixed - Cycles through different patterns
- Built with Cinder framework
- ECS-inspired entity system
- Spatial hashing grid for efficient collision
- Fixed timestep game loop
- Delta-time based pattern timing
Open the Visual Studio solution in build/BulletHell.sln and build with Debug|x64 configuration, or use CMake.
godMode- When true, player bullets don't destroy enemy bullets (for testing)difficulty- Multiplier for bullet speed and countshowHitbox- Toggle hitbox renderingpaused- Pause stategameOver- Game over state
BulletHell/
├── CMakeLists.txt
├── build/ # Build output
└── src/
└── BulletHell.cpp # Main game code
MIT License
