Posted November 05, 2025 by FearCode
#Audio #Music #Sound #3D Sound
For a while now, Biomancer has been able to load audio assets—music, sound effects, heavy files on disk—but that was about it. The engine knew what a sound was, it just couldnāt do anything with it yet.
This changed, I finally wired up the missing half of the pipeline: runtime audio control. Now Biomancer can actually play audio it loads, and not just play it, but control it the way a real game engine should.
At the core, I added a small audio playback controller to the engine. For every sound or music resource, the engine can now:
Play: start the sound/music instance.
Pause: suspend playback without destroying the instance.
Resume: continue from where it paused.
Stop: fully stop and release / mark it for reuse.
This sounds basic, but itās the foundation for everything else—menus, cutscenes, ambient tracks, SFX chains, you name it.
Once playback worked, I exposed a few realtime parameters:
Volume ā for obvious reasons.
Pan ā to push a sound left/right in the stereo field.
Pitch ā super useful for UI variation, creature sounds, or just making the same SFX feel less repetitive.
Being able to tweak pitch at runtime is one of those tiny things that makes a game feel way more āalive,ā especially when you randomize it slightly.
Because Biomancer is meant to be procedural and live-editable, I hooked all of this into Bioscript.
That means scripts can now do things like:
start a sound when an event happens
pause all music when the game is paused
lower volume during dialogue
change pitch dynamically based on gameplay
(Exact function names might change, but the idea is: scripts now control audio instances directly.)
Flat audio is fine for UI, but for an engine that supports 3D scenes, we need spatial audio.
I added support for 3D sounds, meaning sounds can now be positioned in world space. The engine can then pan/attenuate them based on the listenerās position.
This unlocks:
footsteps that move across the scene
ambient emitters (machines, lava, portals)
spatial UI cues in 3D environments
Right now itās the core functionality—position ā pan/volume—but itās the start of proper spatialization in Biomancer.
One problem with audio (especially music) is that large files can cause hitches if you load them right when the game needs them.
So I added a pre-load stage to Biomancer.
Before the game actually starts, the engine can now pre-load heavy resources—like music tracks or bigger SFX—so that during gameplay we only play them, we donāt load them.
It also fits nicely with Bioscript: you can define āthings to have readyā before the scene boots.
Up to now, Biomancer had audio in theory (the loader existed), but not audio in practice (the game couldnāt actually play or control it). With this update:
audio is interactive,
scriptable,
spatial, and
performance-aware (preload).
That means the engine is a lot closer to being able to run a real game loop with proper moment-to-moment feedback.
Since today's devlog is not graphical here is a offtopic screenshot of me making a temple-like structure in Biomancer:
Join our Discord Server and download all Builds of Biomancer!