Practical tips for multiplayer game development - Davide Di Staso - GodotCon 2024

  Рет қаралды 2,474

Godot Engine

Godot Engine

Күн бұрын

Пікірлер: 19
@jumpsneak
@jumpsneak 6 күн бұрын
Great talk, good topic, but why not show the Q&A?
@ZayyzYT
@ZayyzYT 6 күн бұрын
this talk provided me a lot of insight, thanks
@davcri
@davcri 4 күн бұрын
Nice talk with excellent tips, congrats and thanks for sharing them
@kansisesi7631
@kansisesi7631 5 күн бұрын
I still couldn't find a way to handle loading screens with MultiplayerSpawner. Spawning a loading screen instead of full level breaks all MultiplayerSpawner and MultiplayerSynchronizers in the level because of loading time difference.
@pro.giciel9084
@pro.giciel9084 5 күн бұрын
you can't wait everyone has loaded before ?
@kansisesi7631
@kansisesi7631 5 күн бұрын
@@pro.giciel9084 I can load all levels to memory, or async load with rpcs to do that. First option takes too long on my game. Second option doesn't work when someone joins the game later.
@noid3571
@noid3571 19 сағат бұрын
It doesn't matter what Godot version you are using or even what game engine you are using. I rebuilt my first game with multiplayer a long time ago, so I can tell you right now that you don't even need new nodes. Sure new nodes are really good, especially the synchronizer, but I find my code to be more readable and I know *exactly* what it does even if I haven't seen it for a long time. 1. only the server can initiate the scene switch, other nodes can only ask it to start switching 2. server notifies all clients to start a transition animation (fade-out for example) and load in new scene/assets when the animation finishes 3. when the client finishes loading it notifies the server 4. server stores the ID of the client that finished and performs a check to see if everyone is ready 5. IF everyone is ready notify all clients to start the second half of the transition animation (ex. fade-in) and enable their controls Why do all this? - everyone stays synced, and the server stays in control - as it should - no player gets the advantage of performing input commands before other players due to faster load time - if someone disconnects you can handle it in multiple ways (wait for reconnect, terminate the lobby, continue the lobby with or without the option for said player to return etc.)
@kansisesi7631
@kansisesi7631 4 сағат бұрын
​@@noid3571 Thanks for suggestions. I had a similar setup in my previous project but it was a lobby game. Now I work on a coop game, I can work much faster with new nodes. I have several nodes that handle multiplayer visibility automatically, so in current setup I just place spawner and synchronizers and it works. Since there is no lobby, clients should be able to disconnect and join any time and host can load multiple levels at same time. When a client goes to another map I cannot block host's input. I need to asynchronously spawn level on host with no loading screen, and show a loading screen on the client. I will probably add asynchronous loading to MultiplayerSpawner instead of rebuilding everything with rpcs, this solves all problems I have.
@surplusking2425
@surplusking2425 6 күн бұрын
Cloud is overrated and overpriced. Just use non-cloud server.
@i_dont_know_my_name
@i_dont_know_my_name 5 күн бұрын
What's non cloud server?
@marianosuligoy9750
@marianosuligoy9750 5 күн бұрын
​@@i_dont_know_my_namei believe he means you use a server to share each client's IP address and the you connect using peer to peer fashion
@anonymous-someusr
@anonymous-someusr 5 күн бұрын
@@marianosuligoy9750 p2p is gonna cause dns leaks, etc... could be solved using proxies which in return is cheaper. additionally, you'd only need to store data temporarily. you don't need to store a history of stuff & text chats server-side. client-side works as well, unless it has been reported. also, make sure rate limits are a thing and it has great data validation. 1 unsecure line and your players pc is infected.
@surplusking2425
@surplusking2425 5 күн бұрын
Unfortunately both are wrong....There's a ton of way to without cloud to host a server and most of them are cheaper than cloud service, unless your game's usage is so low that covers free tier from major cloud services like Azure
@i_dont_know_my_name
@i_dont_know_my_name 5 күн бұрын
stop answering a question without answering it, people like you or bots on the internet just write empty words. answer me straight or don't answer it.
Local Multiplayer with NEW Input System - Unity Tutorial
15:12
The Ultimate Sausage Prank! Watch Their Reactions 😂🌭 #Unexpected
00:17
La La Life Shorts
Рет қаралды 8 МЛН
Programming Is Cooked
9:30
ThePrimeTime
Рет қаралды 278 М.
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 731 М.
Microservices are Technical Debt
31:59
NeetCodeIO
Рет қаралды 651 М.
A New Era for C and C++? Goodbye, Rust?
9:08
Travis Media
Рет қаралды 54 М.
TMUX in 100 seconds | Prime Reacts
11:43
ThePrimeTime
Рет қаралды 161 М.
Shaders and Magic - Leszek Nowak - GodotCon 2024
26:04
Godot Engine
Рет қаралды 5 М.