Scirra / Construct-feature-requests

A place to submit feature requests and suggestions for Construct.
https://www.construct.net
8 stars 1 forks source link

Voice Chat #92

Open 4demon opened 5 months ago

4demon commented 5 months ago

Reviewed guidelines

Checked for duplicate suggestions

Summary

Can we have a voice chat feature added into Construct 3?

I feel it's been long overdue, and has been talked about on the forums for years. I struggle to believe I'm the first person to make a formal request.

Especially during the lockdown, we saw a surge of social games, and even today, we're seeing games with voice built directly into them in fun and interesting ways.

I have seen a plugin for Construct 3 called VOICE CALL (Voice call plugin based on webrtc protocol for construct 3) which seems like it's close, but from the description it only works between 2 people. I would want this to be implemented in a way that I can send my voice in a multiplayer app/game to another player, and even make use of the ever popular proximity chat that we see so often in games these days.

Possible workarounds or alternatives

At the moment, we have Discord or Steam voice as alternatives. Neither of these allow for proximity chat, or allow us to quickly decide who can talk to who. You'd have to manually tab out of the game, and switch rooms on Discord if you wanted the players to be able to have a private conversation. In Steam, your only option is a completely different call.

The plugin I mentioned has potential, but from what I can tell, the same issues. You can only speak to 1 other person, and may not even be able to change rooms or play the voice from an object.

I have also looked up other solutions on Google, such as: https://dev.to/hosseinmobarakian/create-simple-voice-chat-app-with-nodejs-1b70 so I imagine it's possible with Javascript.

Proposed solution

Create a plugin, or add a feature to the User Media object. Construct 3 already has the ability to have audio come from an object, so it's close to what I'd envision proximity chat being. Users would be able to simply have multiple audio streams come in and be fed to different objects. The code would then simply set the volume based on the distance from the player.

Additionally, tags would be useful, allowing players to choose how they hear other voices. For example, in a game like Among us, dead players should be able to talk to other another without the living being able to hear them. It would also be useful to be able to not simply restrict it by tags.

As a hypothetical, say you have a Medium character. They should be able to hear and speak to the living and the dead, but non-Medium characters can only speak to the living. Again, this could simply be done via volume controls. If non-Medium, set volume to -100.

Also, I'd like to be able to assign effects to the voices, such as echoes, distortions, etc.

Why is this idea important?

I've seen on the forum that people have been asking for this feature for years. We've have text chat in Construct for a long time, but still no ability to do voice or video chat. I like to be able to look at all 2D games and think "Yeah, I can do that in Construct", but looking at a game like Goose, Goose, Duck and realising that you can do everything but Voice Chat is strange. Voice Chat in a multiplayer game should be standard these days, and I'm amazed that Construct 3 doesn't permit it.

Additional remarks

No response

LuanHimmlisch commented 5 months ago

I will try to comment before Ashley does.

This seems like a very major task to take on, and not many will really benefit from it. It's very niche but implicates a lot of work and, for sure, a lot of future bug fixes. If you haven't found many alternatives, it may be a hint as to why this hasn't been implemented on Construct as well: too difficult.

Scirra has already talked about how the Multiplayer plugin is not as used as it is thought, and so, it's very cautious about any specific features for the Engine, especially if it involves a lot of work.

4demon commented 5 months ago

I will try to comment before Ashley does.

This seems like a very major task to take on, and not many will really benefit from it. It's very niche but implicates a lot of work and, for sure, a lot of future bug fixes. If you haven't found many alternatives, it may be a hint as to why this hasn't been implemented on Construct as well: too difficult.

Scirra has already talked about how the Multiplayer plugin is not as used as it is thought, and so, it's very cautious about any specific features for the Engine, especially if it involves a lot of work.

I spent years trying to work with the multiplayer plugin, all the way back in Construct 2, and again in Construct 3, but kept having bugs, with players dropping, losing connection.

I brought it up multiple times, and it was often shut down as it being something I was doing wrong, but nobody was ever able to see a mistake, or help me. Then, Ashley creates a brilliant series of videos and projects and tutorials based along the multiplayer plugin, and suddenly in the next stable version of Construct 3 all of my issues were fixed, and it's now superb!

https://www.construct.net/en/forum/construct-3/how-do-i-8/multiplayer-broken-163229

That, to me, suggests that Ashley was experiencing the same or similar issues, and fixed them. If the server ever went down, it was impossible to reconnect, even if you tried to force a disconnect, left the room, anything.

Also, the vast majority of games are single player, especially indie games, because it's easier. Personally, I rarely play single player games, and mainly play games for the social aspect. I've released 2 games on Steam. One was 100% multiplayer (Construct 2) and half the time, the multiplayer bugged out, kicked people, and just didn't work. When it was time for me to work on my second game, I was reluctant to include multiplayer, but because I saw the amazing improvements, I went with it, and haven't had a single issue pop up. This is all to say that for years, Construct's Multiplayer was unreliable, so is it surprising that people were reluctant to make a multiplayer game?

In terms of features, voice chat is pretty much the only thing that is missing for multiplayer games. I've seen dozens of videos and reviews where people say that proximity voice is the best thing. Just look at Lethal Company. That made $50m in about 2 months. Incredibly simple game, but take away the voice chat, and it wouldn't do anywhere near as well imo.

Search for Unity Voice chat, or Godot Voice chat, and you'll find plugins and tutorials. Search for Construct 3 Voice chat, and you'll find people asking how to do it on the forums or Reddit, and a single plugin that allows 1 person to speak to 1 other.

By incorporating voice chat into Construct 3, taking cues from its successful integration in popular platforms such as Unity and Godot, the potential to amp up user engagement and expand its reach in the market is undeniable. This is particularly vital in light of the growing desire for social elements in multiplayer games, as evident from the enthusiastic response within the gaming community and the success of titles like 'Lethal Company'.