Skip to main content

Overview
#

A unique rhythm-based shooting game developed in Unreal Engine that challenges players to shoot targets in sync with music. The game reads MIDI files to generate gameplay patterns, creating a dynamic shooting experience where precision and rhythm awareness are equally important.

Gameplay Concept
#

Players face a series of targets that appear and must be shot at specific moments dictated by the music’s rhythm. The game parses MIDI files in real-time, converting musical notes into target spawn events, creating a seamless fusion of audio and gameplay mechanics.

Core Features
#

  • MIDI-Driven Gameplay: Dynamic target generation based on MIDI file parsing
  • Rhythm Synchronization: Targets spawn and must be hit precisely on beat
  • Scoring System: Combo multipliers and accuracy ratings based on timing precision
  • Multiple Difficulty Levels: Adjustable note density and timing windows
  • Visual Feedback: Real-time hit indicators and beat visualization
  • Audio Integration: Synchronized sound effects and music playback

Technical Implementation
#

MIDI File Processing
#

Implemented a custom MIDI parser in Blueprint that reads standard MIDI files and extracts:

  • Note timing and duration
  • Velocity (intensity) values
  • Tempo and time signature information

The parser converts MIDI events into gameplay events, allowing any MIDI file to be used as a level blueprint.

Target Spawning System
#

Created a spawn manager that:

  • Schedules target appearances based on MIDI note timing
  • Adjusts spawn positions based on note pitch
  • Applies different target types based on note velocity
  • Maintains synchronization between audio and visual elements

Shooting Mechanics
#

Developed precise hit detection with:

  • Timing window evaluation (Perfect/Good/Miss)
  • Audio-visual feedback system
  • Combo tracking and score multiplier
  • Accuracy statistics tracking

Audio Synchronization
#

Ensured tight audio-visual sync through:

  • High-precision timing system
  • Latency compensation
  • Audio buffer management
  • Beat prediction algorithms

Technical Challenges
#

Audio Latency Management
#

Addressed input lag and audio buffer delays by implementing a predictive timing system that compensates for hardware latency, ensuring visual elements align with perceived audio.

Performance
#

Optimized object pooling for target spawning to maintain consistent frame rates during high-density sections, crucial for rhythm-based gameplay where timing precision is critical and VR optimization is important.

MIDI Format
#

Created a flexible parser supporting various MIDI file formats and edge cases like tempo changes and multiple simultaneous tracks using the existing plugins.

Technologies Used
#

  • Engine: Unreal Engine 5.7
  • Programming: Blueprint for gameplay logic
  • Audio: Unreal’s audio engine with custom MIDI integration
  • File Parsing: Custom C++ MIDI file parser
  • UI: Unreal Motion Graphics (UMG)

Development Insights
#

This project deepened my understanding of:

  • Real-time audio synchronization in game engines using MIDI data and Niagara for visual effectss
  • File format parsing and data structure design
  • Performance optimization for rhythm-based games
  • Event-driven architecture for gameplay systems
  • Player feedback systems and game feel

Future Enhancements
#

Potential improvements include:

  • Multiplayer support with split-screen
  • Visual effects system responsive to music intensity
  • Leaderboard integration using Epic Online Services
  • Support for different weapon skin to make play more personalized
  • Dynamic difficulty adjustment based on player performance

Conclusion
#

This game looks fun but i have meta quest 2 which is not developer friendly, like i have to use a lot of workarounds to get live link working, and the camera tracking is just a mess.

Related