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

image

https://github.com/user-attachments/assets/dbb12382-437d-4ec8-9015-b6be12b689df

image

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

Built With

Share this project:

Updates