I’m taking my first algorithms class right now and it’s really cool to see a practical example of a binary tree and other algorithms! Thank you! I am confused by Huffman’s algorithm at 12:34 though. Is the 4th “A” supposed to be “01” or was the trailing 1 meant to be on the following “B”?
Prime is doing everything in his power to become a game dev without having to claim that he's doing game development. He will fail, Thor will corrupt him. A game jam is getting ever closer, prepare for ligma.
6:00 If you start throwing away bits from color information, always keep most bits for green because human eye is the most sensitive to lightness levels of green color. Always sacrifice blue color bits first, then red and only finally green.
@@arcaneminded if this is how you treat words then there's no utility in having a word called "always", which is why I think this kind of thinking isn't very useful
@@kneesnap1041 Because we misuse language _all the time_ 😉. "Always" here is being used to describe a general instance of something happening, so you are bound to find special instances where the rule can't apply.
@@test-rj2vl most software companies love stuff like this. "I cloned twitter" will get little to no response from an interviewer as they know you could have just followed a tutorial.
I don't normally make comments but man this video is beyond amazing. The production quality, all the engineering information and how it is put out even someone never programmed his life could easily follow plus Prime being an amazing entertainer as always apart from being a kick-ass-do-it-yourself-hands-on coder/engineer. And joy in his eyes through it all. Man is living his best life.
Totally, even for someone like myself hovering around the "FizzBuzz" / "Leap Year Calculation" level of programming, this was a really interesting video.
Echoing this, he definitely has a talent for taking low level concepts and showing how they can be applied in practical ways, while keeping things super entertaining and informative!
Mustache man… I gotta say you really are the reason I stay inspired to code and continue to pursue the deeper understandings of development. The combination of pure unadulterated knowledge & passion for what you do is so inspiring. I’m already 2 months in using NeoVim becoming blazingly fast, finally able to sit still at my computer for 5+ hours & I now wake up everyday giddy knowing I GIT(😅) to learn more. I’m sure you hear this all the time, but you’ve truly saved my life. Thank you.
Doom was using 13h VGA mode which is a 256 colours palette mode. You could use this pallet directly instead of your own conversion to 1 byte. This way you don't lose any colours. Also if you Huffman encode blocks longer than 1 byte you could target patterns of colours from textures and potentially achieve greater compression.
I think that's the best audio-visual explanation of an XOR operation I've seen. Great project and video. Thanks for sharing! Also, I loved the Yugioh lifepoint sound/animation you did for the counts.
This confused me as well, especially because prime specifically states that the same characters can never have different values, and yet on the screen that's *exactly* what's happening. I had to go back and rewind and figure it out and rewatch to learn.
That XOR frame compression technique is so cool! Really made me to start thinking about more good use cases for XOR. Good content as always, you are one of the biggest inspirations in my programming journey.
DOOM renders into a 320x200 8-color bitmap. This means the colors DOOM actually renders already fit into 8 bits. It would be super easy to compile DOOM and make this framebuffer available to your compression stage.
Yeah, I was like, what's the point or how'd it compress shit? But then if the xor'd frame can construct the 2nd frame because it is mostly similar to it (repetitive pixel colors between frames for example!) and thus it mostly produces zeroes except the changed pixels... whao, it all clicked.
The "I've done it before but I didn't know the name" experience is such a powerful programming vibe. Encounter algo named wave function collapse; discover I had implemented it before by accident. Run-length encoding vs "Just count how many times things show up". Great vid
You gave me a blast from the past here. I used to program muds on the 90s and 2000s and my main bottle neck was bandwidth for hosting my game. I had to compress streams and use a lot of terminal hacks to get my ASCIi maps to work fast. I could even play videos on the terminal in ASCIi all with low bandwidth and gzip compression.
IMO the best video I saw from you mate, well done. I really enjoy watching all your videos, but this one and the ones you made with this journey was really amazing! keep up the good work.
Oh man, I just love this new format Prime! Keep going, you're being a great mentor and a rolemodel because you are always on the path of learning new things, you couldn't even imagine how I feel man :) Keep going, all respects from Turkey
Hi Prime, I wanted to say Iam so incredibly proud f you for accomplishing this with twitch. Making the plunge into content creation I'm sure was crazy and scary, but you deserve all of the accolades validation for all of your hard work. We love you and your content so much! please don't stop!
This is super work all round and the perfect TH-cam content. Fascinating computer science, history, and project planning. Lovely editing. Superbly presented. Everything else today is going to suffer in comparison.
It's the best creative video!!! DOOM was a great journey and a big challenge, duplicate characters, xor, huffman first try, and a lot of golang content!! Congratulations, this was a new step in your creation content!!! LET'S GOOOOOOO BABY!!!
An encode/decode stack is one of those things I just gotta implement sometime. So useful! For a second I didn't understand what was going on with the min-heap but it all came together in the end. Great way to make a fun video educational too, thanks Primeagen.
I finally understand the XOR encoding. your explanations of the compressions you used are really clear. thank you for the help. the actual application really cemented it for me
0:09:07 thank you for re-explaining how XOR has memory; I didn't get it the first few times you mentioned that but this video really helped solidify that concept!
This is the perfect kind of video for this channel! Larger and super interesting projects that you enjoy. You also can create these naturally as a byproduct of building the project anyways, so you don't have to feel forced to create a video for no reason. Great job man!
Bro! This video resonates with me as an engineer so much! I love reinventing the wheel because it's just fun sometimes. Great stuff brother keep it coming!👍🏻
The best explanation ive seen for what actually gets done to make efficient code along with the process. Two things im curious on your take: 1) using edge detection and morphological operations for further efficiency since theres a lot of patterns that can be known of neighboring bits 2) client side prediction using player input to process known data on the client side. When youre walking towards a dark step on the stairs, it coming more into vision and getting brighter can happen client side. Server side, you're only looking for deltas that cant be assumed by the client.
Best video so far of the primeagen, the amount of optimization put on the project no wonder the dude worked successfully for 10 years at netflix as backend engineer this is so motivational
Gotta admit, it was today that I finally fully understood XOR lol Also thanks for this... really helped me come to a breakthrough with reverse engineering some stuff. Basically been trying to figure out the cause of some corrupted frames in TH-cam videos and now I can see why it's happening but now I need to figure out why it's only on certain videos, and only when using certain phones. New phone doesn't get the corrupt frames, but three previous phones I had do get them. One of the new and one of the old are the exact same device model, under different carriers. And the corrupt frames, they only occur on the three old ones when on WiFi. I tried a different wifi router, and it doesn't happen. I had a compromised router! [ISP redacted] might have an announcement to make soon..
You should serve it using MOSH. Mosh is a fast, optimistic, UDP based way of operating an SSH session. It does roaming too because it is magic. It won'ty get blocked and lagged, if it gets behind it skips ahead to just draw the terminal as it should be. Not sure if it has timestamps but it seems to not get blocked on a slow connection.
I am watching you from time to time. I have very little understanding in coding, I aspire to become a gamedev using Godot, but I am disorganized and have bunch of fears and doubts, lazy. You ported Doom in a way I could not comprehend for chat to play on stream. You are nuts, that seems like magic to me. Pretty entertaining stuff. Anyways, love your content, I will try following more tutorials till I face my fears and start my own project.
Turned out great Prime. Only a small percentage of your Twitch followers understood how hard this was. One of the best streaming devs on Twitch/YT no doubt.
YOU were the one that did this?? Holy, I remember hearing about this a while back (I'm not a programmer), but that's awesome man, you made internet history!!
Just amazing, greatly edited and also, great explanations of the topics along the way. Great editing, great explanations, great video. Nice! Keep it rolling! Thats a rare programming topic video explanation I literally watched like magically hypnotized to not even look away for a second. amazing.
The funny thing about what you did is you basically simulated the same thing as a brain. It’s sifts and weighs the options but uses the data from the sensory tools to construct understanding and that leads to guidance. Wild that maybe the way the worlds pressures form our habits and guides us might be able to be understood by just experiments like this. Good work. What i mean is that the brain uses the data to think like how your people can send in actions and stuff and the ai does what it does. Haven’t watched fully yet but your beginning 0:49 got me thinking.
Loved the video, genuinely learnt a lot. Did laugh out loud at all that random techniques to increase compression ratio, finishing with just straight up Huffman encoding to completely blow the rest out the water. ofc effects are accumulative, but just funny
Hey. First video going full time. I hope you liked it. Part of me always feels I could do better :)
But seriously name your first kid after me
@@ThePrimeagenOkay I’ll change Cedric’s name to The
But seriously, fantastic work! This was very entertaining to watch, and great editing too!
ah!! that was what was different! I love it!!
I’m taking my first algorithms class right now and it’s really cool to see a practical example of a binary tree and other algorithms! Thank you! I am confused by Huffman’s algorithm at 12:34 though. Is the 4th “A” supposed to be “01” or was the trailing 1 meant to be on the following “B”?
Flip went crazy with the editing 11/10 video
Not as good as yours though. Yours are spectacular
Except for the 1 that goes to the A instead of the B and took me 5 second to think why A is 01 and B is 0 😂🩵
Hey, it's the flip, things might flip...
@@hussein-alemam Yup, saw that too :D
flip is flipping out, this video was amazing :D
Prime is doing everything in his power to become a game dev without having to claim that he's doing game development.
He will fail, Thor will corrupt him.
A game jam is getting ever closer, prepare for ligma.
I have been so thoroughly ligma'd that I can no longer tell the difference between web dev and game Dev
Mostly due to balls of course, on the face
@@ThePrimeagenascii doom using js confirmed?
whats ligma?
@@xregularxjohnx steve jobs
@@xregularxjohnx ligma balls
6:00 If you start throwing away bits from color information, always keep most bits for green because human eye is the most sensitive to lightness levels of green color. Always sacrifice blue color bits first, then red and only finally green.
Ohhh I always wondered why I've seen RGB565 encoding but never RGB655 or RGB556. Thanks!
The thing about "Always" is that there are always exceptions to the Always. Even this sentence.
@@arcaneminded if this is how you treat words then there's no utility in having a word called "always", which is why I think this kind of thinking isn't very useful
Even better, doom uses a limited set of 8 bit color palettes so you can get perfect color encoding in 1 byte per pixel.
@@kneesnap1041 Because we misuse language _all the time_ 😉. "Always" here is being used to describe a general instance of something happening, so you are bound to find special instances where the rule can't apply.
what a weird dougdoug video
Yh this guy has hair
yeah
he's oddly not BALD
- not bald
- can code
- doesn't have chatters in his basement
this might be the long lost ougdoug
Damn, dougdoug changed
This is what Prime means when he says "go build fun projects" lol.
right, he sure did 'go build' a lot during that time
But how do you write this on your CV without getting laughed at on job interview.....
@@test-rj2vl most software companies love stuff like this. "I cloned twitter" will get little to no response from an interviewer as they know you could have just followed a tutorial.
@@test-rj2vl who laughs at this, srsly are you crazy, try building it
@@test-rj2vl yes, they will laugh at you for saving them $$$gigabytes/minute
F for the grass that wasn't touched during this project 🫡
The best engineers never see a blade. Big beard, no tan, sporks only.
Only quiche eaters touch grass
I don't normally make comments but man this video is beyond amazing. The production quality, all the engineering information and how it is put out even someone never programmed his life could easily follow plus Prime being an amazing entertainer as always apart from being a kick-ass-do-it-yourself-hands-on coder/engineer. And joy in his eyes through it all. Man is living his best life.
I fee the same!
Totally, even for someone like myself hovering around the "FizzBuzz" / "Leap Year Calculation" level of programming, this was a really interesting video.
It's my ambition to be as cracked as Prime one day.
Programming is really easy to follow, what is hard is getting creative with algorithm. Crafting solutions it's hard af.
Echoing this, he definitely has a talent for taking low level concepts and showing how they can be applied in practical ways, while keeping things super entertaining and informative!
Netflix lost an employee so we could gain a legend - truly top tier content sir.
Mustache man… I gotta say you really are the reason I stay inspired to code and continue to pursue the deeper understandings of development.
The combination of pure unadulterated knowledge & passion for what you do is so inspiring. I’m already 2 months in using NeoVim becoming blazingly fast, finally able to sit still at my computer for 5+ hours & I now wake up everyday giddy knowing I GIT(😅) to learn more.
I’m sure you hear this all the time, but you’ve truly saved my life. Thank you.
Quitting your job was definitely the right move. This video would not have gotten made otherwise
The work put into this video is astounding. So happy to see Primeagen closer to where he wanted to be so long ago.
4:52 yeah i see that `uuwwUU`
😂
Doom was using 13h VGA mode which is a 256 colours palette mode. You could use this pallet directly instead of your own conversion to 1 byte. This way you don't lose any colours.
Also if you Huffman encode blocks longer than 1 byte you could target patterns of colours from textures and potentially achieve greater compression.
Or use LZ4 as compression
I think that's the best audio-visual explanation of an XOR operation I've seen.
Great project and video. Thanks for sharing!
Also, I loved the Yugioh lifepoint sound/animation you did for the counts.
Prime: GigaChad SWE
Flip: GigaChad Editor
Team: GigaChad
Chat: Degenerates
What an incredibly informative and entertaining video! This is exactly what I was hoping for when you became a full time streamer :D
I think the next will be better
12:12 The first bit for B went to previous A
It also confused me and i did a rewind. I believe it’s for 8 bits per line to look nice.
Came here to say this as well. Since your message is already here, I'll like instead.
I think the 1 on the end of the first line is supposed to be before it, it's even animated like it should be there.
This confused me as well, especially because prime specifically states that the same characters can never have different values, and yet on the screen that's *exactly* what's happening. I had to go back and rewind and figure it out and rewatch to learn.
Came to point out the same.. cool to see Huffman tree encoding in use
Amazing editing, amazing pacing and amazing explanation. Another pristine jewel from the development side of youtube.
That XOR frame compression technique is so cool! Really made me to start thinking about more good use cases for XOR. Good content as always, you are one of the biggest inspirations in my programming journey.
Hope the $EDITOR got payed handsomely cause that shit looks gud
This is rad. I love the walkthrough of it all. 1000% need more of this.
If this is the quality of stuff we're going to get moving forward, this channel is gonna get huge.
DOOM renders into a 320x200 8-color bitmap. This means the colors DOOM actually renders already fit into 8 bits. It would be super easy to compile DOOM and make this framebuffer available to your compression stage.
The point of doing fucking XOR operations is mind-blowing for compression
Amazing
Yeah, I was like, what's the point or how'd it compress shit? But then if the xor'd frame can construct the 2nd frame because it is mostly similar to it (repetitive pixel colors between frames for example!) and thus it mostly produces zeroes except the changed pixels... whao, it all clicked.
the quality of this video is unlike anything you've made before! Amazing!
This is so awesome. I'm really glad you can spend more time on projects like this!
The "I've done it before but I didn't know the name" experience is such a powerful programming vibe. Encounter algo named wave function collapse; discover I had implemented it before by accident. Run-length encoding vs "Just count how many times things show up". Great vid
this is peak programming content, Flip did something amazing in this ones
This was an amazing video really liked the graph showing the data saved when using different compression methods!
You gave me a blast from the past here. I used to program muds on the 90s and 2000s and my main bottle neck was bandwidth for hosting my game. I had to compress streams and use a lot of terminal hacks to get my ASCIi maps to work fast. I could even play videos on the terminal in ASCIi all with low bandwidth and gzip compression.
This style of video is awesome! Thanks for this
IMO the best video I saw from you mate, well done. I really enjoy watching all your videos, but this one and the ones you made with this journey was really amazing! keep up the good work.
This is amazing, thanks for going full time to produce this sort of content :)
In-depth, yet quick and snappy
Oh man, I just love this new format Prime! Keep going, you're being a great mentor and a rolemodel because you are always on the path of learning new things, you couldn't even imagine how I feel man :) Keep going, all respects from Turkey
4:55 "Does anything stand out to you"
uuwwUU - oh god mistakes were made
Hi Prime, I wanted to say Iam so incredibly proud f you for accomplishing this with twitch. Making the plunge into content creation I'm sure was crazy and scary, but you deserve all of the accolades validation for all of your hard work. We love you and your content so much! please don't stop!
This is super work all round and the perfect TH-cam content. Fascinating computer science, history, and project planning. Lovely editing. Superbly presented. Everything else today is going to suffer in comparison.
It's the best creative video!!! DOOM was a great journey and a big challenge, duplicate characters, xor, huffman first try, and a lot of golang content!!
Congratulations, this was a new step in your creation content!!!
LET'S GOOOOOOO BABY!!!
An encode/decode stack is one of those things I just gotta implement sometime. So useful! For a second I didn't understand what was going on with the min-heap but it all came together in the end. Great way to make a fun video educational too, thanks Primeagen.
I finally understand the XOR encoding. your explanations of the compressions you used are really clear. thank you for the help. the actual application really cemented it for me
0:09:07 thank you for re-explaining how XOR has memory; I didn't get it the first few times you mentioned that but this video really helped solidify that concept!
This is the perfect kind of video for this channel! Larger and super interesting projects that you enjoy. You also can create these naturally as a byproduct of building the project anyways, so you don't have to feel forced to create a video for no reason. Great job man!
That was brilliant! Thanks for sharing your madness!!! :)
The compression part is pretty interesting
Insane how digestible you made this for someone who has 0 coding experience. (I have years and still loved this). Great job!
Thank you for the summary. Watching the stream only gives me a glimpse of the extensive work you do.
This was a fantastic vid man. What a fun project. I remember writing Huffman and RLE in college and this was really nostalgic.
I have to say this video was very high quality, educational and entertaining too.
It looks like you had a lot of fun working on this.
great editing and explanation, makes me excited to program again
This was such a great video! Props to Flip on the editing.
the quality of the video is insane the narrative, the edition, the composition. So this is how a full time video feels like, awesome job 👍
Bro! This video resonates with me as an engineer so much! I love reinventing the wheel because it's just fun sometimes. Great stuff brother keep it coming!👍🏻
Vim tier editor. Happy to be part of Prime becoming a full time content creator!
The best explanation ive seen for what actually gets done to make efficient code along with the process.
Two things im curious on your take:
1) using edge detection and morphological operations for further efficiency since theres a lot of patterns that can be known of neighboring bits
2) client side prediction using player input to process known data on the client side. When youre walking towards a dark step on the stairs, it coming more into vision and getting brighter can happen client side. Server side, you're only looking for deltas that cant be assumed by the client.
The guideline, the editing, the explanations m, everything was absolutely great.
Loved that video, please make more of that kind of content !
The production value of this video is nuts! Nice work, Primeagen! :)
Best video so far of the primeagen, the amount of optimization put on the project no wonder the dude worked successfully for 10 years at netflix as backend engineer this is so motivational
Gotta admit, it was today that I finally fully understood XOR lol
Also thanks for this... really helped me come to a breakthrough with reverse engineering some stuff. Basically been trying to figure out the cause of some corrupted frames in TH-cam videos and now I can see why it's happening but now I need to figure out why it's only on certain videos, and only when using certain phones. New phone doesn't get the corrupt frames, but three previous phones I had do get them. One of the new and one of the old are the exact same device model, under different carriers. And the corrupt frames, they only occur on the three old ones when on WiFi. I tried a different wifi router, and it doesn't happen.
I had a compromised router! [ISP redacted] might have an announcement to make soon..
this is the kind of programming content I like: not learning about new react ecosystem shit, learning REAL, USEFUL STUFF that makes my brain work
Learnt more in 15 mins than in any other coding video ever.
I love this format!
You should serve it using MOSH. Mosh is a fast, optimistic, UDP based way of operating an SSH session. It does roaming too because it is magic. It won'ty get blocked and lagged, if it gets behind it skips ahead to just draw the terminal as it should be. Not sure if it has timestamps but it seems to not get blocked on a slow connection.
I am watching you from time to time. I have very little understanding in coding, I aspire to become a gamedev using Godot, but I am disorganized and have bunch of fears and doubts, lazy.
You ported Doom in a way I could not comprehend for chat to play on stream. You are nuts, that seems like magic to me. Pretty entertaining stuff.
Anyways, love your content, I will try following more tutorials till I face my fears and start my own project.
One of the best tech TH-cam videos I’ve watched in a long time.
You actually Explained huffman encoding pretty well. Good work.
The graphics and animations in this video were really a step up. Nice work!
editing went crazy, absolutely love it
Turned out great Prime.
Only a small percentage of your Twitch followers understood how hard this was.
One of the best streaming devs on Twitch/YT no doubt.
YOU were the one that did this?? Holy, I remember hearing about this a while back (I'm not a programmer), but that's awesome man, you made internet history!!
Very well edited video 👍 well done Flip.
i love your other formats but this is the best video on your channel so far. learned a lot and it was fun, please more like this
This is why I became the engineer! Got me goosebumps just by watching the video and how every iteration lowers the line on the graph.
So much knowledge compressed into a single video and it was very captivating and entertaining, I love it!
Fantastic video, my dude. Can't wait to see what you are going to get up to next!
Just amazing, greatly edited and also, great explanations of the topics along the way. Great editing, great explanations, great video. Nice! Keep it rolling!
Thats a rare programming topic video explanation I literally watched like magically hypnotized to not even look away for a second. amazing.
Phenomenal video. Love the react content too but the depth you went to isn’t seen to often on TH-cam. Loved it!
Flip went in on this! Great video 👏
The funny thing about what you did is you basically simulated the same thing as a brain. It’s sifts and weighs the options but uses the data from the sensory tools to construct understanding and that leads to guidance. Wild that maybe the way the worlds pressures form our habits and guides us might be able to be understood by just experiments like this. Good work. What i mean is that the brain uses the data to think like how your people can send in actions and stuff and the ai does what it does. Haven’t watched fully yet but your beginning 0:49 got me thinking.
What great quality in this video. I enjoy your reaction style videos, but these structured one are my favorite. Hope to see more soon!
Well, there you have it, pursuing full time content creation paid off. Excited to see what you'll do next. Amazing work!
This is absolutely freaking incredible.
this is why we listen to Primagen and not Theo
This is applied computer science
@@TheStickofWar and it doesn’t make it any less incredible
Incredible mr.Prime !! Such amazing things and this is absolutely inspired. Keep up the good work. Thanks!
This was an awesome breakdown of what you did and great editing. I didn’t catch every stream so this was nice
Seeing a wonderfully edited video like this from you was such a treat!
Loved the video, genuinely learnt a lot. Did laugh out loud at all that random techniques to increase compression ratio, finishing with just straight up Huffman encoding to completely blow the rest out the water. ofc effects are accumulative, but just funny
Love this style of video! Great job Prime!
Damn, editing is so goooood. Give editor man a raise!
Sick editing. Great content. Gamedev Prime
12:14 There's a bit of an editing error here. The '1' for 'B' is placed at the end of the previous 'A'.
Congrats Prime!!! This is awesome and I can't wait for more stuff like this.
Loved this video, I would like to see more breakdown videos like this one. Awesome.
This was good, great style of content for you. Nice job on the compression, nice explanation for the xor trick.
This was absolutely great. Love to see more videos like these!
I think when you were in Netflix you didn't think about this stuff, now you are free to make cool stuff!
Absolutely loved this, and I learned something! 👏🏻Keep rockin' man.
I love how this guy's brain work
The video is amazing! The editing is next level! Keep up the good work Prime! ❤
What a shift in production! We love you!
Amazing video, the work you put in really is inspiring.
Keep up the good work !
3:17 I did a quick Google search. It appears that ANSI is 8 bits and that ASCII is the one with 7 bits.
9:40 is very clever. Best part imho