dance-til-you-drop
A rhythm-based boss fight game built in Godot using C#.
About
Dance Till You Drop is a rhythm-action boss battle game where players must memorise and perform dance patterns while surviving a constantly changing dance floor.
Players defeat the boss by correctly following movement sequences. Successful patterns deal damage, while incorrect moves and dangerous tiles punish mistakes.
The project focuses on object-oriented game architecture, procedural generation, event-driven systems, asynchronous gameplay systems, and gameplay programming using Godot and C#.
Features
- 9 × 10 procedurally generated dance floor
- Dynamic colour-changing dance floor with tile state system
- Tile-based player movement
- Randomised dance pattern generation
- Visual dance pattern previews using generated tiles and directional arrows
- Event-driven player input validation system
- Prototype first boss attack with randomly generated danger tiles
- Independent danger tile timing and warning animations
Modular architecture using separate gameplay systems:
- DanceFloor
- FloorTile
- Player
- DancePattern
- DanceManager
- DanceController
- BossAttackController
- FaceDodge
Built using Godot 4 and C#
Planned Features
- Complete boss attack system
- Combat system
- Health and damage system
- More complex boss attacks
- More complex dance patterns
- Pattern difficulty progression
- Music synchronisation
- Visual effects and polish
- Boss animations
Technical Highlights
Event-driven input system
Player movement is handled separately from dance validation using C# events. The Player class broadcasts successful movements, allowing the DanceController to validate patterns without tightly coupling gameplay systems.
Procedural generation
Dance patterns are represented as movement sequences and converted into visual previews dynamically at runtime. The dance floor also uses procedural generation to create tile colour layouts while preventing adjacent tiles from sharing the same colour.
Asynchronous gameplay systems
Boss attacks use asynchronous C# tasks and Godot timers to allow individual danger tiles to operate independently. Each tile can progress through its own warning, danger, and disappearance sequence without blocking other tiles.
Component-based architecture
Gameplay responsibilities are separated across dedicated systems, allowing individual features to be modified without affecting unrelated parts of the game.
The project is currently in active development, with gameplay systems and boss mechanics being developed incrementally.
Technologies
- Godot 4
- C#
- Git & GitHub
Team
Developed by:
- Kashmira Hassan
Screenshots
https://github.com/user-attachments/assets/dbb12382-437d-4ec8-9015-b6be12b689df
https://github.com/user-attachments/assets/d21bddf6-7acd-4e06-8699-b00cd302bb1a
https://github.com/user-attachments/assets/1163f2fd-391f-476e-9f38-4b8d737cb3f8
https://github.com/user-attachments/assets/17beecc5-aa95-4d12-8228-8190665b5443
Log in or sign up for Devpost to join the conversation.