C++ Audio Subsystem

System-design focused C++ work centered on creating and designing a structured, reusable engine subsystem.

C++ Audio Programming Subsystem Architecture CI517 Module

Overview

As part of the CI517 module, the goal was to create and design an engine subsystem. I implemented this through an audio-focused subsystem that centralizes playback logic and reduces scattered one-off sound handling, while keeping gameplay-facing calls simple and the system maintainable.

Source Document

C++ Development Notes and Coursework

Module Context

  • This work was developed alongside foundational C++ topics: loops, functions, arrays, classes, methods, and inheritance.
  • The subsystem design emphasized cleaner architecture over ad-hoc, per-feature sound triggers.
  • Reflection outcomes highlighted maintainability and clearer ownership as key gains from systemizing audio flow.

System Design Focus

Centralized Playback Control

Single responsibility - Consistent entry points
  • Unified interface for triggering and stopping sounds.
  • Reduced duplicated playback code across gameplay features.
  • Improved maintainability through clear ownership.

State & Event Handling

Context-aware output - Predictable behavior
  • Sound behavior tied to gameplay events and state changes.
  • Consistent handling strategy for repeated or overlapping triggers.
  • Designed for predictable responses during rapid gameplay updates.

Scalability

Extensible structure - Future-friendly
  • Subsystem approach intended for growth beyond early prototypes.
  • Easier to add new sound categories without architecture changes.
  • Supports cleaner migration into larger projects.