top of page

Go Back

Rhythmic Nightmare

Project Info

Project Status

Project Type

Project Duration

Game Engine

Language(s)

Platform

Primary Role(s)

 

 

Team Size

Completed

Game Programming Assignment

4 Weeks (July 2023 -August 2023)

Unity

C#

Windows, WebGL

Designer, Gameplay Programmer, Tools Programmer, VFX Programmer, UI/UX Programmer

1

About

Rhythmic Nightmare is a 2D rhythm game about a boy haunted by nightmares, where players control Plush, determined to fend off nightmarish monsters. Inspired by Undertale's Undyne boss fight, the gameplay challenges players to press directional keys to face incoming enemies and time your block accurately to score highly. This was my first rhythm game project, and I researched extensively to develop a beatmapping tool that syncs note spawning with the music. At the time, I had just two months of Unity experience.

Roles and Responsibilities

  • Managed Project Setup and Source Control

  • All art assets created by me (except 1 placeholder)

  • Designed and implemented gameplay mechanics, including:

    • Designed gameplay based on Undertale's Undyne Boss Fight.

    • Directional player controller to face player towards incoming enemies (up, down, left, right).

    • Timing-based blocking system using spacebar (perfect, good, bad, miss).

    • Two enemy types with unique behaviors (standard attacker, sneak attacker from behind).

  • Developed Beatmapping Tool:

    • Created a custom beatmapping tool to synchronize note spawning with beats based on BPM, featuring randomized spawn points and note variations.

    • Integrated features for timing adjustments, pause handling, and a level-cleared screen after all notes are spawned.​​​​

  • Developed and Integrated UI Elements, such as:

    • In-game HUD displaying player health, score, high score, remaining time, combo streak.​

    • Game-over menu and level-cleared displaying performance stats (note accuracy and total hits).

    • Main menu that contains tutorial menu and options menu to adjust master, music or sfx volume.

  • Implemented Audio Systems for:​

    • Background music and tracks for different levels

    • Sound effects for player and UI interactions​

Directional Player Controller
 

Directional Player Controller enables the player character to move around a bed at the center of the screen. Using arrow keys or WASD, the player can move left, right, up, or down relative to the bed's position. This was done so by positioning the sprite as the child a GameObject that has the player controller script. A raycast angle is set based on the input direction for detecting enemies, while dynamically updating the character's  rotation to match the movement direction. 

Time-Based Blocking System
 

Timing-Based Blocking System uses directional inputs and raycasts to determine the accuracy of blocking enemies. When the player presses the "Hit" button, the system checks if an enemy is within a specific range, awarding a Perfect, Good, or Bad rating based on timing accuracy. 

Beatmapping Tool
 

The beatmapping tool synchronizes note spawning with song timing based on BPM calculations. The tool tracks the song's position in beats, spawning notes at predefined beats using a customizable offset to ensure accurate alignment. Notes are instantiated at random spawn points from a set of prefabs, adding randomness and different experience for everyone.

UI / Menu
 

The buttons in Main Menu was placed on the floor, illuminated by light streaming through an open door. I thought this design would be both creative and unique as it is integrated seamlessly into the scene, adding a slight eerie vibe. The Options Menu includes an Easy Mode toggle for automatic hits on enemy collision and volume controls for Master, Music, and SFX. The in-game HUD features player's health in the form of hearts that has a subtle beating effect. As for the timer, it is represented as a radial progress circle that gradually decreases over time, providing a clear visual countdown for the level. 

  • Main Menu

  • Options Menu

  • Tutorial Screen

  • In-game HUD for:

    • Health

    • Score​

    • High Score

    • Timer

    • Combo Streak

    • Current Level Name

  • Level Cleared​ Screen

  • Game Over Screen

bottom of page