A fast-paced top-down arcade survival shooter, built solo in 72 hours for GMTK Game Jam 2026.
Fifth Time's a Charm is a small game made in Godot 4.7.1, written entirely in GDScript, created specifically for the GMTK Game Jam 2026. It's a top-down shooter / arcade survival game featuring wave-based enemy difficulty scaling.
Could possibly grow to be a roguelite or roguelike one day 🤔
Made 99% solo - just me, random assets from Freesound, and 72 hours. 👤
Survive endless enemy waves where both enemy count and enemy health scale up every time you clear them out. Fight for a growing score while managing your ammo carefully - because reloading at the wrong moment could be your last mistake.
Slight bullet hell vibes as well... ❤️🔥
| Mechanic | Description |
|---|---|
| 🔫 Ammo System | Limited ammo forces careful shot management |
| 🔄 Reload Mechanic | Timed reload with interruption handling |
| 💥 Knockback System | Physics-based enemy knockback on hit |
| 📈 Wave-Based Progression | Enemies scale in number and health per wave |
| ⏱️ Weapon Cooldown | Rate-of-fire limiting via ammo state |
| 🎯 Bullet Instancing | Dynamically spawned projectiles |
| 🎯 Hit Detection | Collision-based damage registration |
| ❤️ Damage System | Health tracking and death handling |
| 🌀 Projectile Physics | Direction-based bullet movement |
| ⬆️ Upgrade System | Randomized stat upgrades between waves |
| 🔁 Run-Based Progression | Upgrades persist for the current run only |
| ⏸️ Pause to Upgrade | Game pauses on upgrade selection |
- 📷 Camera Shake
- 💢 Screen Shake (Trauma-based)
- ✨ GPU Particles
- 🎯 Hit Feedback
- 🎬 Tween Animations
- 🌊 Elastic Easing
↔️ Sprite Flip
- 🎵 Dynamic Audio
- 🎲 SFX Randomization
- 🎚️ Pitch Variation
- 🔁 Looping Music
- 🔇 Mute Toggle
- 🔔 Audio Feedback
- 🎯 Custom Cursor (Crosshair)
- ⏸️ Pause Menu
- 🏠 Main Menu
- 🔄 Restart System
- 🔫 Ammo UI
- 🏆 Score Display
- 🖼️ Canvas Layer UI
- 💀 Game Over Screen
Fair warning: this was my second-ever project, made under a 72-hour Game Jam deadline - so the code is... Well... 🍝
Key architectural patterns used:
- 🗂️ Autoload Singleton
- 📡 Signal-Driven Communication
- 🧩 Component-Based Design
- 🧍 CharacterBody2D
- 🎬 Scene Management
- 🏷️ Node Groups
| Action | Input |
|---|---|
| Aim | 🖱️ Mouse |
| Move | ⌨️ WASD |
| Dash | 🖱️ RMB/Ctrl/Shift/Space |
| Shoot | 🖱️ LMB |
| Mute Music | ⌨️ M |
| Restart Game | ⌨️ R |
git clone https://github.com/blockersiontko/fifth_times_a_charm.git
- Open the project in Godot 4.7.1
- Hit Run
▶️ - Survive as long as you can!
Besides the game itself, this repository also includes:
- 🎼 FamiStudio project files (
.fms) - source files for the game's chiptune soundtrack, in case you want to tinker with the music or see how the tracks were made! - 🗑️ Unused assets - sprites, sounds, and other bits that didn't make the final cut but were important part of the development process!
Feel free to poke around if you're curious about the behind-the-scenes stuff! 🔍
| Asset | Made By |
|---|---|
| 📢 Countdown Voice | Jenni Nexus |
| 📢 Game Over Sound | Noirenex |
| 📢 Game Over Voice | Dersuperanton |
| 💭 Countdown Font (SaH1Outline.ttf) | Seva |
| 💭 Score Font (PIXY.ttf) | 2DFUNS Studio |
| 🧸 Everything else | Me (it was hard i swear) |
🪪 MIT License
Made with 💙 and way too little sleep for GMTK Game Jam 2026
💗 Special thanks to Fadli, Magic and Polgier