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!

КОМЕНТАРІ • 45

  • @charlestietjen5387
    @charlestietjen5387 24 дні тому

    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.

  • @scrubmunch5268
    @scrubmunch5268 5 місяців тому +3

    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 :))

  • @fjh89
    @fjh89 5 місяців тому +1

    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.

  • @txorimaloDev
    @txorimaloDev 5 місяців тому +1

    I was JUST looking for this. 5 hours ago, bingpot! Please keep reading my mind and doing tutorials of what I exactly need, hahaha.

  • @parkernunley1463
    @parkernunley1463 5 місяців тому +1

    This is going to be awesome for my game. Thank you.

  • @vukbo7859
    @vukbo7859 2 місяці тому

    Great tutorial. Thanks for sharing.

  • @hikenone
    @hikenone 5 місяців тому +1

    this is awesome!!

  • @Frank_G_Finster
    @Frank_G_Finster 5 місяців тому +1

    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.

    • @Frank_G_Finster
      @Frank_G_Finster 5 місяців тому +1

      One third through the video and learning a lot. This video is pure gold. Made my day :)

    • @Frank_G_Finster
      @Frank_G_Finster 5 місяців тому

      Interesting that you use a ENetMultiplayerPeer... everywhere on the Internet you read, that WebRTC or WebSockets are a requirement.

  • @Frank_G_Finster
    @Frank_G_Finster 5 місяців тому +2

    Danke!

  • @lusunguchansa5586
    @lusunguchansa5586 5 місяців тому +1

    when are you going to continue the multiplayer 3d fps series?

  • @thomasparker7305
    @thomasparker7305 5 місяців тому +1

    I was trying to do this a while ago, I wasn't able to get it working correctly

  • @Frank_G_Finster
    @Frank_G_Finster 5 місяців тому +3

    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.

    • @Frank_G_Finster
      @Frank_G_Finster 5 місяців тому +4

      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. :)

    • @FinePointCGI
      @FinePointCGI  5 місяців тому +2

      @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!

    • @Frank_G_Finster
      @Frank_G_Finster 5 місяців тому +1

      @@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 :)

    • @LexGear
      @LexGear 2 місяці тому

      @@Frank_G_Finster I would Love to know how you did this.

  • @drilkus1312
    @drilkus1312 2 місяці тому

    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.

  • @ImmacHn
    @ImmacHn 5 місяців тому +2

    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.

    • @FinePointCGI
      @FinePointCGI  5 місяців тому +2

      My guess would be sample rate. If they don't match exactly it will drift

    • @psyantologist
      @psyantologist 5 місяців тому +1

      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)

  • @theemeraldweegee2503
    @theemeraldweegee2503 3 місяці тому +1

    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.

    • @FinePointCGI
      @FinePointCGI  3 місяці тому

      I would double check the assignment to make sure it's pulling back the node properly.

    • @theemeraldweegee2503
      @theemeraldweegee2503 3 місяці тому

      I figured it out, I didn't set up the audio stream properly (the output stream).

    • @drilkus1312
      @drilkus1312 2 місяці тому +2

      ​ @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. :)

    • @spherex2654
      @spherex2654 Місяць тому +2

      @@drilkus1312 Ugh, TY! Was banging head on wall. Very hard to follow the video.

  • @davidesaponara7171
    @davidesaponara7171 4 місяці тому +2

    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

    • @wutong4524
      @wutong4524 3 місяці тому

      I have the same problem

    • @LexGear
      @LexGear 2 місяці тому

      I too have this problem. Did you figure this out?

  • @jasonwilliams8730
    @jasonwilliams8730 5 місяців тому

    👍

  • @LexGear
    @LexGear Місяць тому

    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.

  • @jonasramo
    @jonasramo 3 місяці тому

    Hey, dude! How do I create a chat in Godot Engine using the TCP network protocol in version LTS 3.5.3?

  • @DexterFstone
    @DexterFstone 4 місяці тому

    How to manage multi server?

  • @TheGloxide
    @TheGloxide 2 місяці тому

    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.

  • @ShownMccrown-hq8mq
    @ShownMccrown-hq8mq 5 місяців тому

    Fine point i make a comment in webrtc tutorial see it

  • @LexGear
    @LexGear 2 місяці тому

    Is there a git repo we can grab the final product to compare for the sake of trouble shooting?

    • @FinePointCGI
      @FinePointCGI  2 місяці тому +1

      Yes
      github.com/finepointcgi/VOIP-Tutorial

    • @LexGear
      @LexGear 2 місяці тому

      @@FinePointCGI You legend! Thank you. I can compare to what I've done now to see where my issue is.

  • @sebastianthomas6720
    @sebastianthomas6720 Місяць тому

    Is it possible to build android and iOS ?

  • @LexGear
    @LexGear 2 місяці тому

    Just curious, but at 11:32 is that a spelling mistake or is "sterio" mean something I'm not aware of?

    • @FinePointCGI
      @FinePointCGI  2 місяці тому +1

      No I'm just horrible at spelling

    • @LexGear
      @LexGear 2 місяці тому

      @@FinePointCGI Ha, that's okay. Thank you for letting me know. Just wasn't sure if I was missing an important concept.

  • @question_mark
    @question_mark 5 місяців тому

    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