[Update] Dark Souls 2: Seamless Co-op - Proximity Chat
Hi everyone
Development of the mod continues. And in this post I will further discuss some points I made in the previous development post
Proximity chat
Originally I wanted to eventually add proximity chat as a stretch goal after the mod was released and stable. Unfortunately my brain got stuck on this feature and I kept coming back to it. I was really enjoying reverse engineering this part of the game so I decided to just sent it and allocate a few days to implementing it.
Dark Souls II uses the FMODEX library to manage the game's audio. Reversing this was fun because the available documentation is very difficult to find as the version the game uses is almost 10 years old.
In the vanilla game, when creating player voice channels:
It will create 4 channels (1 for the local player, 3 for co-operative players in the session
These channels are set to 50% volume, and have a frequency of 11025Hz
The channels are also responsible for 2D audio only
In seamless co-op I have completely removed the vanilla system and re-implemented a voice chat system of my own:
6 channels are created (1 for the local player, 5 for other players in the session with invaders included)
The channels are set to 100% volume, and have a frequency of 48000Hz
The channels have 3D spatial audio, meaning that you will hear the voice relative to where the player is in your world. If the player is dead or too far away you will not be able to hear them
For the most part - this feature is complete. However the only one thing that feels a bit strange is that because the game is a third-person game the listener audio position is relative to the player's camera - not the player model itself.
Other players who are talking have this positional audio set to their player character location in the world, however hearing from the camera's perspective can feel a bit strange. I could change this but it would also result in the game's audio changing in turn.
Map Entity Synchronisation
Previous post:
The next big hurdle I have to overcome is being able to request world information from the host for every map upon joining
Still in the testing phase but I think I've figured it out. Objects in all maps should be synced with the host as intended.
I may make a video as the next post to just explain a bit of how the development of the mod is going just to keep things interesting.
As always - thank you for your patience and a huge thank you to all of my supporters <3
Take care,
Yui
Comments (20)
I'm excited about my friends hearing me scream in agony as I'm torn apart in the Forest of Fallen Giants salamander pit.
weird question but what are the chances you're able to add prox chat to nightreign😭
im so frickin excited holy crap imma jump with joy the second this drops
You are amazing I NEED THIS ASAPPP KEEP IT UP!
Invaders get positional voice chat too? That will be... interesting. Specially since you're implementing anti-hacking measures, I suspect (hope) a lot of them will be bewildered by their tools not working as expected. XD
Yui is simply preparing the best Christmas present ever 🔥😭🤟
On another note, would mods like "Bearer of the Curse Edition" and "Seeker of Fire 2.0" be compatible with Seamless Co-op? How hard would it be to make them so? I know Its a real strange thing to ask, but I've wanted to share these mods with friends because I've come to enjoy them just as much as the original game.
If they dont work out of the box: best case scenario the mods you are talking about could receive compatibility patches by their devs to work with seamless coop
This is amazing. Keep up the good work.
This feature is so hype and I'm glad you enjoyed working on it
Positional audio makes it so much more fun! Can dead players talk, and if so, where does their sound play from? The "head" of wherever their model died? I think it would be really funny if player's voices cut off as soon as they died, though~
Dead players cannot talk, as soon as their health hits 0 they're muted.
Unfortunately? I'd say that's pretty fortunate if you ask me tbh 🗿
If I had a nickel for every time I got distracted during a coding project with a tangential feature I’d probably be rich… but it really can help keep burnout at bay!
I even didn‘t know that the souls games have built-in voice chats 😂 never heard that. It will be fun to discover it with Yui‘s modernised version.
Voice chat always seemed so "off" for me in Dark Souls but also so fitting hahaha
Can't wait to invade someone and start playing a Vaatividya lore video into the mic as loud as possible. I'm here to preach the gospel of souls lore
voice chat seems awesome, getting invaded and having the invader chatting to you, great work!
Fun little coding side quests like that keep it interesting!
Exactly! A little break from working with all of the garbage DS2 world sync code is always welcome
