Skip to content

Suggestion: Replace FMOD with SDL_mixer for an open-source 2D audio backend #99

@DevTwilight

Description

@DevTwilight

Overview

I believe the engine currently uses FMOD through its FNA backend. While FMOD is a robust audio middleware solution, it is proprietary and not fully compatible with an open-source licensing model.

Since Murder Engine is a 2D pixel-art ECS game engine, a simpler and open-source-friendly audio backend such as SDL_mixer (accessed via SDL2-CS bindings) would be a more natural fit.

Motivation

1. Licensing and Openness

  • FMOD is closed-source and requires a license for commercial use.
  • SDL_mixer is open source, distributed under the zlib license, which is highly permissive and compatible with Murder’s open-source nature.
  • SDL2-CS, the official C# bindings for SDL2 (and SDL_mixer), is also open source and maintained under the zlib license.

2. Technical and Architectural Fit

  • Murder is built on FNA, which itself uses SDL2 for input, windowing, and platform abstraction.
  • Integrating SDL_mixer would therefore align perfectly with the existing SDL-based ecosystem.
  • SDL_mixer is designed for 2D game audio — it provides:
    • Simple APIs for playing sound effects and music.
    • Support for multiple formats (WAV, OGG, MP3, MOD, FLAC, etc.).
    • Built-in mixing and volume controls without the complexity of 3D audio.
  • This would reduce dependencies on proprietary libraries while maintaining excellent cross-platform support.

3. Maintenance and Accessibility

  • Using SDL_mixer simplifies build and distribution pipelines since all components remain open source.
  • Developers can easily build, debug, and modify the audio layer without dealing with FMOD’s proprietary SDK.
  • It lowers barriers for community contributions and helps ensure long-term sustainability.

References

Summary

Replacing FMOD with SDL_mixer (via SDL2-CS) would:

  • Ensure the entire Murder Engine audio stack remains open source.
  • Eliminate proprietary licensing dependencies.
  • Provide a lightweight, simple, and efficient solution for 2D audio.
  • Align perfectly with FNA’s existing SDL-based architecture.

This change would make the engine more transparent, accessible, and community-friendly while retaining all the functionality required for 2D games.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions