Placeholder-Software / Dissonance

Unity Voice Chat Asset
71 stars 5 forks source link

[feature] Support for Nakama server #37

Closed rodgalvao closed 4 years ago

rodgalvao commented 7 years ago

Please add support for Nakama.

It is an interesting distributed open source networking server:

https://heroiclabs.com/ https://www.assetstore.unity3d.com/en/#!/content/81338

martindevans commented 7 years ago

Nakama isn't one I've seen before - looks pretty interesting. I've found a feature request on Nakama to add voice chat so I'm going to ask some questions there to ascertain if it's possible.

fingerx commented 7 years ago

@martindevans any news? thanks

martindevans commented 7 years ago

I contacted the Nakama guys asking about this. Currently Nakama is built on top of TCP connections which means it can only send reliable/in-order packets. This is a problem because that introduces a lot of unnecessary latency jitter and really compromises the voice quality. Novabyte said that they're going to be transitioning to a UDP based transport layer which would be perfect for Dissonance. So we're really waiting on that to be implemented before we can get started on this.

alexpareto commented 6 years ago

Now that Nakama supports UDP, will Dissonance be adding support? Thanks!

martindevans commented 6 years ago

We're definitely planning to look into Nakama support soon, it will probably be the next network integration we do.

omerfaruk commented 5 years ago

are there still no integration ?

martindevans commented 5 years ago

Not yet - it's never quite made it's way to the top of the list! Sorry about that. I will try to make time to look into it soon.

In the meantime don't forget that anyone can write a network integration for Dissonance - in terms of coding it's not too complex, check out the guide for that. It only takes me a long time because I have to be prepared to support new users of Dissonance with the underlying network system (and a new set of problems that can cause).

martindevans commented 5 years ago

A quick update on this: I had a chat to one of the Nakama devs the other day, we both think Dissonance could be a really good fit for Nakama. However, it might be a little more complex than your average network integration! We're going to reconvene in the new year to work out how to fit the two together.

marcofaggian commented 5 years ago

Any news? Looking forward to that backend!

martindevans commented 5 years ago

We haven't got together yet to follow up on our Discussion from last time, hopefully that will be soon. @novabyte any updates from your end?

Edit: The reason Nakama+Dissonance is more complicated than average is because Nakama doesn't just connect a small number of players together into a single game session - instead it can run at huge scale as a cluster of servers with thousands of players - that's not the kind of scale Dissonance is designed for at all! However even with that difficulty it would be very cool to be able to add Dissonance to Nakama to have automatic support for smaller groups of people within a game to chat (e.g. positional chat around your location in world). On top of that you can be outside a game context and still be talking to people, so we might even want to support Dissonance in that context as well, which is almost a second entire separate integration... except that you might want to be able to chat in your friends group while also inside a game so those two chat contexts have to be aware of one another. tl;dr It's far the most complex network integration we've had so far.

martindevans commented 4 years ago

Realistically I don't think this is going to happen, sorry everyone :(

As I said above this would be a very complicated integration, probably requiring breaking changes to Dissonance to fit into how Nakama does things at scale (e.g. we can't list all players in your session with DissonanceComms.Players if the session is nominally thousands of players). Unfortunately there's not enough demand to justify such a large amount of work.

If anyone really wants this integration contact me (martin@placeholder-software.co.uk) about sponsoring development of it and we'll see what we can work out. We've been hired to integrate Dissonance with MMOs before, so I'm confident this is at least possible!