Jump to content

Integrate mumble in the game, or support mumble plugin?


Recommended Posts

Hello!

Would you think it possible (and beneficial?) to provide some way to tell mumble/murmur the players' positions? There are mumble plugins for many games, so the players can judge each other's position on the game field when talking via mumble (using stereo speakers or headsets).

Positional_Audio.gif

This is certainly of a very low prio (if not even not worth to further pursue), so please regard this just as a "brainstorming"/idea. ;)

Edited by Ceres
  • Like 2
Link to comment
Share on other sites

55 minutes ago, Ceres said:

Hello!

Would you think it possible (and beneficial?) to provide some way to tell mumble/murmur the players' positions? There are mumble plugins for many games, so the players can judge each other's position on the game field when talking via mumble (using stereo speakers or headsets).

Positional_Audio.gif

This is certainly of a very low prio (if not even not worth to further pursue), so please regard this just as a "brainstorming"/idea. ;)

This is indeed a very nice idea which I like. First of all, we should ask ourselves how do you envision this feature to be used. From what I read so far, It could be beneficial for campaigns, mods or third person view (as rpg or shooters). pinging sound department here @Samulis @Stan`.

Link to comment
Share on other sites

We use mumble on 3 devises at home. The mumble clients run independently from 0 A.D. or any other game. We use push-to-talk, but it can also be configured with speech-autodetection (then one should not forget to turn it off later ;)). The mumble clients have configurable overlays, so the players names and status are shown during game play (works already in 0 A.D.). The text chat of the mumble clients is, however, not shown in that overlay, but 0 A.D. also has its own text chat, so they could still be used separately from each other (i.e. mumble just for speech and - if deemed worth to further investigate and develop - with audio-positioning of the players).

If no further development for audio-positioning takes place, then at least the use of mumble/murmur could be a nice way to communicate with each other during game play. :)

Link to comment
Share on other sites

Yes, the players should come to common grounds before they start if/how they would like to make use if it, else it could get frustrating to some. When I play with - well, rather against - our kids, they have their own mumble channel, so I cannot hear how they plan to sneak in on me from 2 sides. ;) However, when they want to laugh at me for some captured building or some other success, they are sure to use the "all" channel. :D I wonder how audio-positioning would feel like...

Oh, before I forget - @Yekaterina

What do you mean by "We can even implement voice chat"? With mumble as standalone client (and e.g. murmur as mumble server) this is already possible when playing 0 A.D. Do you think about somehow embedding some mumble client within 0 A.D.? Would it be worth the effort?

 

I would really like to contribute to even some very small developing project, but I lack the knowledge for this. So please accept my apologies that my recent posts in the forums were about "feature requests", without me really adding something on the developing side. I hope I can give something else back (e.g. helping with new or reviewing existing translations and testing stuff, especially since I (and the kids) love this game. It is really fantastic - thanks to all involved people! (y)

Link to comment
Share on other sites

1 minute ago, Ceres said:

What do you mean by "We can even implement voice chat"? With mumble as standalone client (and e.g. murmur as mumble server) this is already possible when playing 0 A.D. Do you think about somehow embedding some mumble client within 0 A.D.? Would it be worth the effort?

I mean a built-in voice chat function in the lobby and in multiplayer games, just like there is already a text chat. If you have played PUBG then that is what I mean. Not all players can agree to use the same platform due to incompatibility / trust issues / privacy, so if 0AD can be its own telephone then that would be great. 

Link to comment
Share on other sites

Ah, understood. Hitherto, I only had in mind playing at home, i.e. on LAN. For this purpose, I set up a murmur server in a VM on my Synology server, so all clients at home connect within the home network.

I have no experience with online games, though, but understand that when playing on a WAN, privacy matters (even) more.

Link to comment
Share on other sites

Another thing that might be of interest when looking at mumble is that the Windows client* includes a decent text-to-speech (TTS) engine which reads messages, e.g. when a user has joined or left a mumble channel. Maybe this TTS engine could be used to also read messages from 0 A.D., e.g. that one's civic centre or troops are under attack and such? Kindly consider looking into the discussion on GitHub about this. If it will lead to something, I don't know, though. ;)

*They released 1.4.0 dev. snapshot 4 on 03 Apr 2021. I currently use the stable version 1.3.4.

Link to comment
Share on other sites

TTS would probably be good for visually impaired players, but I don't imagine there are many of those given how visually-driven RTS' are. Not sure why one would prefer it other than that, as most people read text faster than it is spoken (at least for romance languages). Edit: for things like civic centers under attack and so on, there are sound effects intended to help you identify those already without being as intrusive as a TTS voice.

While I potentially support the idea of a voice chat in lobby and of course in multiplayer games, I don't quite understand how the game (or any other system) would calculate "player position" as shown in your example. There are no "player" units in the game, it's not an RPG or FPS, it's an angled top-down RTS. Would it be based on city location? If so, players would spend almost all of the time hard-panned left or right which is not comfortable in headphones, and it would offer a massive unfair advantage to players when trying to find an enemy in the first part of the game; the human ear is sensitive to stereo field changes of less than a degree, so it does not take long to locate an exact position even behind unexplored map. I think it would be better for players to simply be mono, or perhaps locked in a fixed place panned slightly based on which side of the map they are on.

Honestly probably the simplest solution might just be to have some sort of integration with a 3rd party voice chat solution like Discord or Mumble or something... that way all that would need to be implemented is a way to add an optional field for users to enter their handles or similar callsign, no need for actual audio infrastructure in the game. I'm not even sure what a built-in voice chat could do any better than such pre-existing solutions.

Edited by Samulis
  • Like 2
Link to comment
Share on other sites

Thanks for your thorough reply, which I agree with. I had not given enough thought about the position. :blush:

And TTS can certainly be annoying if used too frequently/for too many messages. It should be adjustable at least.

Finally, some help as you described for "integrating" (using when playing 0 A.D.) of mumble or some other tool would be great enough. E.g., maybe joining the correct channel(s) depending on the team one plays in could be supported? Sorry that it seems that I am just throwing wild ideas here. Please regard them just as some "brainstorming" stuff. If not worth to further purpsue, I will still be happy. :)

Link to comment
Share on other sites

Yes, I know about this one. The advantage I see (for my needs at home/LAN) for mumble is to be able to set up the server locally. But keeping in mind the large audience, Discord is certainly more important. Just for curiosity: Does playing 0 A.D. with Discord as chatting/speaking solution work "out of the box"? I don't ask for a guide, just want to know if it's possible without tweaking 0 A.D. And how about different channels for different teams? Does Discord already support this? (mumble does not, i.e. we have to set up several channels, and then select the right ones for communication, if we want to avoid that one can hear the other team opponents)

Link to comment
Share on other sites

Posted (edited)

Where in the 0 A.D. code can I look up the team/player selection? (to understand in which variables etc. this info is stored)

And is it also stored in a file during gameplay? If yes, where? Thanks again for your help!

PS: Sorry, if my questions maybe do not make sense (I am still trying to learn).

Edited by Ceres
Link to comment
Share on other sites

27 minutes ago, Ceres said:

Where in the 0 A.D. code can I look up the team/player selection? (to understand in which variables etc. this info is stored)

And is it also stored in a file during gameplay? If yes, where? Thanks again for your help!

PS: Sorry, if my questions maybe do not make sense (I am still trying to learn).

It's in gui / gamesetup

Link to comment
Share on other sites

Posted (edited)

Thank you! I found the file there (also as a note for myself):

https://github.com/0ad/0ad/blob/f314b5b9d2be852a4d25f4b9ef40ab4acf4f2002/binaries/data/mods/public/gui/gamesetup/Persistence/PersistentMatchSettings.js

...

PersistentMatchSettings.prototype.ConfigName =
	"persistmatchsettings";

PersistentMatchSettings.prototype.PersistedSettingsFileSingleplayer =
	"config/matchsettings.json";

PersistentMatchSettings.prototype.PersistedSettingsFileMultiplayer =
	"config/matchsettings.mp.json";
 

PS also for others interested - in Windows (10), the files are there:

C:\Users\<username>\AppData\Roaming\0ad\config\
 

matchsettings.json
matchsettings.mp.json
user.cfg

There is a nice (IMO) online JSON validator: https://jsonlint.com

Edited by Ceres
Link to comment
Share on other sites

Now I would like to try feeding 'matchsettings.mp.json' to the mumble client and to have the players join the respective channels...

			"PlayerData": [{
				"Name": "Player 1",
				"Civ": "spart",
				"Color": {
					"r": 21,
					"g": 55,
					"b": 149
				},
				"Team": 0,
				"AI": false
			}, {
				"Name": "Player 2",
				"Civ": "sele",
				"Color": {
					"r": 150,
					"g": 20,
					"b": 20
				},
				"Team": 0,
				"AI": false
			}, {
				"Name": "Player 3",
				"Civ": "ptol",
				"Color": {
					"r": 86,
					"g": 180,
					"b": 31
				},
				"Team": 1,
				"AI": false

Player 1 + Player 2 (both in 'Team 0') will join channel 'All' and channel 'Team 0'. Player 3 (in 'Team 1') will join channel 'All'. Thus, all 3 players can talk via channel 'All', but the 2 allies in 'Team 0' can also talk among themselves, without Player 3 hearing them.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...