Skip to the content.

Unity, WWise Feb 2025 To May 2025 7 Project Lead & Programmer
Toot the Lute on Itch.io

Role and Responsibilities

Led a team of junior developers on their first project. Established scope, production workflow, and delivery schedule.

Rhythm System

At the core of Toot the Lute is a custom-built rhythm system that synchronizes fast-paced action gameplay with beat-based timing mechanics. Drawing inspiration from games like BPM and Crypt of the NecroDancer, this system transforms combat into a musical challenge, rewarding precision and timing. The heartbeat of the game. All gameplay events are synced to beatmaps parsed from Wwise audio timestamps.

Beatmap

The beatmap system is decoupled from the actual soundtrack, allowing flexible rhythm structuring independent of audio tracks. It’s defined using looping BeatmapSegment structures—each segment is a list of Beats that contain:

This setup enables infinite looping patterns and modular rhythm composition. Although the system supports complex beatmaps, Toot the Lute primarily uses a simple, repeating beat pattern, adjusting only the BPM per track for gameplay variation.

Beat Detection and Input Grading

The system detects beats in real time by parsing track BPM and aligning gameplay logic to musical timing windows. When player input is detected, the system checks player input against the current beat window and determines if the input should be accepted or rejected. This ties back to player attack, dash, and combo systems.

Additionally, the beats themselves have an event that is invoked once the beat is passed, whether successful or not. This allows environmental objects to have their visuals, cooldowns, and effects all tied to the beat.

Visual Beat Track

To help players stay in rhythm, I implemented a visual beat track that displays incoming beats as markers approaching a central strike zone. The track dynamically streams from the beatmap, ensuring there are always enough beats to present on the screen.

Additionally, how fast beats are perceived to approach or how zoomed in the track is is controlled by a human-centered designed property named VisibleBeatsAtOnce. The bottom picture shows the effect of changing that property.

Toot The Lute Human Cetnered Design

Technical Highlights

Combat System

All actions must be timed to beats. Attacks: Trigger visual and physical effects (colliders, particles, shaders). Dashes: Invulnerability movement synced to rhythm. Special Attacks: Reward perfect rhythm streaks with amplified damage and visuals. Interactables: In-world objects (trees, bushes) that sync to the beat and can be used in combat.

AI Systems

Simple but expressive systems based on modular boid logic. Includes: Seek, Pursue, Flee, Separate and Custom Obstacle Avoidance behaviours. Integrated beat-timed attack behavior using Wwise beat events.

Dynamic Transparency

Applies transparency to foreground objects blocking player view. Based on distance and render layer. Configurable range per object. TootTheLute DynamicTransparency

Visual Polish

TootTheLute EnemySplit
TootTheLute PlayerAttack

back