Posted July 20, 2025 by prcastro
#devlog #release
A 3D rhythm-based bullet hell set in Mars
Team | comigor, luamct, prcastro |
Jam | Kenney Jam 2025 |
Theme | "Power" |
Duration | 48 Hours |
Engine | Godot 4.4 |
When we saw the theme "power," our minds immediately raced through various interpretations. We considered:
But eventually, we settled on the concept of "power-ups" in a bullet-hell context. As fans of rhythm games like Guitar Hero and Rock Band, we were drawn to the idea of merging precise timing mechanics with intense space combat. The result? A 3D rhythm runner where your shooting is synchronized to the beat, and hitting notes powers up your attacks.
Initial Setup (Hours 1-4)
Our first commits show the foundational work:
Terrain and Movement (Hours 5-12)
Early development focused on the infinite scrolling terrain system:
The terrain system was crucial - we wanted that classic endless runner feel where the world streams past you at high speed.
Rhythm Integration (Hours 13-18)
This was where things got interesting. We developed a custom rhythm system from scratch:
Our song format looked like this:
bpm: 132 offset: 0:00:00.220 0:00:00.000: A, A, A, A 0:00:04.000: _, _, _, _
Enemy Systems (Hours 19-30)
Day 2 started with enemy implementation:
We soon realized we needed variety, so we added "miner" enemies with bouncing behavior - they would dive down toward the player and bounce back up, creating dynamic dodge patterns.
Mutual Damage (Hours 31-36)
A key gameplay decision was making combat mutual - enemies could damage the player too:
This added real stakes to the rhythm gameplay - missing beats wasn't just about score anymore.
Visual Evolution (Hours 37-44)
Our visual design went through several iterations:
The 2D-in-3D approach using Sprite3D with billboard rendering gave us clean, readable UI elements that stayed camera-facing.
Final Polish (Hours 45-48)
The last few hours were intense optimization and polish:
3D Rhythm System
Unlike traditional 2D rhythm games, we built everything in 3D space. Notes spawn in world coordinates and travel toward a hit zone. This created unique challenges:
Modular Terrain
Our terrain system uses interconnected pieces that seamlessly flow together:
Song Format
We developed our own text-based song format that was easy to author and parse:
First 3D Game Experience
This was our first 3D game jam project, and we learned a lot:
Rhythm Game Design
Balancing rhythm mechanics with other gameplay systems:
Web Export Woes
Our biggest ongoing challenge has been web export compatibility. Complex 3D scenes with multiple systems sometimes don't translate perfectly to WebGL, requiring ongoing optimization.
Collision Detection Complexity
Initially, we had redundant collision detection on both player and enemy sides. We streamlined this to single-sided detection using Godot's group system.
Performance with Many Objects
With bullets, enemies, terrain pieces, and rhythm notes all active simultaneously, we had to optimize:
48 hours flew by incredibly fast. With more time, we would have loved to add:
Building "In Space They Can't Hear You Beat" in 48 hours was an incredible experience. We went from initial concept to a fully playable 3D rhythm bullet-hell game, learning Godot 4's 3D capabilities along the way.
The combination of rhythm mechanics with bullet-hell gameplay created something unique - every shot fired needs to be perfectly timed, making both the audio and combat feel interconnected. Players aren't just shooting enemies; they're performing music through combat.