Voxel Game mini devlog - Multiplayer networking architecture

preview_player
Показать описание
My voxel game's needs multiplayer networking, so I've been designing a relay lobby system that will allow players to play together.
Through a peer to peer (p2p) like solution that masks ip adresses through a relay game server.

The libraries I'm using for this specific networking solution:

I'm making a voxel game with Rust and Bevy, and you get to tag along in this video and see some stuff I've been implementing.
Trying out a new video format :)

My discord group:

Want to support me?
Monero: 43Ktj1Bd4Nkaj4fdx6nPvBZkJewcPjxPB9nafnepM7SdGtcU6rhpxyLiV9w3k92rE1UqHTr4BNqe2ScsK1eEENvZDC3W1ur

Resources (The tech I'm using)!
world generation: my own custom implementation is not open source at the moment.

other rust libraries, that I recommend:

#tantan #voxel #gamedev
Рекомендации по теме
Комментарии
Автор

I've never thought of rust as a game dev language but now that I look at it it really is built for tasks like that

spacefishaviation
Автор

You are one of the best game developer channels out here! Thank you!

Jianju
Автор

Damn, I take back me warning you for scope creep / shiny object syndrome the other day, because thanks to this video, multiplayer starts to appeal to me as well 😶 Tantan! What have you done to me?!

i_am_feenster
Автор

Super interesting! Thank your for this detailed channel!

karimdjemai
Автор

Pretty interesting. Was pondering how to do P2P without giving away player's IP addresses, and this seems like a solid way to do it.

TyrianHaze
Автор

I'm also building my own Lobby/Relay server solution. Not in Rust though.
How I'm approaching it right now is to have a "Lobby Server" reserve spots/rooms on a "Relay Server".
But instead of relaying the entire connection from user->lobby->relay, I just let the user connect to the relay directly.
So, in case the lobby goes down, the individual relay servers still keep on going. Meaning there isn't a single point of failure.

AlexMeesters
Автор

Networking... "Its a big pain in the brain" -Tonton

xzippyzachx
Автор

I have been thinking about the cost benefits of using p2p through relay as well. So cool to see this.

theseatoad
Автор

Thanks for making this video. I found this looking for a solution to make online multiplayer Gauntlet Legends possible.

MalikEmmanuel
Автор

Wait what, I thought I would see 1 million subscribers..




Loved ur accent btw..

pacadoidao
Автор

6:34 you might want to read about condition variables, I don't know if the rust std library implements this, but I think that would be a better solution

stephen
Автор

you could use quorum pattern for your p2p. use many clients to simulate physics and the general consensus is then distributed to everyone.

you can also reduce wallhacks by having clients do visibility calculations of a zone they are far away from and then send that info to the players that are over there.

jlebrech
Автор

some note on p2p networking from this video
2:03
Wouldn't it be wonderful if we could have just peer-to-peer connections. But there's one big issue with this and that is that the players knows each other's IP addresses. If you remember when Dany released his game crap game, he was using steam's peer-to-peer networking solution and with that some big streamers got their IP addresses leaked which is a bad thing. So what did they do to resolve that, if changed from steam's peer-to-peer solution to their relay solution which doesn't let players connect to each other instead they do it through a relay. That is what I(the video poster) have been doing. I am not gonna use steam relay solution. I have built my own entire architecture for hosting relay servers.

hikingcrow
Автор

What if one user pretends to be someone else? Is this possible? If so, how do you handle it?

ArachnidAbby
Автор

If your server isn't authoritative, which client is the source of truth for things that are happening outside of the player control? E.g. mob aggro, a ball rolling, etc.

realderek
Автор

Would you recommend a book on client/server architecture for games?

arcanelore
Автор

ROBLOX has a network owner system, so that individual physics objects can be controlled by either the server or the player

esben
Автор

I’m guessing this would still work with games written with networking libraries other than laminar e.g. if I wanted to use renet/bevy-renet or some other library?

AshtonSnapp
Автор

Would you be willing to share some beginner tutorial about this whole thing xD This sounds amazing

alfredosuarez
Автор

are lobby, relay and clientside networking code all going to be open source or just the relay server code itself?

PS: you should post this to the bevy discord!

laundmo
join shbcf.ru