Game Jam Devlog


A 3D rhythm-based bullet hell set in Mars

Teamcomigor, luamct, prcastro
JamKenney Jam 2025  
Theme"Power"
Duration48 Hours
EngineGodot 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

linux_x64.zip 34 MB
2 days ago
web.zip Play in browser
2 days ago
win_arm64.zip 37 MB
2 days ago
win_x64.zip 41 MB
2 days ago

Get In Space They Can't Hear You Beat

Leave a comment

Log in with itch.io to leave a comment.