For a better lobby query 41:20, right before you run [Steam.requestLobbyList], consider adding a filter on the lobby name: > Steam.addRequestLobbyListStringFilter("name", "YOUR LOBBY NAME", Steam.LOBBY_COMPARISON_EQUAL)
Can you expand on this tutorial, and show how to make a game lobby or intermediate menu screen. example: 1. have a menu screen/lobby where player 1 and player 2 can choose a different character. 2. Then Player 1 can choose a level. 3. Then both players can load into the level.
This filter really helped me a lot, I was having difficulty testing it with a friend, as it doesn't always return the lobby, sometimes it's just random lobbies that appear, but with this filter, it always shows my lobby.
I've made a few simple 2D games in my own time and am now currently moving onto 3D. After that, Multiplayer P2P Steam was the next thing i wanted to implement/get into and this is exactly what I needed. Thank you for your efforts and knowledge sharing! 🔥💎
Awesome tutorial! I am really looking forward to a client-prediction/reconciliation setup, that way the character still feels good/not laggy when on a slightly bad connection. Maybe also letting the player be responsible for their position and having the server verify it instead of just streaming the button inputs. Keep up the amazing work!
How was your experience with implementing multiplayer into your project? How far along were you and was it hard to retroactively add multiplayer? Im currently starting out a major project and weighing my options for if i should prioritize a singleplayer version to begin with and add multiplayer or put in the extra time to make it multiplayer from the beginning, would love to hear your thoughts!
@@ckay7816 I'd say depends on how important MP is for your game. If it isn't the primary focus, then I'd suggest go flesh out the singleplayer first, then you can add MP on top. If your game has more than just player that needs to be synced, this tutorial is not enough as you'll need to thing everything through in terms of the structure of the game to properly implement it.
@@m.a.t.a.s Thanks for your reply. My project works perfectly as a strictly SP experience so i think ill go with your suggestion and start out with that. The best way i can describe the gameplay of the project im working on right now is "open-world with lots of AI characters", so theres a lot of non-player things that need to be synced up for MP, which seems like it could be a lot of work, ill just leave it in the back of our feature list for now. Thanks again for your reply and good luck with your game!
Another alternative would be using something like sandboxie to run two instances of the same application on the same host operating system. I dont use sandboxie myself so I can't verify that it's a feature but the core technology should allow for it
@@AdroSlice Should work. If you're on a Linux distribution, you could also run the distribution's Steam, and the Steam flatpak from Flathub without toying with jails or VMs.
I just want to circle back to this and highlight that these approaches are great for when you need to run tests with Steam, and I think you should early on and from time to time. But this approach allows you to NOT have to do that all the time. You can develop locally using ENet with the High Level Multiplayer APIs, then when ready, you can flip to the Steam network. And then at that point, you can do these virtual approaches or whatever! Thanks for the feedback everyone!
Sadly this only seemed to work on one of my two testing pc in both directions (server and client). When my second user tried to join a lobby, only a dummy character is spawned on the host and on client side the view has the zoomed out error state. Any ideas what could be the reason behind it, or how to fix it? And I loved that you did a video about the topic in general. But I feel like as third video in this series you went from a little too fast in the first one, to a little better to work with it, to too fast again in this one. In the later parts where we see you directly typing the code it was a little easier to follow, but everytime you made a cut to your finished code I hat to hot-button pause, because you never really seem to show it long enough to work at the same speed as you. I feel like, the flow of the video would work better if you either, blend over to finished code earlier and show it longer, or show the whole thing while typing it?
Hmm, could be lots of things, what's the error? Yes, pace is something I'm constantly working with. I think this last video was really well done but I should have paused on the code that "appears" and explained it or talked to it for a few seconds to give those typing along a chance to catch up. It's a balancing act! Thanks for the feedback! Also, the full project code is linked in the description if that helps!
Excellent video, I really learned a lot, but I have two questions that bothered me a lot. 1 - Because if I click on the jump more than once it will jump once and then when it falls it will jump again, since no buffer was defined for it to store this command, why did it jump again? 2 - Is there any way to remove this lag that I notice in the movement, even on my host machine I can see the character going back and forth sometimes?
Great tutorial! Exactly when i tried to do the same but in c# without the multiplayer node. Any chance to have a tuto without the custom build to handle manually the data sync with steam p2p ?
Hey so I tried this out and it mostly works. The only problem is when testing with 3 or more players. Whenever we try to test, the multiplayer synchronizer for the 2nd player will not work for the 3rd player. Basically players will not be able to see the movements of other players who joined before them. Do you know how to fix this?
I'm only halfway through the video, but it got me thinking, how hard would it be to create an API between Steam and ENET or rewrite the implementation so that it wouldn't matter which network type is being used? If you could make ENET the default network and sync the data with Steam, you could easily have crossplay, right? Consoles/non Steam users use ENET, Steam users use Steam but still receive all ENET data.
Ok so like a wrapper that you talk to, that behind the scenes would make the call to whichever stack was currently enabled. It sounds pretty close to what I'm doing here but I'm sure there's room for improvement!
Feel free to try it! Just launch the cloned repo with the finished changes and try to import GodotSteam and that SteamMultiplayerPeer asset and it should work, I was just having issues on my computer
@@BatteryAcidDev There are specific things that are different between the fork and the addons. Using the addons you no longer have the ability to use RPC's and must move on to StreamPeer and forming your own packets. At least this is how it was the last time I tried it, so I don't believe you can use this method with the addons. I was also attempting the same thing where you quickly develop with godot's multiplayer, then swap over to steam for finalization. I had this working great in GodotSteam, but not with the addons and with my previous project I gave up on it and went with nat punchthrough instead. Dedicated servers are so much easier imo haha, just not viable for small games. I also ran into multiple issues with the GodotSteam engine. I don't remember the specifics but later into development one issue was how long it took my project to open, where I could open the same project on regular Godot and it was opened in a few seconds. There was more but that's all I remember off the top of my head.
I have a cool idea for a party game that I really really want to make, however a prerequite is being able to upload images/videos/sound-tracks/custom-resources from a client to a host peer in a p2p network. I am poor and can not afford the fees to put any games on steam, nor do want to, nor do I plan to. Can this video still help me? Does the steam p2p api still apply even in my niche situation? I plan on adding mobile support
If I hypothetically wanted to legally bittorent files from one device to another for free using a p2p connection(preferably torrent to clients overseas as well since my friends live abroad) how would I do it? I have a very good idea for a party game but it requires the clients to share images, videos, audio files and other godot resources in order to function. How can I achieve this? Is it possible? I can afford to buy any new software nor can I pay for subscriptions. Can I achieve my dreams of bringing this party game into life? If so, what should I learn? I am intermediate in godot and have very little knowlege in networking. I plan on adding mobile support.
Hello :D I'm a student working with game dev and new to godot. I think I've somewhat gotten the grasp of the godot basics but I'm a bit stuck on multiplayer. I'm trying to make a P2P game with matchmaking and have the possibility to have a lobby with your friend. The game I'm making is only suppose to be played with 2 players so I'm wondering if this is the method I should go for? By now I've seen so many tutorials and so many different ways of making multiplayer its braking my brain. Any help would be much appreciated!
Hello! If you're just starting out, using Steam with their Lobby system is a good option. However, maybe use the techniques discussed in this video instead. It's similar, but a little easier to manage as a beginner. Matchmaking, as in matching player together based on rank, location, map type, is a whole other thing. If you don't care about that, well then you can start with these videos. If you need to include more complex matchmaking like I listed above, well, I'll have to do a follow up video on that! ruclips.net/video/xugYYCz0VHU/видео.html
I haven't watched the video yet, but something I've been curious about is using Steam's Remote Play for local co-op. Is that something that can be used before a game is released on Steam just by using the Steam SDK or in this case GodotSteam?
I had this setup for my game but the delay is crazy high when I move on one machine to the other. I was wondering if this is actually the right way to do a p2p connection or if it's somehow slower because it's using lobbies. When you look at steams networking info, they say just use lobbys as a way to gather then use a dedicated p2p connection. I'm confused. There's a connectP2P function in godotsteam...I just don't what the difference is. Anything you can illuminate on this topic for me that'd be great.
It’s slow because the way this game is coded, player movement makes a round trip to the server and back before the player moves. I haven’t optimized anything for lag yet, but I’m working on it, so stay tuned!
Hello sir ! As someone who is coming from raw sockets, how exactly do I handle a match making system? For simple things such as a P2P coop game, Godot seems to make it easy. But for other model behavior, I find it hard to work it, as the multiplayer nodes are fighting against my architecture.
Well there's several ways you can handle matchmaking. You can use Steam, or roll your own, or build it into your server build. I have experimented with making one that is hosted on AWS and I have a full video series on it if you want to check it out. But as far as the nodes, well you don't have to use them. You do have access to lower level networking APIs. I would do the matchmaking before the main game scene, then transition to it when matched. But that would depend on your requirements!
No, as I mention early in the video, you can use the test app ID Steam provides while in development. Once you’re ready to do more significant testing or publish, create a Steam account.
I don't imagine ever uploading my game unto steam. Can Steam P2P still benefit me? I want to make a program in which one client can send files to another client(.mp4, .mp3, .wav, custom resources). Can this be of use for me? I plan on adding mobile support
Well, that depends. If you want to stick with using the High Level Multiplayer APIs that Godot provides, this is an easy approach to keep that while switching to a Steam network behind the scenes. Again, it isn't production ready, so if you wanted something solid, you could just use GodotSteam APIs with the lower level networking, as you are suggesting. "Better" is relative to what your goals are.
Another question, could someone explain to me why does "active_network" recognize "_players_spawn_node" as being its internal variable, when it belongs to "network_manager"? At 26:38
@@BatteryAcidDev but the "active network" is an instance of the Nodes "steam network" and "enet_network" which, at the time of the video, do not have any children. and "active network" is just a variable in the same script that was only defined at the same startup.
@DragilusGame we assign a node/scene that has this script attached, which is where the _player_spawn_node is referenced as active_network github.com/BatteryAcid/godot-steam-p2p-multiplayer/blob/178bcd43f117ae1ebdd486cfd1480d72f889256a/First%20Game/scripts/multiplayer/networks/enet_network.gd#L8
@@BatteryAcidDev I understand thank you. I really got confused on this one, because I didn't think it would look for the script associated with the Node, thank you very much, I'm still learning how to use GDScript and I see that there are a lot of details that I haven't caught on yet.
@DragilusGame yea nodes can only have one script attached to them, so when you reference it, you get access to those properties in the script. Glad you got it!
I think I’ve got those covered already, there’s two here but they connect to a 3rd party socket, however, you should be able to make it work for just Godot to Godot. I’ll consider making a standalone video on it: Godot Matchmaker and Lobby ruclips.net/p/PLOtt3_R1rR9WrcyDRsRF3oSrzffmBtJbu
I’m not really either but I didn’t have time this past week to get the addon version working. I would say if you need it, it’s there for now, and you can swap out for addon as it matures.
@@BatteryAcidDev Got the plugins working, but the peer plugin does not work the same was as shown in your video (it has no create lobby and rather a create host (so you need to create a lobby then in it's call back create the host. And the sameish for the client Join lobby->create client). Tested it but it was incredibly laggy (so much so you can't do the gap jumps ect). Gotta play with it more to see if there was just something missing.
@miatribe I’ve got a video coming out on the plugin route this week lol. The lag is because the game isn’t setup to do client prediction, it’s making a round trip to the server (host) and back before your player moves
@@BatteryAcidDev Found the problem and it appears the peer plugin has a rate limit or something. If I set the intervals on the MultiplayerSynchronizers to like 0.025seconds the lag was gone. Yes there is sitll the actual lag, but this was something different (we got to the solution I found as the client had no extra lag when I was dragging the host window around on my pc). The peer plugin error is below (and it was hammering them out haha). WARNING: Send Error (Unreliable, won't retry): k_EResultLimitExceeded at: SteamConnection::_send_pending (steam-multiplayer-peer\steam_connection.cpp:25)
@miatribe oh man! I literally spent a couple days on that issue and created a ticket for it, nothing I did really worked. Even setting those sync rates you said, but I’ll take another look!
For a better lobby query 41:20, right before you run [Steam.requestLobbyList], consider adding a filter on the lobby name:
> Steam.addRequestLobbyListStringFilter("name", "YOUR LOBBY NAME", Steam.LOBBY_COMPARISON_EQUAL)
Can you expand on this tutorial, and show how to make a game lobby or intermediate menu screen. example:
1. have a menu screen/lobby where player 1 and player 2 can choose a different character.
2. Then Player 1 can choose a level.
3. Then both players can load into the level.
@@deeamerson Yeah that would be nice
That doesn't sound too bad! I'm definitely working my way there, but may be some time!
@@BatteryAcidDev Cool. Thanks for the reply. You Rock!!!
This filter really helped me a lot, I was having difficulty testing it with a friend, as it doesn't always return the lobby, sometimes it's just random lobbies that appear, but with this filter, it always shows my lobby.
I've made a few simple 2D games in my own time and am now currently moving onto 3D. After that, Multiplayer P2P Steam was the next thing i wanted to implement/get into and this is exactly what I needed. Thank you for your efforts and knowledge sharing! 🔥💎
Thanks a ton for the support! Most of my Godot videos are actually made for 3D games, so if you’d like, check those out!
I've been stuck on finding out what to do with multiplayer setup but these multiplayer tutorials are just amazing!
Liked and Subbed!
Awesome tutorial! I am really looking forward to a client-prediction/reconciliation setup, that way the character still feels good/not laggy when on a slightly bad connection. Maybe also letting the player be responsible for their position and having the server verify it instead of just streaming the button inputs.
Keep up the amazing work!
Yes all of that is in the works… not sure if I’ll split it up or do one video…
Whoa this took 5h to implement for my survival game but it's so cool. Thanks!
Yea it took me a while my first time through... glad you got it!
How was your experience with implementing multiplayer into your project? How far along were you and was it hard to retroactively add multiplayer? Im currently starting out a major project and weighing my options for if i should prioritize a singleplayer version to begin with and add multiplayer or put in the extra time to make it multiplayer from the beginning, would love to hear your thoughts!
@@ckay7816 I'd say depends on how important MP is for your game. If it isn't the primary focus, then I'd suggest go flesh out the singleplayer first, then you can add MP on top.
If your game has more than just player that needs to be synced, this tutorial is not enough as you'll need to thing everything through in terms of the structure of the game to properly implement it.
@@m.a.t.a.s Thanks for your reply. My project works perfectly as a strictly SP experience so i think ill go with your suggestion and start out with that.
The best way i can describe the gameplay of the project im working on right now is "open-world with lots of AI characters", so theres a lot of non-player things that need to be synced up for MP, which seems like it could be a lot of work, ill just leave it in the back of our feature list for now. Thanks again for your reply and good luck with your game!
@@ckay7816 Hope this helps. Good luck!
Very much appreciated the videos! Can't wait to see the lag issues improved!
You’re welcome! Working on that this week, may need some more time… stay connected!
Thank you so much for letting us know where to find the Steam dll, have been struggling with the export with various tutorials so far.
Glad I could help!
You can use a virtual machine to launch another instance of steam on the same machine to test your game.
That’s a good idea and would save you the trouble of having another computer!
Another alternative would be using something like sandboxie to run two instances of the same application on the same host operating system. I dont use sandboxie myself so I can't verify that it's a feature but the core technology should allow for it
@@AdroSlice Should work. If you're on a Linux distribution, you could also run the distribution's Steam, and the Steam flatpak from Flathub without toying with jails or VMs.
I just want to circle back to this and highlight that these approaches are great for when you need to run tests with Steam, and I think you should early on and from time to time. But this approach allows you to NOT have to do that all the time. You can develop locally using ENet with the High Level Multiplayer APIs, then when ready, you can flip to the Steam network. And then at that point, you can do these virtual approaches or whatever! Thanks for the feedback everyone!
wow!! I doubt I can found such practical game dev tutorial for free anywhere.
Hahah thanks, glad it was helpful!
Oh my goodness this is just what I needed!!
Awesome!
Waiting for some lag optimization for the project, keep it up!
It’s in the works!
Same here !! Great content!
@@LJ_Dev ❤
Thank you very much for this video!
Sadly this only seemed to work on one of my two testing pc in both directions (server and client). When my second user tried to join a lobby, only a dummy character is spawned on the host and on client side the view has the zoomed out error state. Any ideas what could be the reason behind it, or how to fix it?
And I loved that you did a video about the topic in general. But I feel like as third video in this series you went from a little too fast in the first one, to a little better to work with it, to too fast again in this one. In the later parts where we see you directly typing the code it was a little easier to follow, but everytime you made a cut to your finished code I hat to hot-button pause, because you never really seem to show it long enough to work at the same speed as you. I feel like, the flow of the video would work better if you either, blend over to finished code earlier and show it longer, or show the whole thing while typing it?
Hmm, could be lots of things, what's the error?
Yes, pace is something I'm constantly working with. I think this last video was really well done but I should have paused on the code that "appears" and explained it or talked to it for a few seconds to give those typing along a chance to catch up. It's a balancing act! Thanks for the feedback! Also, the full project code is linked in the description if that helps!
Excellent video, I really learned a lot, but I have two questions that bothered me a lot.
1 - Because if I click on the jump more than once it will jump once and then when it falls it will jump again, since no buffer was defined for it to store this command, why did it jump again?
2 - Is there any way to remove this lag that I notice in the movement, even on my host machine I can see the character going back and forth sometimes?
I address both of these in my next video, should be out tomorrow!
@@BatteryAcidDev great thanks so much. And please keep sharing your knowledge in a easy way like this.
Great tutorial! Exactly when i tried to do the same but in c# without the multiplayer node.
Any chance to have a tuto without the custom build to handle manually the data sync with steam p2p ?
I will probably get to that type of data synch eventually!
Another awesome video. I love it 33:59
Thank you!
Hey so I tried this out and it mostly works. The only problem is when testing with 3 or more players. Whenever we try to test, the multiplayer synchronizer for the 2nd player will not work for the 3rd player. Basically players will not be able to see the movements of other players who joined before them. Do you know how to fix this?
This is likely an authority problem, where you're not correctly synchronizing the positions. Drop by the discord and we can chat more about it!
I'm only halfway through the video, but it got me thinking, how hard would it be to create an API between Steam and ENET or rewrite the implementation so that it wouldn't matter which network type is being used? If you could make ENET the default network and sync the data with Steam, you could easily have crossplay, right? Consoles/non Steam users use ENET, Steam users use Steam but still receive all ENET data.
Ok so like a wrapper that you talk to, that behind the scenes would make the call to whichever stack was currently enabled. It sounds pretty close to what I'm doing here but I'm sure there's room for improvement!
I would 10000% love to see the build with the other Steam Multiplayer asset. Having to rely on a separate build is a bit wonky
Feel free to try it! Just launch the cloned repo with the finished changes and try to import GodotSteam and that SteamMultiplayerPeer asset and it should work, I was just having issues on my computer
@@BatteryAcidDev There are specific things that are different between the fork and the addons. Using the addons you no longer have the ability to use RPC's and must move on to StreamPeer and forming your own packets. At least this is how it was the last time I tried it, so I don't believe you can use this method with the addons. I was also attempting the same thing where you quickly develop with godot's multiplayer, then swap over to steam for finalization. I had this working great in GodotSteam, but not with the addons and with my previous project I gave up on it and went with nat punchthrough instead.
Dedicated servers are so much easier imo haha, just not viable for small games.
I also ran into multiple issues with the GodotSteam engine. I don't remember the specifics but later into development one issue was how long it took my project to open, where I could open the same project on regular Godot and it was opened in a few seconds. There was more but that's all I remember off the top of my head.
@@KingRevoker There are some outstanding issues with the extension version, but I did get it working: ruclips.net/video/xugYYCz0VHU/видео.html
Here you go: ruclips.net/video/xugYYCz0VHU/видео.html
I have a cool idea for a party game that I really really want to make, however a prerequite is being able to upload images/videos/sound-tracks/custom-resources from a client to a host peer in a p2p network. I am poor and can not afford the fees to put any games on steam, nor do want to, nor do I plan to. Can this video still help me? Does the steam p2p api still apply even in my niche situation? I plan on adding mobile support
If I hypothetically wanted to legally bittorent files from one device to another for free using a p2p connection(preferably torrent to clients overseas as well since my friends live abroad) how would I do it? I have a very good idea for a party game but it requires the clients to share images, videos, audio files and other godot resources in order to function. How can I achieve this? Is it possible? I can afford to buy any new software nor can I pay for subscriptions. Can I achieve my dreams of bringing this party game into life? If so, what should I learn? I am intermediate in godot and have very little knowlege in networking. I plan on adding mobile support.
Hello :D I'm a student working with game dev and new to godot. I think I've somewhat gotten the grasp of the godot basics but I'm a bit stuck on multiplayer. I'm trying to make a P2P game with matchmaking and have the possibility to have a lobby with your friend. The game I'm making is only suppose to be played with 2 players so I'm wondering if this is the method I should go for? By now I've seen so many tutorials and so many different ways of making multiplayer its braking my brain. Any help would be much appreciated!
Hello! If you're just starting out, using Steam with their Lobby system is a good option. However, maybe use the techniques discussed in this video instead. It's similar, but a little easier to manage as a beginner. Matchmaking, as in matching player together based on rank, location, map type, is a whole other thing. If you don't care about that, well then you can start with these videos. If you need to include more complex matchmaking like I listed above, well, I'll have to do a follow up video on that!
ruclips.net/video/xugYYCz0VHU/видео.html
RUclips is hiding this lol I couldn't find it by searching on RUclips, I had to Google for it
I don’t think RUclips likes me…
I haven't watched the video yet, but something I've been curious about is using Steam's Remote Play for local co-op. Is that something that can be used before a game is released on Steam just by using the Steam SDK or in this case GodotSteam?
That's a good question that I don't have an answer for. Nothing jumped out to me in the docs but I would keep searching!
I had this setup for my game but the delay is crazy high when I move on one machine to the other. I was wondering if this is actually the right way to do a p2p connection or if it's somehow slower because it's using lobbies. When you look at steams networking info, they say just use lobbys as a way to gather then use a dedicated p2p connection. I'm confused. There's a connectP2P function in godotsteam...I just don't what the difference is. Anything you can illuminate on this topic for me that'd be great.
It’s slow because the way this game is coded, player movement makes a round trip to the server and back before the player moves. I haven’t optimized anything for lag yet, but I’m working on it, so stay tuned!
You're video is good ✨, but try to add #tag and video tags to increase your video views 😃✨
Thanks! All the tags are in the description
Hello sir !
As someone who is coming from raw sockets, how exactly do I handle a match making system?
For simple things such as a P2P coop game, Godot seems to make it easy. But for other model behavior, I find it hard to work it, as the multiplayer nodes are fighting against my architecture.
Well there's several ways you can handle matchmaking. You can use Steam, or roll your own, or build it into your server build. I have experimented with making one that is hosted on AWS and I have a full video series on it if you want to check it out. But as far as the nodes, well you don't have to use them. You do have access to lower level networking APIs. I would do the matchmaking before the main game scene, then transition to it when matched. But that would depend on your requirements!
Do you happen to know if this can work for the Godot 3.x versions also or it is specifically updated for Godot 4+?
I believe the pre-compiled version only supports 4.x. github.com/GodotSteam/GodotSteam/tree/multiplayer-peer
@@BatteryAcidDev no worries :) thank you
If I remember correctly, when I use steamworks, I need to register as steam developer first. Should I register steam developer first in this tutorial?
No, as I mention early in the video, you can use the test app ID Steam provides while in development. Once you’re ready to do more significant testing or publish, create a Steam account.
Thanks!
Thank you for the support!
How did you get the inspector panel on the left? :o
ruclips.net/channel/UCtTEc7bBzP7Tq5U2Jzf5lPwcommunity?lb=UgkxJcj-c6Fwu9bLs33QRdNKs34O7K_8W05t
I don't imagine ever uploading my game unto steam. Can Steam P2P still benefit me? I want to make a program in which one client can send files to another client(.mp4, .mp3, .wav, custom resources). Can this be of use for me? I plan on adding mobile support
This is a bit confusing. Would it be better to just use only the steam network
Well, that depends. If you want to stick with using the High Level Multiplayer APIs that Godot provides, this is an easy approach to keep that while switching to a Steam network behind the scenes. Again, it isn't production ready, so if you wanted something solid, you could just use GodotSteam APIs with the lower level networking, as you are suggesting. "Better" is relative to what your goals are.
can you connect with people all over the world or just over the local network?
All over the world! However, depending on the game type, you may run into some lag issues 😁
Another question, could someone explain to me why does "active_network" recognize "_players_spawn_node" as being its internal variable, when it belongs to "network_manager"? At 26:38
It’s in both, I just named it the same name
@@BatteryAcidDev but the "active network" is an instance of the Nodes "steam network" and "enet_network" which, at the time of the video, do not have any children. and "active network" is just a variable in the same script that was only defined at the same startup.
@DragilusGame we assign a node/scene that has this script attached, which is where the _player_spawn_node is referenced as active_network github.com/BatteryAcid/godot-steam-p2p-multiplayer/blob/178bcd43f117ae1ebdd486cfd1480d72f889256a/First%20Game/scripts/multiplayer/networks/enet_network.gd#L8
@@BatteryAcidDev I understand thank you.
I really got confused on this one, because I didn't think it would look for the script associated with the Node, thank you very much, I'm still learning how to use GDScript and I see that there are a lot of details that I haven't caught on yet.
@DragilusGame yea nodes can only have one script attached to them, so when you reference it, you get access to those properties in the script. Glad you got it!
Does anyone know how to get this work in c#?
next video webSocketApi?
I think I’ve got those covered already, there’s two here but they connect to a 3rd party socket, however, you should be able to make it work for just Godot to Godot. I’ll consider making a standalone video on it: Godot Matchmaker and Lobby
ruclips.net/p/PLOtt3_R1rR9WrcyDRsRF3oSrzffmBtJbu
@@BatteryAcidDev oh thx, I missed that video. I need just to say goodbye to my social life xD
Hahah oh yea forget about that! I haven't seen people in years 🤣
Not a fan of using a custom build :(
I’m not really either but I didn’t have time this past week to get the addon version working. I would say if you need it, it’s there for now, and you can swap out for addon as it matures.
@@BatteryAcidDev Got the plugins working, but the peer plugin does not work the same was as shown in your video (it has no create lobby and rather a create host (so you need to create a lobby then in it's call back create the host. And the sameish for the client Join lobby->create client). Tested it but it was incredibly laggy (so much so you can't do the gap jumps ect). Gotta play with it more to see if there was just something missing.
@miatribe I’ve got a video coming out on the plugin route this week lol. The lag is because the game isn’t setup to do client prediction, it’s making a round trip to the server (host) and back before your player moves
@@BatteryAcidDev Found the problem and it appears the peer plugin has a rate limit or something. If I set the intervals on the MultiplayerSynchronizers to like 0.025seconds the lag was gone.
Yes there is sitll the actual lag, but this was something different (we got to the solution I found as the client had no extra lag when I was dragging the host window around on my pc).
The peer plugin error is below (and it was hammering them out haha).
WARNING: Send Error (Unreliable, won't retry): k_EResultLimitExceeded at: SteamConnection::_send_pending (steam-multiplayer-peer\steam_connection.cpp:25)
@miatribe oh man! I literally spent a couple days on that issue and created a ticket for it, nothing I did really worked. Even setting those sync rates you said, but I’ll take another look!
Have you considered Godot plus Steam but dedicated server version? I would be very interested in that!
Yes, I'll add that to the queue! Thanks!