I searched through the internet for days to find out how the game server works. Not for interview purposes but for sake of the interest. And your explanation quenched my thirst.
4:34 P2P (zoom call) vs multi player games 5:33 Latency considerations: in-memory, TCP/UDP 6:41 Game server events 8:36 Sharding map: Region servers 9:38 Region boundary challenges 11:32 Region-of-interest for a player 12:19 Cross-region locks 14:50 Interpolation 15:34 Rebalancing region servers: Consistent hashing 16:25 CDNs
Nicely explained. Your videos have a lot of positives but the best one for me is that you discuss other options and their tradeoffs before sharing your design. This in my opinion gives a wider technical coverage for someone who is studying for SD interviews. A couple of questions for the current design: 1. Are we using UDP for both client to server and server to client comms? Why not explore websockets since it is two way comms with lots back and forths? 2. Can we split the map into much smaller sub maps and to every player send state updates from user's sub map and their immediate neighbour sub maps only? This should solve the cross region visibility issue.
1) the reason that we use UDP here is just for a subset of the droppable updates, like movement, since it is typically faster to communicate with the server in this way. I suppose multicasting it also makes this more "fair"
first, kudos on these videos. I wish you continue doing them when you get more and more experienced. btw, your sound is not in sync with the video, so it looks like one of those German movies - the moustache fits nicely :D keep doing these type of videos!!
Haha thanks! Unfortunately I had to shave it as I was trying to not look too gross on a date. Interesting about the mic syncing! I'll look into that, but my video and audio is recorded at the same time and locked together in the editor.
This might be a very naive question, but what type of connection is between client and server? How are multiple servers able to send notifications to client? Is it SSE only?
I think this is just a good example of where the dynamic sharing comes into place! Have a dedicated server for the small region and then repartition as everyone jumps from the plane. Or perhaps they do some optimization where a player isn't loaded into the servers until they drop or something, good question though!
I searched through the internet for days to find out how the game server works. Not for interview purposes but for sake of the interest. And your explanation quenched my thirst.
Any other ways I can quench your thirst? ;)
4:34 P2P (zoom call) vs multi player games
5:33 Latency considerations: in-memory, TCP/UDP
6:41 Game server events
8:36 Sharding map: Region servers
9:38 Region boundary challenges
11:32 Region-of-interest for a player
12:19 Cross-region locks
14:50 Interpolation
15:34 Rebalancing region servers: Consistent hashing
16:25 CDNs
Nicely explained. Your videos have a lot of positives but the best one for me is that you discuss other options and their tradeoffs before sharing your design. This in my opinion gives a wider technical coverage for someone who is studying for SD interviews.
A couple of questions for the current design:
1. Are we using UDP for both client to server and server to client comms? Why not explore websockets since it is two way comms with lots back and forths?
2. Can we split the map into much smaller sub maps and to every player send state updates from user's sub map and their immediate neighbour sub maps only? This should solve the cross region visibility issue.
1) the reason that we use UDP here is just for a subset of the droppable updates, like movement, since it is typically faster to communicate with the server in this way. I suppose multicasting it also makes this more "fair"
Jordan bro this is brilliant
😙😙😙
Would love to see a video on designing a notification service!
Gotcha
first, kudos on these videos. I wish you continue doing them when you get more and more experienced.
btw, your sound is not in sync with the video, so it looks like one of those German movies - the moustache fits nicely :D
keep doing these type of videos!!
Haha thanks! Unfortunately I had to shave it as I was trying to not look too gross on a date. Interesting about the mic syncing! I'll look into that, but my video and audio is recorded at the same time and locked together in the editor.
@@jordanhasnolife5163 yea the mic sync issues is a thing...watch your videos on another device or something, idk
This might be a very naive question, but what type of connection is between client and server? How are multiple servers able to send notifications to client? Is it SSE only?
A client can have a few open connections at a time. SSE could work, but I'd probably lean more towards web sockets for bidirectional communication.
At the start of the game, when all the users are in the same region server how to handle hotspot and distribute load?
I think this is just a good example of where the dynamic sharing comes into place! Have a dedicated server for the small region and then repartition as everyone jumps from the plane. Or perhaps they do some optimization where a player isn't loaded into the servers until they drop or something, good question though!
i support the moustache but yeh probably give it a few more weeks before u walk by any schools
Amazing
Dude you are sooo freaking funny hahahaha
Fortniteeeeeeee