For honor has a much more simplified networking system that greatly reduces system stress and workload by just not working at all. Its rather genius actually!
I'm so grateful that i found your channel... Seriously. I've been learning programming for about 10-12 years. Damn, I've even been working on big game projects. And the things you talk about in your videos are EXACTLY the parts i was missing and the parts that nobody explained. I love every part of what you're doing here, i love the way you can make people understand almost anything, i love that we share a lot of things in our personalities (mostly thinking of Q&As). Challenge is what makes us go and accomplishment makes us find new challenges. Much love and respect from Hungary, girl! Keep up the good work! ;) - (Unity / mostly C# guy)
All People studying this need drastic psychotherapy. 7 Application 6 Presentation 5 Session 4 Transport 3 Network 2 Data Link 1 Physical I just started learning the OSI model, and in fact - I have a test tomorrow.
As a relatively new programmer, I found that the things you discussed about online gaming and the internet in general were fascinating. I definitely feel like I learned a lot (even if it's just the tip of the iceberg) from this video. Thank you!
So happy that I found your channel again! Your videos were very helpful for classes I had difficulties in, and I plan to watch many more later, so thank you for taking the time to explain these concepts to us!
As a former Dota 2 addict now moving to professional life. I really love your videos explaining game concepts with such ease. Thanks for all these explanatory videos !
Thank you so much for what you're doing. I'm on the "Visual Novel" parts and i'm gonna use those all winter to help me learn and develop my skills. THANK YOU for helping me accomplish a long time dream of mine, you have no idea. please keep it up, you're a great youtube teacher and you have a great voice and personality for it. It's what this community needs, so thank you and please keep it up:)
I still find it amazing if I think of how many parts work together in computer and networking and how fast all is done. If you consider all the pieces of hardware and all the different protocols involved, not only on your computer but in the whole network, and how much information gets transmitted (and processed and translated!) within fractions of a second...
Topic idea: delve more into the application layer, specifically, how to get consistency when (always) there's latency between client input locally and reaching the server, and latency between events becoming canonical and reaching the client. There are two extremes. One is no consistency, for example on Han's computer he shot first and Darth is out, but on Darth's computer Han is out cold, both continue playing unaware that their game is no longer synchronised. The other is sequential consistency, which many games implement. For example, Universe At War claims "Synchronisation Error" and kicks everyone out the first time clients work off different assumptions. Designing application-layer protocols so that the client can queue events but react when those events get rejected isn't always possible - it's sometimes necessary to disconnect a client - but figuring out which events can be reasonably rejected without destroying the experience is a skill worth learning. Similarly, being able to know which events are pending and how to roll-back client state if and when they are rejected is an important part of the application layer. It can often be important to ensure, in the design of the protocol, that an individual client can't cheat (or limit how they can cheat). It's often easy to determine from the data coming in the location of things you shouldn't know about. I know it's a big topic and an area of huge active research, but it's something online multiplayer game developers SHOULD be thinking about.
I find it interesting that I, a Reverse Engineer obsessed with Dark Souls II goes on RUclips to learn more about networking (I've reversed the P2P code in the past, looking at server communication now) and finds a video that "focuses" on Souls games to explain networking. I guess I will take that.
UDP is used not just for sending audio - in fact it's used by most games worth their salt. The problem with TCP is that it blocks until a packet is successfully received (simplified). With UDP you have control over what happens.
Fun fact: Dead by Daylight was originally a P2P game, until they added Dedicated Servers, which caused a lot of problems during the Public Test Build, nowadays, if someone gets hit and they shouldn't have *by any means* , it's called a "Dedi-hit" for "Dedicated server hit".
(3:30) That's IPv4 and I've heard those aren't unique. Don't a whole house and sometimes a whole neighborhood have the same IPv4 address sometimes? But nowadays we do also have IPv6 that are much longer in length and can be unique per client.
Something to delve into for funsies (and maybe make a video about since you skip over it here) is the actual mechanics of what happens when packets arrive at the server or client (what if UDP packets arrive out of order? what if packets are lost? what if lag is so high the game would feel unresponsive?). You can google "unreal engine replication" and "dead reckoning" to start.
I was expecting a discussion of how the server might prioritise data and how it handles each players perspective of another player. Also nothing was said about what the server actually does with any of those inputs. I don't think the specific conditions for a check in dark souls is actually relevant to networking since that has nothing to do with how it actually gets those IP addresses, and what actually happens when you summon someone. (The second half of the video was completely unlike the first half)
Don't know if there was a follow up video to this, but it would have been nice to know a little bit more specifics about stuff like clientside and serverside info. I remember editing memory values for a single player game to give myself infinite ammo, and then wanting to use it online, but found out that the server keeps my ammo serverside, while the indicator information was clientside.
The server likely keeps all the info, and may have limits. When you "save" your game single player if you're connected online the server may validate this information before it takes it. Otherwise the server just keeps most of the info and SHOVES that into your client when it starts up. For example. When you hit the a button, the server gets this info and says: "Hey, he used a bullet, decrement his ammo count by 1." And this is the only way your client can alter the server info. Manipulating the data by hand results in nothing, since the server already has the data file for you, it gives you the data file, not the other way around >.< But who really knows beyond the programmers themselves. Some games do get hacked in ways like this! So it sometimes just comes down to the implementation of the servers/clients themselves!
Mnemonic for the network layers: Please Do Not Throw Salami Pizzas Away! :) Edit: You might want to look into how rollback netcodes like GGPO work as an extension to this video.
The question im asking is more complex, I'm building the bases for a multi purpose, with a cross console platform. The bases of the game you can be on a PC and your friend your playing with is on a PS5. being on the same server (with or with out region). My question comes down to severs capability plus regions servers, how much can a single server handle in player complexity, how many servers can a regional server can handle. I'm trying to understand theses concepts before i give my idea to a major company to handle. I want my presentation to be perfect. tho this part of the presentation may not be needed but it's best to know it if someone ask "How many players can be in each server?" This being a cross platform game i want about 9k players per "world" but with how complex the matrix of the game it will need powerful servers and a big handful of them to run one world. so the game can have the best connection to the point if you suffer any lag its coming down to the client and not the host. then it comes down to the bases of how to handle and take care of each server and whats the different between severs and regional servers and are there any physical differences between them?
What sort of data network packets contain and what glitches can happen as a result? From looking into bukkit modding it seems like messing with them can do some weird things, like crashes or things being client side when they shouldn't be.
already know the osi model intimately. was expecting something deeper like what kind of server side software do they use to save progress data. cause i heard normal record storing software like mysql and ms sql just wont cut it.
The-BGR Spot I'm not Autistic. And let me fix that for you She's a girl* Muuuuuch better. doesn't hurt my eyes anymore. I use the word "dude" as in another human being. It's pretty clear you can do that. Jacksepticeye does the same thing and he's way more relevant to the human race than both of us will ever be combined so choke on that! I'm sorry I can't contain myself sometimes just don't mind me please
the reason why peer to peer is the best : when X game company decides to AXE their game, most of the time it was server based so the servers are gone and poof , no more multiplayer. In the case of original dark souls (not that SHITTY "remaster") however, all you need is a working connection (if you're still having problems get DSCM). but that's just my opinion.
We love hearing your voice, it's perfect while you're programming coz' it produces beta and maybe alpha waves:-) I wish you were my college programming subjects professor coz' you can explain and articulate the hardest subject in the world- programming (harder that physics, advanced Math and philosophy for it encompasses all that) and tracking the data flow with abstract concepts that are hard to relate to coz' it can't be touched or seen physically, it without going into geek speak- you're gifted with simplifying the complicated which is genius. God bless, Proverbs 31
im trying to make a simple game and right now I am limited to 2.5d. my question is: How does 2.5 dimensions even work? How would one implement that in a 2d environment?
not exactly, we in tekken 7 ( pc, ps4 or xbox on) cannot play in different continents.... try to play with a friend who is in europa and you are on oceania its very very lag ....
"IP protocol" So the Internet protocol protocol? I like your videos but they are to basic for me. I was hoping for more technical information how game engines handle networking.
Great channel Cat. I just found it today. Its cool because its so rare to have women youtubers, much less women youtubers capable of explaining technical subjects like game development (which as you know ranges from programming, to art, to computer networks). I say bravo and good luck!
didn't even talk about networking libraries or sockets. no, instead you started talking about some one specific game's mechanics that didn't really have much to do with general networking.
For honor has a much more simplified networking system that greatly reduces system stress and workload by just not working at all. Its rather genius actually!
I'm so grateful that i found your channel... Seriously. I've been learning programming for about 10-12 years. Damn, I've even been working on big game projects. And the things you talk about in your videos are EXACTLY the parts i was missing and the parts that nobody explained. I love every part of what you're doing here, i love the way you can make people understand almost anything, i love that we share a lot of things in our personalities (mostly thinking of Q&As). Challenge is what makes us go and accomplishment makes us find new challenges. Much love and respect from Hungary, girl! Keep up the good work! ;) - (Unity / mostly C# guy)
+Bernát Gyovai That's the best thing I could hear! Thank you!
+TheHappieCat Actually i'm the one who forgot to include the "Thank you!" :)
+Bernát Gyovai This is my exact sentiment!
How Networking Works in Dark Souls.
Not that i'm complaining. :)
Ender Bir Adam Exactly what I came here for xD
@@enderbiradam6954 it's how networking works..
@@chacatiarla yeah but the main example, or rather the only example was dark souls so I though I'd state the obvious. :D
7 layers = All People Seem To Need Data Processing
+Guiseppe Very useful for an upcoming exam of mine. Thanks!
Please Do Not Throw Sausage Pizza Away: 1. Physical 2. Data Link 3. Network 4. Transport 5. Session 6. Presentation 7. Application
All People studying this need drastic psychotherapy.
7 Application
6 Presentation
5 Session
4 Transport
3 Network
2 Data Link
1 Physical
I just started learning the OSI model, and in fact - I have a test tomorrow.
All Prostitutes Seem To Need Double Penetration
I've been doing networks for 25 years and this is the first time I've heard this mnemonic. Awesome!
As a relatively new programmer, I found that the things you discussed about online gaming and the internet in general were fascinating. I definitely feel like I learned a lot (even if it's just the tip of the iceberg) from this video. Thank you!
So happy that I found your channel again! Your videos were very helpful for classes I had difficulties in, and I plan to watch many more later, so thank you for taking the time to explain these concepts to us!
As a former Dota 2 addict now moving to professional life. I really love your videos explaining game concepts with such ease. Thanks for all these explanatory videos !
Thank you so much for what you're doing. I'm on the "Visual Novel" parts and i'm gonna use those all winter to help me learn and develop my skills. THANK YOU for helping me accomplish a long time dream of mine, you have no idea. please keep it up, you're a great youtube teacher and you have a great voice and personality for it. It's what this community needs, so thank you and please keep it up:)
To see the OSI model on this video made me laugh because of memories from my computer science degree :)
I still find it amazing if I think of how many parts work together in computer and networking and how fast all is done. If you consider all the pieces of hardware and all the different protocols involved, not only on your computer but in the whole network, and how much information gets transmitted (and processed and translated!) within fractions of a second...
SpaceWolfHudson When you have someone breakdown ALL the steps like her then yes, I'd have to agree with you.
I'm so glad I found you channel! Awesome material here!
Topic idea: delve more into the application layer, specifically, how to get consistency when (always) there's latency between client input locally and reaching the server, and latency between events becoming canonical and reaching the client.
There are two extremes. One is no consistency, for example on Han's computer he shot first and Darth is out, but on Darth's computer Han is out cold, both continue playing unaware that their game is no longer synchronised. The other is sequential consistency, which many games implement. For example, Universe At War claims "Synchronisation Error" and kicks everyone out the first time clients work off different assumptions.
Designing application-layer protocols so that the client can queue events but react when those events get rejected isn't always possible - it's sometimes necessary to disconnect a client - but figuring out which events can be reasonably rejected without destroying the experience is a skill worth learning. Similarly, being able to know which events are pending and how to roll-back client state if and when they are rejected is an important part of the application layer.
It can often be important to ensure, in the design of the protocol, that an individual client can't cheat (or limit how they can cheat). It's often easy to determine from the data coming in the location of things you shouldn't know about.
I know it's a big topic and an area of huge active research, but it's something online multiplayer game developers SHOULD be thinking about.
Loved how all the people in your drawings were cats.
I find it interesting that I, a Reverse Engineer obsessed with Dark Souls II goes on RUclips to learn more about networking (I've reversed the P2P code in the past, looking at server communication now) and finds a video that "focuses" on Souls games to explain networking. I guess I will take that.
If I had this visualized in my head for network exam, I wouldn't have to take it 3 times. The 7 layers from hell.
IP Protocol = internet protocol protocol...
Great video though! :)
dc comics = detective comics comics xDD
Sahara Desert = "Desert" Desert
VIN number TIN number PIN number. Vehicle identification number number, tax identification number number, personal identification number number lol
@@riggz5496 It's called RAS Syndrome. Repetitive Acronym Syndrome Syndrome. It's a real thing.
DC current = Direct current current.
AC current= Alternating current current.
i have a test about the osi model tomrrow and this video connected the stuff im learning with video games which is super awesome
Your videos are great. I only started learning about the 7 OSI layers last week, so I definitely know I'm in the right place.
you voice is soo soothing . and also this channel is great and keep up the good work
You got yourself a new subscriber. :3
Very informative, lovely voice, paint style visual... couldn't ask for more.
Big thanks.
Just found this. Probably going to be in my top favorite youtube channels.
This was actually really helpful, thanks!
nujabes
Wow Happie really likes Dark souls lol!
Thanks for summarizing my entire networking class in about 10 minutes. This was much more educational and entertaining.
My favorite HTTP error is 418 (I'm a teapot)
To be more accurate, Response :) Who says you wern't looking for a Teapot? :P
well, the 4xx responses belong to the "Client Error" category, but yeah, maybe some people like teapots :D
It's supposed to be sent in response to requests to brew coffee (over hypertext coffee-pot control protocol).
UDP is used not just for sending audio - in fact it's used by most games worth their salt. The problem with TCP is that it blocks until a packet is successfully received (simplified). With UDP you have control over what happens.
I just found your channel, so glad I found it. LOVE IT!!!
Fun fact: Dead by Daylight was originally a P2P game, until they added Dedicated Servers, which caused a lot of problems during the Public Test Build, nowadays, if someone gets hit and they shouldn't have *by any means* , it's called a "Dedi-hit" for "Dedicated server hit".
(3:30) That's IPv4 and I've heard those aren't unique. Don't a whole house and sometimes a whole neighborhood have the same IPv4 address sometimes? But nowadays we do also have IPv6 that are much longer in length and can be unique per client.
Something to delve into for funsies (and maybe make a video about since you skip over it here) is the actual mechanics of what happens when packets arrive at the server or client (what if UDP packets arrive out of order? what if packets are lost? what if lag is so high the game would feel unresponsive?). You can google "unreal engine replication" and "dead reckoning" to start.
Have you played Bloodborne yet?, there's a password-based matchmaking system that makes finding your friends super easy.
I was expecting a discussion of how the server might prioritise data and how it handles each players perspective of another player. Also nothing was said about what the server actually does with any of those inputs.
I don't think the specific conditions for a check in dark souls is actually relevant to networking since that has nothing to do with how it actually gets those IP addresses, and what actually happens when you summon someone.
(The second half of the video was completely unlike the first half)
you should mention network layers in opposite order (how the data is packed with more information during encapsulation)
It would be helpful if you could also describe the game server activity, instead of only the player side experience.
Studying for CCNA and ended up here. Neat
Good explaination, except two things:
1: You skipped the Data Link Layer (Quite important)
2: You skipped the Session Layer (Even more important)
I love your videos! You cover great concepts
I know this is old, but so some of you know, this is the basics of network engineering. You need to know this even for a Tier 1 position.
More on algorithms please :D
I actually came here to learn how to build a network inside games but I guess I'll learn the backend side now... ^.^
Don't know if there was a follow up video to this, but it would have been nice to know a little bit more specifics about stuff like clientside and serverside info. I remember editing memory values for a single player game to give myself infinite ammo, and then wanting to use it online, but found out that the server keeps my ammo serverside, while the indicator information was clientside.
The server likely keeps all the info, and may have limits. When you "save" your game single player if you're connected online the server may validate this information before it takes it.
Otherwise the server just keeps most of the info and SHOVES that into your client when it starts up.
For example. When you hit the a button, the server gets this info and says: "Hey, he used a bullet, decrement his ammo count by 1." And this is the only way your client can alter the server info. Manipulating the data by hand results in nothing, since the server already has the data file for you, it gives you the data file, not the other way around >.<
But who really knows beyond the programmers themselves. Some games do get hacked in ways like this! So it sometimes just comes down to the implementation of the servers/clients themselves!
Wow, great work, this is inspiring teaching. Thanks so much.
Mnemonic for the network layers: Please Do Not Throw Salami Pizzas Away! :)
Edit: You might want to look into how rollback netcodes like GGPO work as an extension to this video.
Just found your channel and I like it.
I had(has) no problem playing with my friends on DS, the summon sign appears just instantly.
The question im asking is more complex, I'm building the bases for a
multi purpose, with a cross console platform. The bases of the game you
can be on a PC and your friend your playing with is on a PS5. being on
the same server (with or with out region). My question comes down to
severs capability plus regions servers, how much can a single server
handle in player complexity, how many servers can a regional server can
handle. I'm trying to understand theses concepts before i give my idea
to a major company to handle. I want my presentation to be perfect. tho
this part of the presentation may not be needed but it's best to know it
if someone ask "How many players can be in each server?" This being a
cross platform game i want about 9k players per "world" but with how
complex the matrix of the game it will need powerful servers and a big
handful of them to run one world. so the game can have the best
connection to the point if you suffer any lag its coming down to the
client and not the host. then it comes down to the bases of how to
handle and take care of each server and whats the different between
severs and regional servers and are there any physical differences
between them?
Keep going! I really love tour work
I respect you for drawing with a mouse.
Nice, thanks for the video.
What sort of data network packets contain and what glitches can happen as a result? From looking into bukkit modding it seems like messing with them can do some weird things, like crashes or things being client side when they shouldn't be.
i cant believe i learning networking with one of my favorites rpgs holy shit...
already know the osi model intimately. was expecting something deeper like what kind of server side software do they use to save progress data. cause i heard normal record storing software like mysql and ms sql just wont cut it.
oh no! mean people in chat :'(
Can you PLZ do the same stuff about the division? I love to learn about the server side of this game
Your data doesn’t get sent it a packet it gets sent in multiple packets.
Wow, pretty amazing and easy explanation, subbed :)
This is really helpful. Thanks!
What a great channel
Thank you! This was really helpful :)
Omg, what an amazing video!
I started becoming interested in networking after seeing the FFXIV documentary
dude you're so awesome!!! I love your channel!
she is a girl...
The-BGR Spot I'm not Autistic. And let me fix that for you
She's a girl*
Muuuuuch better. doesn't hurt my eyes anymore. I use the word "dude" as in another human being. It's pretty clear you can do that. Jacksepticeye does the same thing and he's way more relevant to the human race than both of us will ever be combined so choke on that!
I'm sorry I can't contain myself sometimes just don't mind me please
Dream Spark I dont mind it
dont worry
I spend my day literally shitposting so just someone expressing his opinion (which I respect) is totally ok
The-BGR Spot
this video doesn't answer the main question, how game networking is made, in other word which protocol does games use in their networking
Great explanation thanks
I love 0 and 1 and I love your explanation so 101 :)
Are dedicated servers funded by the company that built the game or by gamers?
thumbs up for Dark Souls! :)
Damn I fell too deep into nerd youtube again and now I know way too much about really specific skills I will never actually use.
the reason why peer to peer is the best : when X game company decides to AXE their game, most of the time it was server based so the servers are gone and poof , no more multiplayer.
In the case of original dark souls (not that SHITTY "remaster") however, all you need is a working connection (if you're still having problems get DSCM).
but that's just my opinion.
May I know which tool you use for your presentations?
We love hearing your voice, it's perfect while you're programming coz' it produces beta and maybe alpha waves:-)
I wish you were my college programming subjects professor coz' you can explain and articulate the hardest subject in the world- programming (harder that physics, advanced Math and philosophy for it encompasses all that) and tracking the data flow with abstract concepts that are hard to relate to coz' it can't be touched or seen physically, it without going into geek speak- you're gifted with simplifying the complicated which is genius.
God bless, Proverbs 31
Where did you learn everything you know ? i want to learn. Please keep making videos btw haha
As soon as you said lag the video started buffering
great video, now i am also happie :D
You don't really explain how networks work in games, just how networks work. The title is very misleading.
You make me happy. "You've probably heard about IP addresses which are unique addresses of your machine, like 127.0.0.1"©
I find that you are lot of worried in the case of Video games . So what I would know is, who is the most important for you , developers or Users?
Thanks very educational
im trying to make a simple game and right now I am limited to 2.5d. my question is: How does 2.5 dimensions even work? How would one implement that in a 2d environment?
i PunkPancakes I would assume you just make a 3D environment but have buttons only move you across a 2d axis
"IP Protocol" is a tautology, though. :P
I love this channel :)
Great video
Good stuff
not exactly, we in tekken 7 ( pc, ps4 or xbox on) cannot play in different continents.... try to play with a friend who is in europa and you are on oceania its very very lag ....
"IP protocol" So the Internet protocol protocol? I like your videos but they are to basic for me. I was hoping for more technical information how game engines handle networking.
How Mario Kart 8 Networking work ???
0:42 Where in the world "familiar" is pronounced \fəməlyər\? I thought in American English it was pronounced \fəmilyər\.
Depends on the American region. Regional dialects differ wildly.
Great channel Cat. I just found it today.
Its cool because its so rare to have women youtubers, much less women youtubers capable of explaining technical subjects like game development (which as you know ranges from programming, to art, to computer networks). I say bravo and good luck!
so cute drawing
I really like ur video
Good vid
YEY the OSI method!
*devastatingly guod plays*
yes
So thats what that professor meant by the 7 layers....lol 3 years too late
didn't even talk about networking libraries or sockets. no, instead you started talking about some one specific game's mechanics that didn't really have much to do with general networking.
I didn't understand very well maybe because I don't play dark souls if you can make about league of legends that will be nice
thank you
ermm…. ip works at layer 3....! Mac works at layer 2...
And soon to No Mans Sky for stupid not playing with your friends!
IP protocAl? ;p