Mumble positional audio plugin.
Caradas
Join Date: 2005-04-08 Member: 47826Members
<div class="IPBDescription">It's working and this is great!</div><!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo-->Natural Selection 2 Mumble plugin<!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->How it works?<!--sizec--></span><!--/sizec-->
The plugin reads the position data from Natural Selection 2 and copy it to Mumble.
And mumble can calculate this.
Let my make an example:
You and your friends playing NS2 and you are in the same channel in Mumble, everyone has installed and activated the plugin before.
Mumble scans the process list and detect NS2. Now Mumble try to get the state value. If this value is in a possible range you get the message "Natural Selection 2 connected." in Mumble. If you join a Team (which one doesn't matter) this value changes.
This change activate the memory readout, now Mumble copy your position and your camera angle to your friends. (you also get these information's from your friends).
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Is it cheating?<!--sizec--></span><!--/sizec-->
I think it isn't. Mumble developers think this too.
Because the game has already positional audio features. (You can hear from where the sound comes)
It adds only a feature, you can hear from where your friends speak not only where they shoot.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Wow. This is all great but what is Mumble?!?!?<!--sizec--></span><!--/sizec-->
Mumble is a voip program like teamspeak or ventrilo.
But mumble is free and open source. So everyone can help to make it better.
And mumble is faster then Teamspeak 3, probably one or two seconds.
You can download it <a href="http://mumble.sourceforge.net/" target="_blank">here</a>!
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->How can i install the plugin?<!--sizec--></span><!--/sizec-->
First you need to download it. The link is on the end of this post.
Second step is to disable the automatic plugin download from mumble. (Because it's actually broken).
Open Mumble and open the settings dialog. Now click on Network and disable the "Download plugin and overlay on startup" checkbox.
Please close Mumble after this.
Now copy the downloaded ns2.dll to C:\Program Files(x86)\Mumble\plugins\ and start Mumble again.
Thats all you're done.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->I would like to test it. But i don't know any Mumble server.<!--sizec--></span><!--/sizec-->
You can use mine. Feel free to join @ "Adress: gorgebordell.de Port: 64738"
Actual features:
Basic positional audio.
Planned features:
Disable it for the commander.
Identity support. (Only activate positional audio for your teammates)
Context support. (Transfer the Server name, Ip and port.)
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><div align='center'><a href="http://caradas.info/ns2/ns2.dll" target="_blank">Download here</a></div><!--sizec--></span><!--/sizec-->
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><div align='center'>supports build 237</div><!--sizec--></span><!--/sizec-->
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><div align='center'>please watch this post for updates!</div><!--sizec--></span><!--/sizec-->
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><div align='center'>Source code: <a href="http://caradas.info/ns2/ns2.cpp" target="_blank">Download here</a></div><!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->How it works?<!--sizec--></span><!--/sizec-->
The plugin reads the position data from Natural Selection 2 and copy it to Mumble.
And mumble can calculate this.
Let my make an example:
You and your friends playing NS2 and you are in the same channel in Mumble, everyone has installed and activated the plugin before.
Mumble scans the process list and detect NS2. Now Mumble try to get the state value. If this value is in a possible range you get the message "Natural Selection 2 connected." in Mumble. If you join a Team (which one doesn't matter) this value changes.
This change activate the memory readout, now Mumble copy your position and your camera angle to your friends. (you also get these information's from your friends).
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Is it cheating?<!--sizec--></span><!--/sizec-->
I think it isn't. Mumble developers think this too.
Because the game has already positional audio features. (You can hear from where the sound comes)
It adds only a feature, you can hear from where your friends speak not only where they shoot.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->Wow. This is all great but what is Mumble?!?!?<!--sizec--></span><!--/sizec-->
Mumble is a voip program like teamspeak or ventrilo.
But mumble is free and open source. So everyone can help to make it better.
And mumble is faster then Teamspeak 3, probably one or two seconds.
You can download it <a href="http://mumble.sourceforge.net/" target="_blank">here</a>!
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->How can i install the plugin?<!--sizec--></span><!--/sizec-->
First you need to download it. The link is on the end of this post.
Second step is to disable the automatic plugin download from mumble. (Because it's actually broken).
Open Mumble and open the settings dialog. Now click on Network and disable the "Download plugin and overlay on startup" checkbox.
Please close Mumble after this.
Now copy the downloaded ns2.dll to C:\Program Files(x86)\Mumble\plugins\ and start Mumble again.
Thats all you're done.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->I would like to test it. But i don't know any Mumble server.<!--sizec--></span><!--/sizec-->
You can use mine. Feel free to join @ "Adress: gorgebordell.de Port: 64738"
Actual features:
Basic positional audio.
Planned features:
Disable it for the commander.
Identity support. (Only activate positional audio for your teammates)
Context support. (Transfer the Server name, Ip and port.)
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><div align='center'><a href="http://caradas.info/ns2/ns2.dll" target="_blank">Download here</a></div><!--sizec--></span><!--/sizec-->
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><div align='center'>supports build 237</div><!--sizec--></span><!--/sizec-->
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><div align='center'>please watch this post for updates!</div><!--sizec--></span><!--/sizec-->
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><div align='center'>Source code: <a href="http://caradas.info/ns2/ns2.cpp" target="_blank">Download here</a></div><!--sizec--></span><!--/sizec-->
Comments
added link in my first post
i found a few pointers who pointing to things like server name and the team.
but none of them are static.
And this is a problem because i need a few static pointers because my plugin reads the memory and not the values as itself. This mean the plugin reads the number what is on a specific position at the memory. If this position changes my plugin don't know it and read a wrong value.
And things like servername and team are not on a static position.
I have an idea to solve this but i don't know lua good enough.
My plan is a mod for ns2 who has all the information what i need.
Is it possible to define static values or static pointers in lua?
I was looking for a plugin in the past, but the one i found wasnt working anymore.
I tried this plugin with my friend. The sound position is not really accurate at the moment and sometimes really off.
But i think you will fix that soon. ;)
you don't need to update your plugin the old and the new version works together.
However, I use mumble because I want to speak clearly and continuously to my friends. I never understood the positional audio thing except for when your playing a fun coop or something and want immersion.
Also, while I agree Mumble is the only VOIP worth using. TS3 is on par latency wise, however, I really don't think a few ms is going to be the difference between life and death. I just find TS3 a horrible mess of a UI and program, and on the other hand, Mumble is just too damn good full stop. Open source is just the icing on the cake.
Why positional audio though? It's a cool feature for starters. It could be useful when moving with a squad to be able to hear every player position instantly, say if someone asks for help and they are somewhere behind you. Then you'll know that person is behind you just as quickly as you'd know a bite or gunshot came from behind you. At any other time it's probably not so useful but I suppose be tweaked to your liking.
Ideally I think the voice should be positional only if the other player is within reasonable earshot, in the same room or just around a corner at most, otherwise it falls back on the usual full volume, no positional audio. The commander of course should always be like that.
I can add this feature if anyone writes a client- or serverside mod for ns2 to export this informations.
Notice: Updated Plugin and Sourcecode for build 237. The old one still works.
EDIT: did a bit of research into this.
doesn't work as of build 239. my guess is probably because NS2.exe was changed in some form since build 237, but iirc only lua files were changed from 237 -> 239, which means NS2.exe should have remained untouched and this should have worked, logically speaking.
i can probably look into the address using cheat engine to update the code accordingly for it to work, but i'm afraid of getting vac banned immediately after cheat engine hooks onto NS2.exe, so any brave souls who are willing to risk getting vac banned just to get this to work, you can start by reading this:
http://mumble.sourceforge.net/Pluginguide#Beginning_the_Hunt
should be probably easy enough to follow and finish up the plugin you need to get positional audio with mumble.
good luck.