The Legion Engine is a C++ Game Engine. During my minor, start of my third study year (September 2020), I have developed features for the Legion Engine. Up until now I have contributed to playing
and loading audio. The engine uses OpenGl for rendering, OpenCl for compute shaders, so I decided to use OpenAl for playing and handling audio. The engine uses an entity component system (ECS) therefore
I had to make an audio listener and an audio source component and an Audio System to handle them. One of the developers had already made a file system which is used for loading all kinds of files,
and making sure files aren't loaded twice. I used this file system to load WAV audio files.
Loading Audio files allowed me to learn more about digital audio. I have also implemented a channel splitter and channel down mixer (to mono) in the engine, so that stereo files can easily be loaded
for spatial audio. OpenAl does not allow stereo files, or multi-channel tracks, to be spatial. The channel splitter loads the audio files under the different names where each track is mono.
This feature could for example be used by placing two virtual speakers in the scene. One speaker could play the left track, the other speaker the right track. Of course, files with more tracks can
be loaded and split.
The Legion Engine Github can be found by clicking the link.
Technical Details
- C++
- Game engine
- OpenAl
- ECS
- WAV file loading