Basics of VOIP in Godot 4.2!
Вставка
- Опубліковано 28 чер 2024
- Subscribe and learn more from me about Game Development and Programming!
In this video, we dive into how to build a basic VOIP system inside of Godot!
#GameDev
RESOURCES
Digital Ocean Link: m.do.co/c/4ca0a2e54d02
BE MY FRIEND:
🐦Add me on Twitter: / finepointcgi
Check out my Website: finepointcgi.io/
Suggestion box: github.com/finepointcgi/Finep...
You can support me on Patreon: / finepointcgi
Hang Out with the Guys on Discord: / discord
TIMESTAMPS
00:00 - Start
00:38 - Giving Credit to the Original Idea
01:08 - Setting Up Our Nodes
04:48 - Coding Microphone Input
10:12 - Processing Microphone Input
24:41 - Processing Our Voice Information To Play
29:37 - Setting Up Our Networking!
35:47 - Setting Up the Client Code
47:45 - Fixing Our Duplicated Nodes
51:07 - Hosting the Project on Digital Ocean
56:35 - Outro
MUSIC
Music provided by TheRelaxedMovement.
Check it out here: / therelaxedm...
ABOUT MY CHANNEL:
I've been a software developer for over 7 years. I've worked in the game industry for 3 of those years. This channel is used for news on the gaming\programming industry and for tutorials for game\programming development.
Basics of VOIP in Godot 4.2!
i swear to god every time i wonder "has someone made a video about X idea?" you pop up in the search. Love your presentation style too, great seeing someone encounter problems and solve them as they go.
I'm so glad you made this! I was watching your older voip video yesterday, hoping there was a way to do it in godot 4, and here we go! thank you :))
Yooo thank you so much man. I love this series, getting the basic understandings and even a bit of advanced knowledge is vital for good up-and-coming projects. Keep doing what you do. But this one is very important and impressive.
I was JUST looking for this. 5 hours ago, bingpot! Please keep reading my mind and doing tutorials of what I exactly need, hahaha.
This is going to be awesome for my game. Thank you.
Great tutorial. Thanks for sharing.
this is awesome!!
Thank you so much. This a tutorial that is very much needed all over the web. Immediately, you address and solve 2 problems i head with current test-build... Your efforts are really appreciated.
One third through the video and learning a lot. This video is pure gold. Made my day :)
Interesting that you use a ENetMultiplayerPeer... everywhere on the Internet you read, that WebRTC or WebSockets are a requirement.
Danke!
when are you going to continue the multiplayer 3d fps series?
I was trying to do this a while ago, I wasn't able to get it working correctly
I have an issue here, hopefully, i did not miss something:
When i try to get_stream_playback() from the output node, it always wants me to play() the stream first, but there is no stream present to play. I tested it using has_stream_playback() and receive a false. The node is grabbed correctly. Is there a setting in the AudioStreamPlayer2D that has to be done beforehand? Any idea where to check would be appreciated.
I have solved the issue. I needed to create a new AudioStreamGenerator in the output AudioStreamPlayer and call .play() on it, before using get_stream_playback(). Thank you anyway. This video really helps. :)
@Frank_G_Finster hey I'm glad you could figure it out! I'm actually recording the c sharp section right now and I ran into basically the same issue!
@@FinePointCGI I wont miss the C# version for sure - its always good to observe from different perspectives. GDscript will be my way to go though. Thank you :)
@@Frank_G_Finster I would Love to know how you did this.
It seems like the longer I have my mic on, the bigger delay there is between me talking and the voice playing back. Any idea on how to solve that?
Aha! Turns out if you have the mix rate different from your Project settings it will cause that.
How do you avoid some usb microphones drifting away? I have issues with my avatar desyncing if I use my main mic, but it doesn't if I use another mic.
My guess would be sample rate. If they don't match exactly it will drift
the Advanced tab in your microphone's device properties will tell you the sample rate it uses - replace the 48000 with that value (I suppose)
I'm at the part at 24:45 where we write the function to process the voice, but when I run my code, it says "cannot call method 'get_frames_available' on a null value". It's saying the playback variable is null.
I would double check the assignment to make sure it's pulling back the node properly.
I figured it out, I didn't set up the audio stream properly (the output stream).
@theemeraldweegee2503 Could you be a bit more descriptive? How did you figure out what you were assigning incorrectly?
jk figured it out!
Easiest solution is to just to click inside the AudioStreamPlayer of your character, click "Stream" > add "New Audio Stream Generator", then also select the `autoplay` in Inspector. You can see at 28:43 he already did that. :)
@@drilkus1312 Ugh, TY! Was banging head on wall. Very hard to follow the video.
I have an issue with stream playback that I can't fix. Thats the error "setup Audio(): Player is inactive. Call play() before requesting get_stream playback()", but i have already autoplay on true. I'm a beginner and don't understand where problem is, so please someone has some idea to solve, thanks
I have the same problem
I too have this problem. Did you figure this out?
👍
I'm back! Does anyone know how to select a different microphone/input-device programmatically? What I know so far is AudioServer.capture_set_device(index) is for Godot 3, not 4.
Hey, dude! How do I create a chat in Godot Engine using the TCP network protocol in version LTS 3.5.3?
How to manage multi server?
For some reason whenever I try any Godot VOIP projects on my main computer (it has a razor siren mini) and its like one segment of the audio is played, wait a second then plays another segment.
Sounds like you're sending over tcp not udp
Fine point i make a comment in webrtc tutorial see it
Is there a git repo we can grab the final product to compare for the sake of trouble shooting?
Yes
github.com/finepointcgi/VOIP-Tutorial
@@FinePointCGI You legend! Thank you. I can compare to what I've done now to see where my issue is.
Is it possible to build android and iOS ?
Just curious, but at 11:32 is that a spelling mistake or is "sterio" mean something I'm not aware of?
No I'm just horrible at spelling
@@FinePointCGI Ha, that's okay. Thank you for letting me know. Just wasn't sure if I was missing an important concept.
I was gonna click on the dislike button but I realized that it is basically equivalent to clicking on this like button
btw thx a lot for this bro