Virtual Party Space Devlog #4: Audio spatialization
Today I tried to make audio spatialization work, and looked into Jitsi features and how to properly render isometric tiles.
Log
Calla
- Calla as a library seems to be more usable than expected
- Tutorial exists in sub-project’s
doc
directory - “broken” UI is the minimal client implementation from tutorial
- Tutorial exists in sub-project’s
Notes for Calla implementation
- spatializer distance is in “meters”, may need to play around with math on this?
- uses
omnitone
preferred, but has a number of different spatializers, depending what browser supports - library handles interpolation of audio over time and assumes you’re using that for avatar movement, need to think how to integrate with sprite movement
- audio sources set their own max distance (so players can control how far people can hear them, but not vice versa)
- except Calla user messages don’t include audio properties? So this would be a universal setting for all users in their world
- can add mute flag to user array to allow people to mute individuals?
- environmental sound can be set to whatever I like
Jitsi
- Jitsi includes text chat, need to examine that for use/abuse cases
- Jitsi Videobridge last-N feature may be hackable to only show nearest-N video streams
- locations are sent peer-to-peer by Calla, so clients would have to request specific list of streams with each update
- all audio streams will always be sent, most likely
UI/Game
- How to do appropriate layering in isometric view?
- Phaser isometric sample seems to use at minimum a different layer for every grid-Y, and change sprite layer based on y value
About this series
Back in mid-December I started an ambitious project to create a custom platform for a virtual birthday party in February. I kept notes on my progress, both for personal reference and to turn into a series of blog posts. It quickly became apparent that I did not have time to both do the project and blog about the project. I have retroactively decided to post my raw notes as a dev log.