Game Jam Devlog


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 |
The Concept
When we saw the theme "power," our minds immediately raced through various interpretations. We considered:
- A platformer where you power up objects around the map to progress
- A horror game centered around your flashlight as the only source of power
- Various other power-themed mechanics
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.
Journey to Mars (48 Hours)
Day 1: Foundation and Core Systems
Initial Setup (Hours 1-4)
Our first commits show the foundational work:
- Project initialization with Godot 4.4
- Basic scene architecture with main.tscn as our 3D space
- Terrain system design using modular pieces
Terrain and Movement (Hours 5-12)
Early development focused on the infinite scrolling terrain system:
- Created a script terrain_manager.gd for procedural terrain generation
- Built modular terrain scenes that could be combined seamlessly
- Implemented basic player movement with WASD controls and banking mechanics
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:
- Created a text-based song format with timestamps and note data
- Built `rhythm_manager_3d.gd` to spawn 3D notes synchronized to music
- Integrated shooting mechanics with rhythm timing
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: _, _, _, _
Day 2: Combat and Polish
Enemy Systems (Hours 19-30)
Day 2 started with enemy implementation:
- Created basic enemy racers that follow the terrain
- Added collision detection between bullets and enemies
- Implemented wave-based spawning system
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:
- Player-enemy collision system with mutual damage
- Health system with visual feedback
- Combo system that resets when taking damage
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:
- Started with colored cubes for rhythm notes
- Switched to 2D Xbox button sprites for familiarity
- Finally settled on Nintendo Switch directional arrows with Xbox color coding (Yellow/Blue/Red/Green for Up/Left/Right/Down)
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:
- Added SFX for shooting, power-ups, and hits
- Implemented visual effects for enemy destruction
- Created victory and game-over screens
- Positioned the rhythm track away from terrain for better visibility
- Web export optimization (ongoing challenge!)
What We Learned
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:
- Synchronizing 3D movement with audio timing
- Managing perspective and depth perception
- Ensuring consistent hit detection across different camera angles
Modular Terrain
Our terrain system uses interconnected pieces that seamlessly flow together:
- Road corners, crosses, and straight sections
- Procedural spawning based on weighted probabilities
- Infinite scrolling with proper cleanup
Song Format
We developed our own text-based song format that was easy to author and parse:
- Human-readable timestamps
- Support for chord notation (multiple simultaneous notes)
- Rest notes for rhythm breaks
First 3D Game Experience
This was our first 3D game jam project, and we learned a lot:
- 3D collision detection is more complex than 2D
- Performance optimization becomes critical with many 3D objects
- Camera positioning dramatically affects gameplay feel
Rhythm Game Design
Balancing rhythm mechanics with other gameplay systems:
- Timing windows need to feel fair but challenging
- Visual feedback is crucial for player learning
- Audio synchronization requires careful offset tuning
Challenges and (Some) Solutions
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:
- Proper object pooling for bullets
- Efficient cleanup of off-screen elements
- Selective rendering optimizations
If We Had More Time...
48 hours flew by incredibly fast. With more time, we would have loved to add:
- More Enemy Types: Flying patterns, shield mechanics, different behaviors
- Boss Battles: Epic rhythm-synchronized boss encounters
- Pattern Variety: More complex note patterns and chord progressions
- Visual Effects: Particle systems, better explosion effects
- Audio Integration: More responsive audio feedback
- Difficulty Scaling: Progressive difficulty increase
Final Thoughts
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.
Files
Get In Space They Can't Hear You Beat
In Space They Can't Hear You Beat
A rhythm-based bullet hell shooter set in Mars for Kenney Jam 2025
Leave a comment
Log in with itch.io to leave a comment.