I learned something immediately, I would have tried to implement udp and would have gone down a rabbit hole optimising and would spend way too much time going down that rabbit hole, this behaviour is why I'm trying to build a game engine because I want to practice making games it's a problem.
Switch better than if: no sequential checking doesnt super matter but it is a small advantage, but the main thing is it shows your intent ot pick only a single branch not sequential checks and applications.
can confirm, i dont understand XOR lol. learning only from unity tutorials was not a smart idea after all . thank you for all these. its a more fun way to get a good overview of stuff i dont even know, that i dont know. really like it when you explain why X not Y cuz that. even tho it seems to have annoyed you lmao greatly appreciate it
Since you are sending the entire board with each frame, packet loss and history don't matter. The most recent packer is the board, which is already off by a bit. Getting them out of order doesn't matter much, missing one doesn't matter at all. You don't need the TCP overhead for this. And then as I was typing it that you mentioned partial renders, which makes the UDP system much harder. Stick with TCP.
15 A :1: Root Thread B : 2 target Threads from 1 C : 2 targetTreads from each 2 B 6 D: 2 target Treads from each 2 C Let the thread switching optimize threading for 15 thread switching with 7 function groups counting the Root is an idea of optimizing the parallel machine thread switching
The sad I part is how many high level tech people don’t know the difference between stateful and stateless connections and the trade offs they offer. But heck I’ve met “senior” level architects who don’t understand that everything is binary and text is just an abstraction on top of binary. It’s hurts my soul.
I Learned about C++ I wrote a java program for an interface but the another programmer put C++ in the call logic before I had a chance to study it Virtual allocation kicked my interface in the ass ...
The correct answer is always TCP unless you've built it and it doesn't work. Disabling nagles, tweaking MSS/window sizes, tweaking MTU (usually lower tbh given ipsec and gre biting, though obv jumbo may be applicable...), tuning your firmware for your NIC (eg: crc offloading) will 99/100 times get you what you need and if you haven't walked through the tuning process go back and look at that before going to to another protocol. The 10s thing is misleading but the unspoken point about TCP freeing you from doing a *lot* of engineering is absolutely huge and I doubt anyone that commented use UDP has probably ever had to deal with this. At this point most games are using TCP, with UDP is almost completely constrained to video and audio streaming. Even QUIC has failed adoption (12+ years and apparently only 8% of the web). The other use case for UDP is (ultra) low bandwidth networks (eg: x25 or 2g), which is very niche.
Don't waste your time with switch, just separate the computation from the control flow like how MISRA does. const bool in the if not whatever conditional you had in there.
A bad programmer ??? good grief: Python is the correct language for many things C is a book about Assembler ( overloading coding for 80% of coding) ok for 40% C++ has its value but is a real PAIN IN THE ASS it is not needed for 80% of coding I coded in the old days: Fortran/Cobol/IBM Assembler/C/Java/mainframe utilities/etc. Before all the new tools that you have today .... We need an interface language between WEB and the rest of coding your job as an advanced coder is to make the interface languages work without making CODE ASSEMBLER AGAIN ... LOVE YOUR VIDEOS
I love seeing a programmer that is well-versed in NETWORKING. The reason new devs are failing is because they master syntax and algorithms but don't know ANYTHING about how the thing they're building even works. They don't know shit about networks or security, yet they're building software, web apps, etc that have to use networking to even perform & function, not to mention has to use networking for people to interact with it. It's insane. I think junior devs should be required to have at least an entry-level networking cert to be hired.
I am relatively new into all this, but thankfully I got to know you need to know networking and system design, and not just concepts code it too. So, i started making some projects on networking like these. Hopefully, I get a job one day 😅 I will try to implement this too maybe in rust or something ig, networking is indeed really cool.
i generally enjoy listening to your streams offscreen while I do something else in my free time (or sometimes while working, if I'm working on something that doesn't require 100% of my focus), since It's nice to "exchange experiences" with other experienced devs, even from other fields, like web dev (oversimplification, I know). but from time to time you say something that makes me either "somewhat disagree" (depending on context, I would either agree or disagree), or sometimes even fully disagree. You said something along the lines of "there is no difference between if else and switch case"... While I think you can say things like "there is no REAL difference between FOR loops and WHILE loops, besides syntax" (since even the ASM instructions generated for them is the same as long as you account for semantics.... I really disagree with the statement that there's no difference between IF ELSE and SWITCH CASE. I might be wrong, but I think you didn't work on big C projects, since not only is a huge IF ELSE chain much harder to read for a reviewer (any other person than the one that wrote the code) compared to a SWITCH CASE state machine... but also the ASM instructions generated by each of them has significant differences (hence the reason why I think that you didn't work on any big C projects or low level code where machine optimizations really matter), which is not meant as disrespect, just merely an observation. Usually, a switch case will generate *slightly* more instructions for the switch condition, but less instructions for the cases themselves... versus a huge IF ELSE, which has *slightly* less instructions for the initial "condition", but more instruction for each individual ELSE IF (which for code with many states... really adds up, especially for embedded development where resource availability is multiple orders of magnitude lower than on nowadays user devices). I'm an embedded dev coming from the automotive world (C and Structured Text Language), with a decade working in a world wide corporation on large commercial vehicles projects, and another decade and a half before that working on small and hobby projects in languages like pascal, basic, dabbling in ASM, and various scripting languages. Not trying to "gloat", just trying to provide some context that I'm not some guy that just started development recently with 1-2 years max of experience that is now going on the interwebs spouting their oppinions, but rather someone that has some experience, and feels like aforementioned statements might be misleading to people just starting out in the field or people that don't have yet enough experience to take statements like this with a grain of salt. My personal take is that experienced devs should provide accurate info to help guide the less experienced, or the people just starting out in the field.
They "love" it because it makes more sense in game-dev. TCP is three packets SYN, SYN-ACK and ACK and if your payload is split into multiple packets that's each packet needing it's own synchronization and acknowledgement, meanwhile with UDP is as many packets as you split your payload into. In games if you loose a single object position packet you don't bother yourself with NACK because the next position packet would just interpolate the missing position or if the difference is too great it will just jump. I'm sure everyone experienced this in the past. So if you state can be interpolated from previous state and the next state you can reduce latency by using UDP instead of TCP. But you don't actually care about latency for a text editor and partial rendering reduces bandwidth.
I work freelance, and I promoted myself to senior last month guys
Congrats
Seems legit
Hip hip
I enjoy these longer form clips
As do I
I believe they are called a Long
Way too long. I'm already spending all my day behind a screen. Don't need another 2 hours...
Clops
@@dleonardo3238then don’t watch? Or set to 1.5 speed
"Highly regarded does not think what you think it means"
~TheThinkagen
TFW ADHD and words flop around
I too have been on WSB, lol.
to freely quote a known network library for games, if you don't know why you exactly want UDP over TCP for a problem, you probably should use TCP.
I would work for pennies if I could get half the experience this guy has.
"I'm not a fan of returns but I also don't like else"
My early return enjoyer ass: ????? Then wtf do you like? Goto?
Me in aerospace: what’s an early return?
The fact that I barely know anything about programming and still enjoy almost every video of him is fascinating to me
I'm trying to get into programming. This guy is the most engaging professional I've ever seen. Every video I watch is another day I try to learn more.
Raw and Dog
He almost equally an entertainer as he is a programmer..
Almost
I just love the positive vibe Prime always brings. Promoting people learning and growing just brightens my mood and helps me do just that.
I learned something immediately, I would have tried to implement udp and would have gone down a rabbit hole optimising and would spend way too much time going down that rabbit hole, this behaviour is why I'm trying to build a game engine because I want to practice making games it's a problem.
Switch better than if: no sequential checking doesnt super matter but it is a small advantage, but the main thing is it shows your intent ot pick only a single branch not sequential checks and applications.
Thanks for this
This was a fun stream; following along the debug process is neat
can confirm, i dont understand XOR lol. learning only from unity tutorials was not a smart idea after all . thank you for all these. its a more fun way to get a good overview of stuff i dont even know, that i dont know. really like it when you explain why X not Y cuz that. even tho it seems to have annoyed you lmao greatly appreciate it
Spectacular lesson on networking. Thank you Prime.
Since you are sending the entire board with each frame, packet loss and history don't matter. The most recent packer is the board, which is already off by a bit. Getting them out of order doesn't matter much, missing one doesn't matter at all. You don't need the TCP overhead for this.
And then as I was typing it that you mentioned partial renders, which makes the UDP system much harder. Stick with TCP.
Hell yeah. Chill stream just programming. Love this shit.
15
A :1: Root Thread
B : 2 target Threads from 1
C : 2 targetTreads from each 2 B 6
D: 2 target Treads from each 2 C
Let the thread switching optimize threading
for 15 thread switching with 7 function groups counting the Root
is an idea of optimizing the parallel machine thread switching
What happened to UDP Huffman coding and Forward Error Correction (FEC), Selective Acknowledgments?
The sad I part is how many high level tech people don’t know the difference between stateful and stateless connections and the trade offs they offer. But heck I’ve met “senior” level architects who don’t understand that everything is binary and text is just an abstraction on top of binary. It’s hurts my soul.
9:05 - Prime is doing th Lethal Company dance
I Learned about C++ I wrote a java program for an interface but the another programmer
put C++ in the call logic before I had a chance to study it Virtual allocation kicked my interface in the ass ...
80% not needed 20% maybe 20% DO THE OPTIMIZATIONS if the value is WORTH IN IN PRODUCTION UTILITY
I'm gonna start asking stupid question, just to have clear explanations
The correct answer is always TCP unless you've built it and it doesn't work. Disabling nagles, tweaking MSS/window sizes, tweaking MTU (usually lower tbh given ipsec and gre biting, though obv jumbo may be applicable...), tuning your firmware for your NIC (eg: crc offloading) will 99/100 times get you what you need and if you haven't walked through the tuning process go back and look at that before going to to another protocol.
The 10s thing is misleading but the unspoken point about TCP freeing you from doing a *lot* of engineering is absolutely huge and I doubt anyone that commented use UDP has probably ever had to deal with this.
At this point most games are using TCP, with UDP is almost completely constrained to video and audio streaming. Even QUIC has failed adoption (12+ years and apparently only 8% of the web).
The other use case for UDP is (ultra) low bandwidth networks (eg: x25 or 2g), which is very niche.
56:09 Well, if most people live in apartments, and your name is Michael, .
Tom would make UDP work. Tom's a genius.
there're apps that combines chats from different apps for streamers, idk what it's but saw other streamers use it.
Never a YT video had a more appropriate title.
18:04 the mic is also slowly compiling rust I hear :P
cl-
The real question is Why not SCTP?
18:40 Hm, I might try to use Home/End moreso than Ctrl , seems better for reinforcement and mastery
@@quanperfectGood morning
This was interesting but debugging the channel was painful. Clearly it's blocking because the reader cannot write to the tcp socket
...
That wasn't the problem. The problem was it was stuck waiting for the buffer channel from reading the TCP connection.
That was the ending
RUST mentioned!
Don't waste your time with switch, just separate the computation from the control flow like how MISRA does. const bool in the if not whatever conditional you had in there.
MISRA master race
Anyone know what colorscheme this is? 😮
The Br`s are kicking your sanity out... hau3hau3hau3
What sketching app is that? Eraser?
Excalidraw. I think someone says it around or before 9:50
good aussie accent mate !
Npc question lmao
So this video is about prime trying to make nvim an entire OS as well? Why not using emacs then?
can somebody tell me what is that thing he use to draw shape and stuff
excalidraw
A bad programmer ??? good grief: Python is the correct language for many things
C is a book about Assembler ( overloading coding for 80% of coding) ok for 40%
C++ has its value but is a real PAIN IN THE ASS it is not needed for 80% of coding
I coded in the old days: Fortran/Cobol/IBM Assembler/C/Java/mainframe utilities/etc.
Before all the new tools that you have today ....
We need an interface language between WEB and the rest of coding
your job as an advanced coder is to make the interface languages work
without making CODE ASSEMBLER AGAIN ...
LOVE YOUR VIDEOS
1hr45mins video ? is it Christmas again??
Prime to make better net code for gaming +1
Is tcp a napi ?
35:52 and so do i
is this vimrdp?
runE ?
We know
I love seeing a programmer that is well-versed in NETWORKING.
The reason new devs are failing is because they master syntax and algorithms but don't know ANYTHING about how the thing they're building even works.
They don't know shit about networks or security, yet they're building software, web apps, etc that have to use networking to even perform & function, not to mention has to use networking for people to interact with it. It's insane.
I think junior devs should be required to have at least an entry-level networking cert to be hired.
Lets check you. What is the scariest thing in networking? The correct answer contains 2 words
@@mythbuster6126 social interaction?
@@mythbuster6126packet loss
Well you are assuming all devs do networking. Some of us make offline applications!
I am relatively new into all this, but thankfully I got to know you need to know networking and system design, and not just concepts code it too.
So, i started making some projects on networking like these. Hopefully, I get a job one day 😅
I will try to implement this too maybe in rust or something ig, networking is indeed really cool.
4:27 Devin would use UDP
pause
Sumn about magic
Yo
lol, nie video. where did my comment go?
i generally enjoy listening to your streams offscreen while I do something else in my free time (or sometimes while working, if I'm working on something that doesn't require 100% of my focus), since It's nice to "exchange experiences" with other experienced devs, even from other fields, like web dev (oversimplification, I know). but from time to time you say something that makes me either "somewhat disagree" (depending on context, I would either agree or disagree), or sometimes even fully disagree.
You said something along the lines of "there is no difference between if else and switch case"... While I think you can say things like "there is no REAL difference between FOR loops and WHILE loops, besides syntax" (since even the ASM instructions generated for them is the same as long as you account for semantics.... I really disagree with the statement that there's no difference between IF ELSE and SWITCH CASE.
I might be wrong, but I think you didn't work on big C projects, since not only is a huge IF ELSE chain much harder to read for a reviewer (any other person than the one that wrote the code) compared to a SWITCH CASE state machine... but also the ASM instructions generated by each of them has significant differences (hence the reason why I think that you didn't work on any big C projects or low level code where machine optimizations really matter), which is not meant as disrespect, just merely an observation. Usually, a switch case will generate *slightly* more instructions for the switch condition, but less instructions for the cases themselves... versus a huge IF ELSE, which has *slightly* less instructions for the initial "condition", but more instruction for each individual ELSE IF (which for code with many states... really adds up, especially for embedded development where resource availability is multiple orders of magnitude lower than on nowadays user devices).
I'm an embedded dev coming from the automotive world (C and Structured Text Language), with a decade working in a world wide corporation on large commercial vehicles projects, and another decade and a half before that working on small and hobby projects in languages like pascal, basic, dabbling in ASM, and various scripting languages. Not trying to "gloat", just trying to provide some context that I'm not some guy that just started development recently with 1-2 years max of experience that is now going on the interwebs spouting their oppinions, but rather someone that has some experience, and feels like aforementioned statements might be misleading to people just starting out in the field or people that don't have yet enough experience to take statements like this with a grain of salt.
My personal take is that experienced devs should provide accurate info to help guide the less experienced, or the people just starting out in the field.
Why not Javascript 😂
Hey guys I had a bad time to understand what is happening here. Could someone summarise please ? Thank you in advance
Man writes code
Code doesn’t work
Man bangs head
Code works
@@mattmurphy7030skill issues
You are
you are either a real programmer or you're a influencer.
i my self would pick TCP sadly in game dev they love udp but personally i would rather use both depending on what's being sent
They "love" it because it makes more sense in game-dev. TCP is three packets SYN, SYN-ACK and ACK and if your payload is split into multiple packets that's each packet needing it's own synchronization and acknowledgement, meanwhile with UDP is as many packets as you split your payload into. In games if you loose a single object position packet you don't bother yourself with NACK because the next position packet would just interpolate the missing position or if the difference is too great it will just jump. I'm sure everyone experienced this in the past. So if you state can be interpolated from previous state and the next state you can reduce latency by using UDP instead of TCP. But you don't actually care about latency for a text editor and partial rendering reduces bandwidth.
"neovim is so productive"
>spends all his time playing games
thats why i use a real professional tool from a professional company. vs community 2015
Weak bait
o/
Fire up a joint and watch TheVimeagen, such greatness 🤌🏽