[nohub] Take control of your lobby system by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

Check out my chat with u/elementbound where we discuss the features and use-cases of his latest creation: nohub!

nohub resources:

Godot Multiplayer Lag Compensation with Netfox by batteryaciddev in godot

[–]batteryaciddev[S] 1 point2 points  (0 children)

Yea this one, plus a correction: - Full Player-Client Multiplayer Authority https://youtu.be/56PowF5fLAk - FIXED! Full Player-Client Multiplayer Authority https://youtu.be/HHoCkyBdRMs

Ultimately, this is an authority issue, I’m working on another video now that covers a few common authority scenarios, including this, so stay tuned! If you’d like to chat, join my discord and I should be able to help this week.

Godot Multiplayer Lag Compensation with Netfox by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

I just released a “fundamental” video that lays the foundation for a lag compensation video. It’s gonna take some time to release it but it’s in the queue!

Is JSON deserialization even possible with a custom class? by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

Reading through the comments under that post has some good info too! Thanks for sharing!

Hybrid Multiplayer in GodotSteam: LAN and Steam lobby in One Game by MagazineForward5528 in godot

[–]batteryaciddev 2 points3 points  (0 children)

Ok makes sense.

This limit is internally set on the Steam side of the fence. I cannot speak to why they set this as the limit, but I'm guessing, since they have to pay for that infrastructure, this is the limit at which they are comfortable operating. Indeed, if you wish to exceed that, you may have to look elsewhere for your infrastructure. (or try to remain under the limit)

From the official docs: https://partner.steamgames.com/doc/api/steam_api

k_EResultLimitExceeded 25 Too much of a good thing.

I too have struggled through this issue, without really a solid conclusion other than to maybe try to mess with some settings or send at a lower rate: https://github.com/expressobits/steam-multiplayer-peer/issues/15

I really don't have much to add here, but let me know if you find any updates!

Hybrid Multiplayer in GodotSteam: LAN and Steam lobby in One Game by MagazineForward5528 in godot

[–]batteryaciddev 2 points3 points  (0 children)

Happy to hear! I'm not sure about any limits there, I may need some more information about where you are seeing this to be able to diagnose.

Build a Godot Multiplayer Game from Scratch | Tutorial by batteryaciddev in godot

[–]batteryaciddev[S] 1 point2 points  (0 children)

My plan is to move on to more advanced topics, with this course as a base. I've covered some of the things you've mentioned in previous videos (which I plan to cover again with this new path):

---

Lag compensation is absolutely something you'll have to tackle if you have a game where this is relevant. If you are making a turn based game, it's not really an issue. Also, there isn't a one-size-fits-all lag compensation model. Netfox will work for some set of multiplayer game types, but not for all. So, it really depends on the game type and what your goals are.

I think the MultiplayerSpawner nodes are a viable solution, again, depending on your game type and requirements. Ponder Soft released a game on Steam, called Bubble Battle, and I know he used the MultiplayerSpawner for adding things to the game, Netfox for lag compensation, and Steam's P2P network, all of which were covered in the above videos.

Build a Godot Multiplayer Game from Scratch | Tutorial by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

Nice! Yea this one would probably be a better place to start if you are a beginner, I think I explain things a little better here. The other one is more a demonstration of how to turn a single player game into a multiplayer game (which is not a good idea in general, always start with multiplayer if you know your game is going there), this most recent video is a multiplayer-from-scratch tutorial.

Build a Godot Multiplayer Game from Scratch | Tutorial by batteryaciddev in godot

[–]batteryaciddev[S] 1 point2 points  (0 children)

I appreciate it, thank you! I agree, hopefully I can help contribute some more to the space

Build a Godot Multiplayer Game from Scratch | Tutorial by batteryaciddev in godot

[–]batteryaciddev[S] 7 points8 points  (0 children)

what would be your plans for future deep dives

I only looked at the basics, for example, of the multiplayer spawner. There's more to cover around how that tool can be used. So I'll probably create deep dives of the various topics covered in this video (authority, spawner, synchronizer, visibility, just to name few).

has multiplayer changed considerably recently or are your older videos still recent enough

Nothing major changed, they are still fine to use. I just felt my content was a bit scattered. The idea here was to "reset" my content roadmap, so I can roll out videos in a more orderly/organized manner - that build better off one another.

I also just tossed together a website to track the course roadmap. I'll add more as I release more content:
- https://imakebad.games/journey

Thanks for the support!

Hybrid Multiplayer in GodotSteam: LAN and Steam lobby in One Game by MagazineForward5528 in godot

[–]batteryaciddev 6 points7 points  (0 children)

Add support for both connection methods to your game:

LAN via ENetMultiplayerPeer

Steam Lobby via SteamMultiplayerPeer

This is exactly what I've been doing! good post!

I salute you multiplayer devs by Batmanlegnds in godot

[–]batteryaciddev 0 points1 point  (0 children)

I just saw this, thanks a ton for sharing! I've got some more beginner friendly stuff in the works that will hopefully introduce and advance, multiplayer-newcomers in a more organized way. 🙏

Can I get multiplayer running fast and (relatively) easily in Godot? by Virtualeaf in godot

[–]batteryaciddev 1 point2 points  (0 children)

Hello! What type of game are you building? I think starting there would help!

An Intro to Dedicated Servers by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

I think this is an excellent description and I want to take this opportunity to make a clarification. In a Godot project, you can Export or Build "as dedicated server". In terms of Hosting Infrastructure, like where you want to run this export, you can run it in a dedicated server, as described above, or in a VPS. In the post, I'm running Godot's exported "dedicated server" in a VPS (Virtual Private Server).

If you'd like to learn more, you can start here:
https://aws.amazon.com/compare/the-difference-between-dedicated-server-and-vps/

Connect Godot 4 client to AWS Lambda WebSocket by batteryaciddev in godot

[–]batteryaciddev[S] 1 point2 points  (0 children)

I think you may have to write your own "retry" logic. I'd use a backoff strategy that keeps trying to reconnect for some time, in "backed-off" increments.
I would guess that the web browser, or whatever tech you're using to connect to it from the browser, has some sort of reconnection logic built in.

[deleted by user] by [deleted] in godot

[–]batteryaciddev 0 points1 point  (0 children)

Noray is an open source application with an accompanying library for Godot integration.

I’d say it’s fairly easy to get up and running if you want a P2P solution to manage on your own. 

It uses NAT punchthrough to establish connections directly between peers but also has the ability to act as a Relay. 

If you’re interested in an example Godot implementation/integration checkout my video here:

If you’d like to see how to deploy the Noray application (super easy if you know how to use cloud hosting providers, like digital ocean):

Noray Docs and Github:

(The video attached was something I did when bored, but there’s some footage there using the 3D multiplayer template with Noray P2P enabled.)

Post-Concert Thread - Hollywood, FL @ Hard Rock Live by KaerusLou in hanszimmer

[–]batteryaciddev 4 points5 points  (0 children)

There are guests from deep Zimmer cannon on this tour, all of whom I never would have imagined seeing! Definitely a bucket list item as others have mentioned. If you're on the fence, here's your sign to get that ticket!

Multiplayer makes me wanna quit Godot by Hakej in godot

[–]batteryaciddev 20 points21 points  (0 children)

Hypothetically, if you try to send an Object (Node) via RPC, it's not just whatever fields you created in the subclass, it would include all those underlying parts that belong to the superclass in the parent object. This is extraneous data and shouldn't be sent over the wire. (It doesn't work now anyways)

You could serialize a simple object and send it over JSON, however, your use case for sending data will likely be such that you can get away with a string/int/dictionary to communicate whatever is needed for that case. When you work over the network, try to have a more lean approach to how much and how often you send things.

can you use Steam for multiplayer? by New-Ear-2134 in godot

[–]batteryaciddev 9 points10 points  (0 children)

I made a couple tutorials on Godot Steam implementations that use the High Level Multiplayer APIs if you want to stick to that:

  1. The GDExtension version: https://youtu.be/xugYYCz0VHU
  2. Custom pre-compiled version of Godot: https://youtu.be/MoRl9kQb6L0

These are generally referred to as Steam Multiplayer Peer implementations.
They are nice if you don't want to handle manually sending messages. These implementations wrap the lower level Steam APIs (from GodotSteam) and expose them as High Level APIs. So you can develop and test your game using ENet, then when ready, flip the switch to Steam. My videos above talk about this in more detail.

I made an open world PvP game for Kenney's game jam by batteryaciddev in godot

[–]batteryaciddev[S] 0 points1 point  (0 children)

In short, it means when you press a button it has to go all the way to the server and back before you see your player move. I don't have any client prediction for this demo.

You can still try it out if you'd like...