Let's Program Doom - Part 1

412,707
0
Published 2022-07-13
I might be the most excited about this video. I really wanted to learn how the original Doom game engine works. l spent a long time learning the basic concepts but created the code myself from scratch and how I wanted to design it. You can follow along or convert this code to any other programming language since I kept it simple in C that draws a pixel at x and y coordinates.

Let me know if you enjoy this series! Thank you for all your great ideas and I hope to see what you make from this tutorial series. Send me a link so I can share it in part 2!

How to install OpenGL:    • Install Dev C++ and OpenGL | It Works  
Download my starter code here: github.com/3DSage/OpenGL-Starter_v1

Starter code: 02:28
Drawing dots: 05:52
Drawing a line: 10:38
Drawing a wall: 11:51
Sectors: 15:40
Surfaces: 20:31

Raycaster Part 1:    • Make Your Own Raycaster Part 1  
Raycaster Part 2:    • Make Your Own Raycaster Part 2  
Raycaster Part 3:    • Make Your Own Raycaster Part 3  

All Comments (21)
  • @colonelbarker
    I can't tell you how much I've enjoyed this tutorial. It was clear and to the point, but thorough and at no point did you skip/handwave anything important or get too bogged down on details on the basics. Really well done. The demo videos showing the concepts were really clear
  • @sircalvin
    one thing i love about your videos is how you keep them language agnostic. you specifically mentioned it this time, but a while ago i followed your raycaster series in js and ended up making a multiplayer arena shooter that could run on my school computers and played it in class with my friends
  • @joncorso6103
    A cat is teaching me programming, we truly live in amazing times.
  • @fukkenPavlo
    I got clickbaited, thought cat would explain how to program doom
  • @mr.pavone9719
    1:30 Sectors were what gave me the most trouble when learning to make Doom WADs. Turns out you're not creating walls when you define a sector, you're actually defining the empty space. So making a room in Doom isn't so much about building the wall but rather you're carving out a space from a chunk of...solid stuff.
  • oh my god, thank you so so much. For the longest time I was trying to find someone programming a doom-style rendering engine so that I could better understand how it works, thank you for making this!
  • Such a great video, the math, editing, attention to detail. Part 2 will be a must-watch!
  • @DocWorm
    A month ago I started my own retro 2d first person raytracing game engine, using your two year old raytracing tutorial as a springboard, but figuring everything out on my own as best I can. I'm very excited to see you're back with more! I don't want to spoil the exploratory process for myself, so it'll probably be many months before I watch this video... but I can already tell from skimming that it's really good!
  • @MBBGun14
    Im playing it on half speed and frequently pausing. Simple and complicated at the same time, surely truly fascinating. Very cool video!
  • @jimlkosmo5730
    This is the most interesting tutorial i've seen on youtube for the last 10 years. Your explanation is clear and well organized. The only thing i would suggest is, while you are explaining the geometrical logic behind the pixel rendering functions on the program, it would be nicer if you could in parallel show on the screen a small graphic with the vectors so we can follow your thought on real time. This is great man, thank you for your videos!
  • I'm a lowly JavaScript programmer and yet I still love watching these videos. Makes you wonder what kind of genius a guy must be to come up with this. It's like a whole new level of existence.
  • Some of the best programming tutorials I've seen, and its covers something I straight up haven't really seen before - cant wait for more! (especially the potential quake series)
  • These videos are amazing. The process is intimidating, but you make it seem achievable and fun. I'm excited to see more.
  • @elimgarak3597
    While this is not actually how Doom works, this video is full of valuable insight and techniques, and very well explained. Thank you very much.
  • @Roanokekidstech
    This video was a lot of fun, I really learned a lot. I can’t wait to try it out myself.
  • @tristanmisja
    Heck yeah, new series! Your videos are always super good and I'm excited when they come out!
  • You can tell there is some inspiration here from that famous video by Bitsqwit where he makes a similar project, but slowed down to a digerible rate and with insanely detailed explanation acompained by good narration and clean code. This is definitely extremely high quality content and I am very excited to see more of it
  • @BenColemanUK
    Please continue this series, really great to see this content and the effort you've put in. So little information out there on building a Doom like renderer from scratch like this. Lots for ray casters, but not sector and wall type engines like this
  • Very well made video! I have ported myself doom to several embedded platforms quite a while ago and this video reminded me those good old times! ❤️
  • @Analogity
    This is incredible. Watched some of your other videos too. Love it all. Glad I found your channel!