Creating a DOOM (Wolfenstein) - style 3D Game in Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 พ.ย. 2024

ความคิดเห็น • 964

  • @khakim9448
    @khakim9448 2 ปีที่แล้ว +1033

    I cant imagine the amount of editing that went into this, thanks for making the world a better place brother

    • @remasteredretropcgames3312
      @remasteredretropcgames3312 ปีที่แล้ว +10

      Trolling?

    • @ReinodeEpifania
      @ReinodeEpifania ปีที่แล้ว +2

      Cound't think of a more precise and humane comment, thanks

    • @Mr12funkymonkeys
      @Mr12funkymonkeys ปีที่แล้ว +9

      Just realised how much easier it is to follow along when the coder is making and correcting mistakes as they go. Coding in this video almost seems god like. However without this level of editing I'd imagine this video can easily be 6 X 1hour vids. I appreciated it though

    • @MistereXMachina
      @MistereXMachina ปีที่แล้ว +4

      @@Mr12funkymonkeys I would MUCH prefer this style. It pisses me off to no end when I'm following a tutorial and the creator goes, "OH that whole chunk of code I just wrote actually causes an error, let's delete and retry" because as a beginner I'm following along bit by bit, and if something doesn't go right I spend 20-40 minutes troubleshooting to no avail. It's a pain in the ass.

    • @bobdillon1138
      @bobdillon1138 ปีที่แล้ว +3

      @@MistereXMachina Its actually good to see when a mistake is made and how
      someone might go about fixing it because programming is all about squashing bugs.

  • @AstorSkywalker
    @AstorSkywalker ปีที่แล้ว +79

    As a programmer, mainly databases, but programmer non the less, I always wondered how fps games are made. It's a wonderful tutorial and education. Thanks for sharing your hard work with the world! Greetings from Honduras!

    • @thomashovgaard3134
      @thomashovgaard3134 20 วันที่ผ่านมา

      Nowadays with open world multiplayer scenario, its a wholeother game. This work with a 2d local setting

  • @user-dc9zo7ek5j
    @user-dc9zo7ek5j 2 ปีที่แล้ว +62

    Clean and simple-looking implmentation. When you see this type of code, you know the person knows his stuff.

  • @phoneix24886
    @phoneix24886 ปีที่แล้ว +20

    This is really like a dream come true tutorial. Keep making these awesome tutorials. You are helping thousands of developers who can now understand how 3d games are coded.

  • @AITreeBranches
    @AITreeBranches 2 ปีที่แล้ว +287

    I'm a python dev also and the level of organisation you displayed was wonderful. I would love to manage planning steps like that.

    • @tomekwenecki4826
      @tomekwenecki4826 ปีที่แล้ว

      How long are You a Phy Dev?

    • @AITreeBranches
      @AITreeBranches ปีที่แล้ว

      @@tomekwenecki4826 About 4 years now.

    • @JamSa85
      @JamSa85 ปีที่แล้ว

      Shame it's not doing all the talking.

  • @WhereIsTheSpartan
    @WhereIsTheSpartan ปีที่แล้ว +46

    As a beginner, I just copied the code myself, because I understand the math very well, but I can not program. With the very good structure and very good explanations, and because I repeated many parts of the tutorial over and over again, I learned a lot in the process.
    Thank you for the very much and hard work you put into these tutorials of high quality. For me, they are the first tutorials that I really understood and motivated me to continue.

    • @to.sungyongcho
      @to.sungyongcho ปีที่แล้ว

      lol it means you still don’t understand

    • @WhereIsTheSpartan
      @WhereIsTheSpartan ปีที่แล้ว +15

      ​@@to.sungyongcho Yes, I still don't fully understand the code and some concepts of Python but it doesn't matter. I had fun learning new stuff because for me it was logical and easy to follow. It's the same like learning a new language. It doesn't matter knowing all the rules and translations, it's about the ideas and that you like speaking it.

    • @YuTv1408
      @YuTv1408 10 หลายเดือนก่อน

      Knowing and understanding advaced math helps with any type of programming.

    • @Bl0xxy
      @Bl0xxy 8 หลายเดือนก่อน

      I understand the everything BESIDES the math ;-;
      i haven't done whatever class that is yet, the sin and cos stuff
      is that geometry or trigonometry?

    • @WhereIsTheSpartan
      @WhereIsTheSpartan 8 หลายเดือนก่อน

      @@Bl0xxy Sine, Cosine and Tangens is trigonometry.

  • @NashMuhandes
    @NashMuhandes 2 ปีที่แล้ว +1279

    Someone literally took this game's source and selling it on Steam as Project 0. LOL

    • @MrShane233838
      @MrShane233838 2 ปีที่แล้ว +161

      I Bet that the person who did literally never played doom before or think its abandonware lmao

    • @omari6108
      @omari6108 2 ปีที่แล้ว +91

      Even Project 0 is what the Fatal Frame games are called. That person is just a thief with no regard for anything 😆

    • @dmoore7000
      @dmoore7000 ปีที่แล้ว +57

      Hmmm.. there is a digital publication date for this video could prove ownership and sue the jerk 😎

    • @astrahcat1212
      @astrahcat1212 ปีที่แล้ว +13

      This is why CURATION should exist.

    • @Yassou1985
      @Yassou1985 ปีที่แล้ว +10

      You are kidding lol ?

  • @Andbovi
    @Andbovi ปีที่แล้ว +5

    Thank you very much! I started programming a few months ago, I started in Python. I learned a lot from this video, I spent a whole day on it. I already had the math basics, so I wasn't scared of raycasting, pathfinding algorithms and projection. I even improved the game a little bit: added levels, enemy lifelines, the menu, even a map in the corner that can be switched on and off, with different coloured dots depending on the enemy type. I've also improved my object-oriented approach. I have improved in several areas, so thank you!

  • @edwardkhromov3253
    @edwardkhromov3253 2 ปีที่แล้ว +22

    This is so freaking cool! The project is incredible for picking up and building something yourself. I am certain it will blow up in recommendations one day.

  • @omari6108
    @omari6108 2 ปีที่แล้ว +5

    I love how you compartmentalize your classes and methods. You’ve inspired me.

  • @hernanramirez7044
    @hernanramirez7044 ปีที่แล้ว +5

    Can't believe how organized the code is, you're a beast!

  • @tlniec
    @tlniec 2 ปีที่แล้ว +69

    This is a great demonstration of gradually adding features and testing along the way. I find when scripting, I try to jump ahead to the end state of full functionality sometimes, causing me to encounter errors and get stuck in debugging. This video offers good insights into how to break up a complex set of interacting functions, attacking them individually and gradually integrating things together.

  • @rosly_yt
    @rosly_yt ปีที่แล้ว +14

    So there are some things I'd improve:
    9:13 in so far
    -Compute player movement without using two (slow) trig functions every frame the player moves
    (Update: checked the underlying C source code for pygame, it's using a sqrt() function, not any sort of optimized square root approximation, so it's likely the trig is faster.)
    -Use a clamping method to make the player's whole circle, not just its central point, get stopped by the wall
    but this is easily the highest-quality pygame tutorial I've seen so far, I'm excited to follow it.

    • @MrNeelthehulk
      @MrNeelthehulk ปีที่แล้ว

      is it the same legendary fast inverse square root algorithm of Quake?

    • @rosly_yt
      @rosly_yt ปีที่แล้ว

      @@MrNeelthehulk The very same, yes.

  • @tonnysocrates9741
    @tonnysocrates9741 ปีที่แล้ว +64

    People like you are heaven sent, I can imagine the sleepless nights you spent on this, thank you. Continue creating similar with lenghth 1-2 hours, your content is invaluable

  • @breakdancerQ
    @breakdancerQ ปีที่แล้ว +4

    This was awesome, love how the raycasting part is just 15 minutes. Really dissected the that part and now I finally understand every single thing about it!

  • @TreyWitteried
    @TreyWitteried ปีที่แล้ว +2

    An hour is about max for my attention span when watching a programming video, and most tutorials end up being too slow for me to follow up on once I start. This one hit the sweet spot. I don't know much about pygame or game development in general, but pretty much all of the questions I had about it were answered-at some surface level at least-during the time it took to watch this. Really well done 👏

  • @chifodic6758
    @chifodic6758 2 ปีที่แล้ว +18

    A whole engine in the first 15 minutes, great job man and amazing code structure!

  • @jvsvogler
    @jvsvogler 2 ปีที่แล้ว +273

    Even though this is a scary project to tackle as a beginner like me, by coding along I'm still able to learn a few new things and improve, so thank you for the effort you put into this! Also, I really enjoy how well structured and organized your code is. I'll definitely try to adopt this style on my own projects.
    I haven't watched the whole video yet, but it would be awesome if you covered the "Doom fire algorithm" in python/pygame, it's really interesting!
    Cheers!

    • @sophiacristina
      @sophiacristina 2 ปีที่แล้ว +6

      If you want i have on JS, got from Felipe Deschamp (brazilian youtuber)...

    • @anthonybattaglia6941
      @anthonybattaglia6941 ปีที่แล้ว +1

      learing python now

    • @snaiktavares5356
      @snaiktavares5356 ปีที่แล้ว +1

      @@sophiacristina i want! i think i can translate to python

    • @sophiacristina
      @sophiacristina ปีที่แล้ว +1

      @@snaiktavares5356 TH-cam blocks link now, let me try to find a way.
      The video code:
      fxm8cadCqbs
      Check the description. :)

  • @m1geo
    @m1geo 2 ปีที่แล้ว +29

    I found this fascinating! As a competent programmer, but having never written games, this was awesome! Thanks for taking the time to make it and get the presentation super slick! 😁

  • @mohamedalismacktalk382
    @mohamedalismacktalk382 ปีที่แล้ว +4

    Thank you so much for this. Your video/project was the base I needed to create my own version of the game.
    I managed to make multiple levels in which you have to defeat all enemies and advance to the next. I also added more enemies and the more you progress the more enemies will be on the level. Oh and I gave each level its own music

  • @666Counterforce
    @666Counterforce 2 ปีที่แล้ว +22

    Aww man, this is so cool. First time I see something like that. Ive always wanted to actually see someone program like that. I kinda knew who it theoretically works, but watching it like that, with your explainations, just awesome. Thank you so much. I actually recently played Doom 1 again, so funny.

  • @ulysses_grant
    @ulysses_grant 9 หลายเดือนก่อน +1

    Brother, this is a piece of art. This entire work... is a piece of art. Thank you for your dedication and hard work in creating it. You really made it count!

  • @StivyIvy
    @StivyIvy 2 ปีที่แล้ว +5

    Thank you for this! I've so far only been able to accomplish super simple projects. By having everything laid out so explicitly I am going through the motions of a more complex project and learning a lot as I go and building confidence. Thanks so much!

  • @alvarocubi
    @alvarocubi 2 ปีที่แล้ว +26

    You are continously increasing the quality of your tutorials, this one is in my opinion the best and most interesting one. Congratulations and thank you for your great work!

  • @AinurEru
    @AinurEru 2 ปีที่แล้ว +7

    Great video! I've seen many of these ray-casting treatments, and have done a couple ones myself, this is one of the best and full treatments. That said, basically in almost all of them, one fish-eye lese effect is still left unadressed. There are actually 2 kinds of those in a typical ray-caster, for 2 different reasons - the second one is more slight, and also more subtle to spot where it comes from - which is the choise of using angle deltas to compute ray directions: In a rectilinear projection as the one used here, that choise makes the rays hitting the projection plane distributed along it non-uniformly, where they get more spread-out around the center and more clumped together closer to the right and left edges of the screen (where this second fish-eye lense effect becomes noticeable). The full fix for that is to instead step along the projection plane itself (in this case, a projection-line, as it's 2D ray-casting), at a constant step corresponding to a fixed width of the columns. Then, the ray direction are the vectors from the player's position to those points on the projection-line - but normalized.This ensures the distribution of the rays is uniform across the screen, removing that fish-eye lese effect.

    • @EASnoww
      @EASnoww 2 ปีที่แล้ว

      Thank you, I had a really hard time following what was going on in the video but you explained it perfectly.

  • @thedoctor5036
    @thedoctor5036 10 หลายเดือนก่อน

    BRILLIANT, now I just got the perfect tutorial to start the games dev and understand deeply how engines work. GOOD JOB BRO

  • @samuelnilsson5505
    @samuelnilsson5505 ปีที่แล้ว +4

    Never seen anything like this before. Everything from the explanation of maths to the coding is spot on 😯😊

  • @fidelrivera2887
    @fidelrivera2887 ปีที่แล้ว +17

    Don't be deceived by the short run time... this project is beefy and it comes at you real fast. Thank you for this... the math makes my head hurt but I feel it's getting clearer the more I look at it and practice.

  • @icotwilight
    @icotwilight 2 ปีที่แล้ว +5

    Amazing tutorial, I always look forward to your videos

  • @sebastianorenji9148
    @sebastianorenji9148 ปีที่แล้ว +2

    Es lo mejor que he visto, lo intente y voy en SPRITES....es increible y genial GRACIAS HERMANO POR ESTO !!!!

  • @zarz55
    @zarz55 ปีที่แล้ว +3

    So detailed yet brief, excellent work

  • @plagapong
    @plagapong ปีที่แล้ว +2

    Finally I found someone who help me udnerstanding Ray Casting from scratch, Thanks man.

    • @CoderSpaceChannel
      @CoderSpaceChannel  ปีที่แล้ว +1

      And thank you too!

    • @_Huskydomi
      @_Huskydomi 7 วันที่ผ่านมา

      Me too. I usually only make ascii graphic games. Which good and all but love the opportunities this opens up. Im not good at math tho so the visual was nice help

  • @JayeshSarvaiya
    @JayeshSarvaiya ปีที่แล้ว +5

    First of all Thank you so much for all your hard work and dedication !!! Great job mannnn ! When I initially show the game, I thought its going to be highly difficult to understand, but you really made it look nice and worth trying. Path finder part was just awesome intro to the game. A good learner will not only learn coding part but also about managing modules and files properly, what an experience !!! Thank you again.

  • @xthaone
    @xthaone ปีที่แล้ว +1

    i'm amazed how much algebra and geometry is involved for a simple game.

  • @harleyfillus1241
    @harleyfillus1241 2 ปีที่แล้ว +5

    Wow, this is an impressive tutorial, nice stuff

  • @someoneelse8263
    @someoneelse8263 ปีที่แล้ว +1

    just one of the best tutorials i've ever seen ! Excellent works thank you so much !

  • @costelinha1867
    @costelinha1867 2 ปีที่แล้ว +7

    Damm, this looks impressive. I'm currently watching just for entertainment, but maybe after I finish my current pygame project I'll actually follow this tutorial.

  • @mauricionoriega7537
    @mauricionoriega7537 ปีที่แล้ว +2

    The organization in this code is absolutely beautiful, makes me fucking smile

  • @nathanielpullig932
    @nathanielpullig932 ปีที่แล้ว +4

    I had texture smudging and ended up having to do a little bug hunting. I accidentally had a:
    objectToRender = []
    Instead of:
    objectsToRender = []
    Always remember to check your variables! I've been doing this tutorial when I'm getting distracted from school work. I've been putting my own spin on things, with plans to make it more modular so it functions more as an engine. Very good tutorial!

  • @touzaikokon
    @touzaikokon ปีที่แล้ว

    10 minutes of this video has given me 2 days of study. you've done a great service, thank you.

  • @azaias
    @azaias ปีที่แล้ว +4

    Man I found your videos a while ago, and just now watched this. I needed to learn about many topics covered in this video. Your code structure is very clean also and has been an excellent example, thanks!

  • @friendlyskiespodcast
    @friendlyskiespodcast 3 หลายเดือนก่อน

    thank you! I wanted to combine my python learning with a new game design and this gives some great insight on what you can do with python

  • @saulgoodman6710
    @saulgoodman6710 ปีที่แล้ว

    ngl i never watched long videos but this one made be watch it through the end without even realizing the time, such a slick video, Great work

  • @todoz11
    @todoz11 2 ปีที่แล้ว +31

    your videos are incredibly high quality, not sure how you don't have more subscribers yet but if you keep this up you're guaranteed to get them

  • @JemilMarcosTyC
    @JemilMarcosTyC 2 ปีที่แล้ว

    Damn... clean n swift! after almost 30 years I finally understand the hell that Carmack went trough while creating their masterpiece at id. Thanks bro! very educational!

  • @ed-uh9sh
    @ed-uh9sh ปีที่แล้ว +13

    as someone who recently started learning python, this is absolutely mind blowing

    • @50lek
      @50lek ปีที่แล้ว

      Is it possible tho? Cz im a beginner too lol

    • @50lek
      @50lek ปีที่แล้ว

      Holy shit i just skipped to the raycasting

  • @brnuovncs
    @brnuovncs 11 หลายเดือนก่อน

    I spent about two hours to understand and write the code of the first seven minutes of this video.
    Absolutely incredible work, looking forward to finish this!

  • @tornadot2025
    @tornadot2025 2 ปีที่แล้ว +6

    Amazing tutorial! I fooled around with pygame a few years back, but I could never quite figure it out. I guess that I would be the one creating the sprites while a real programmer would put together the code such as this one. Loved watching you work!

  • @rupayaanchatterjee9800
    @rupayaanchatterjee9800 ปีที่แล้ว

    Just started learning python and thought of creating a simple snake game. This video came in my feed and after watching this i truly understand how much work goes into creating a game. I will save this video to motivate myself time to time to complete the game project i started whenever i face a roadblock

  • @MrEnergy921
    @MrEnergy921 2 ปีที่แล้ว +4

    Nice, I would love to learn from it!

  • @horrorislander
    @horrorislander 2 หลายเดือนก่อน

    This is great, a sort of crash-course in pygame as well as brilliant simplicity of Wolfenstein / Doom. Thank you!

  • @ScaredHelmet
    @ScaredHelmet ปีที่แล้ว +14

    This is a great video! I like how you go in depth on the mathematics and the visual representation with lines and colors really help a lot. Would love to see a tutorial on a Duke Nukem 3D / build engine style game with stairs and vertical movement :)

    • @GamedevWithGameEngine
      @GamedevWithGameEngine ปีที่แล้ว

      yeah but with this video and maybe others you can make it yourself

  • @gepetotube
    @gepetotube ปีที่แล้ว

    GREAT JOB! I started teaching my kid how to program in Python. Your code is a great resource and a motivator for him to see what he can achieve with less than 1000 lines of code.

  • @larsf.4756
    @larsf.4756 2 ปีที่แล้ว +5

    Excellent, I only used pygame for 2D games, so far. This was very educational, and I think the first thing I'll add is the controller support to save my keyboard. 😁

  • @dicember92
    @dicember92 2 ปีที่แล้ว

    holy code! That's fast pace, but it's incredibly smooth and clean. Awesome tutorial!

  • @CoderSpaceChannel
    @CoderSpaceChannel  2 ปีที่แล้ว +34

    And if you get errors when running the source code, first make sure you have Pygame version 2.x.x

    • @gamingyuvi9512
      @gamingyuvi9512 2 ปีที่แล้ว +1

      I get error and my pygame version 2.1.2.why I get error? please reply me?

    • @dnonith3144
      @dnonith3144 2 ปีที่แล้ว +1

      @@gamingyuvi9512 what kind of errors do you get ?

    • @gamingyuvi9512
      @gamingyuvi9512 2 ปีที่แล้ว +1

      Traceback (most recent call last) error

    • @dhruvildhamecha2003
      @dhruvildhamecha2003 2 ปีที่แล้ว

      can u make video regarding this game that how can we make .exe of this game
      and thanks a alot i am ur new subscriber thanks for teaching
      can u just reply in y or n

    • @bigbootylatina-c6w
      @bigbootylatina-c6w 2 ปีที่แล้ว +3

      my game doesnt draw the background or map and i copied everything correctly and im only at 3:42 can you help please?

  • @M7ngunz
    @M7ngunz ปีที่แล้ว +2

    OH MY GOD !! Super Awesome !! Love you a lot for sharing your knowledge. You just inspired me to learn to code and study more math even though I don't quite understand the math part but I really enjoyed watching. 😆😆

  • @skilz8098
    @skilz8098 2 ปีที่แล้ว +10

    Very nice Python tutorial for creating a DOOM style game. The only major issue that I can see here is the mixing of the "Engine" code with "GameLogic/Rules" code. With this type of approach it will make it quite difficult to reuse the "Engine" code within future projects. Coming from a C++ background the "Engine" code should be completely agnostic of any Game Logic code. It should only be responsible for knowing how to draw elements, knowing how to process sound and to trigger user events, calculating basic physics - collisions, processing animations, networking, and resource(assets) management. Anything that is game related such as the assets themselves(textures, sprites, audio files, etc...), game logic, rules, personal settings, etc. should be abstracted out of the engine into its own project. The Game project would rely completely on the Engine project where the Engine project should have no dependencies on the game itself. This would allow for more of a modular and generic programming style to give the developer ease of use of reusable code down the road. In simple terms if you wanted to make a second game with this approach all of the "Engine" code or boilerplate code would already exist as a library. You would only then need to include or import it into a new "Game Project" and add the necessary game logic for the next title. Maybe in the next title you want the player movement to be different, maybe you want a different camera style such as 3rd person, maybe you want to add new abilities such as crouching and or jumping mechanics... Having these layers of abstraction early on helps in the long run. Other than this type of programming philosophy, this video is very well done on quickly explaining all of the required steps into making a DOOM style game. Then again one could argue that "Pygame" is that engine... I'm use to writing the actual DirectX, OpenGL, and or Vulkan code to implement the renders and shader modules.

    • @CoderSpaceChannel
      @CoderSpaceChannel  2 ปีที่แล้ว +3

      thanks, I'll take note 👍

    • @skilz8098
      @skilz8098 2 ปีที่แล้ว +1

      @@CoderSpaceChannel Yeah, your code implementation looks great, your code style is good.
      In the future if you decide to make another game, you wouldn't have to start all over, you can just import your engine. You may have to make minor changes based on the type of game your making though. A FPS compared to a RTS compared to a RPG type game does use different frameworks, but even these for the most common parts can still be abstracted away.
      Yeah, keeping the game code seperated from the engine code helps in the long run. You don't have to go back later and try to figure out what is game code vs what is engine code to rip it out with a high chance of breaking the engine code. It can save a lot of future headaches, head scratching, and hair pulling.

  • @SH-zf7in
    @SH-zf7in ปีที่แล้ว +1

    please keep doing long video formats like this! this is awesome

  • @L1ghtOn3
    @L1ghtOn3 2 ปีที่แล้ว +6

    Impressive. Python is probably about my 4th language after C#/C++/JS, not done anything large apart from a Django ecommerce project, so a pygame would be interesting, just never had to use anything other than Unity or UE to create a large game. Good stuff and interesting to see python used outside of server side web dev. 👌🏽

  • @LanceBryantGrigg
    @LanceBryantGrigg ปีที่แล้ว +1

    This video probably took 500 hours to make. That is; the code; the video; the editing; the script and planning. Like not kidding this wasn't quick and for that you get my thumbs up.

  • @RussianSevereWeatherVideos
    @RussianSevereWeatherVideos 2 ปีที่แล้ว +8

    What has the world come to, we can now write DooM in one hour.

    • @ZqTi0
      @ZqTi0 ปีที่แล้ว +3

      He can*

    • @fediha
      @fediha ปีที่แล้ว +1

      I'm pretty sure figuring all that out and making it work took him a liiiiittle bit longer than one hour. (nevertheless absolutely remarkable performance!!)

  • @kerrykreiter445
    @kerrykreiter445 4 หลายเดือนก่อน

    Great work, thank you so much for this content. I have a new appreciation for what it took to create this genre of games. Incredible job!!

  • @AlexJA-hy7qh
    @AlexJA-hy7qh ปีที่แล้ว +3

    That is a great guide! Maybe you also have an advise about how to make a non-static floor? I mean, if I would like to have different textures, like in the case of walls, how would you do that?

  • @exalandconcept
    @exalandconcept ปีที่แล้ว +1

    I am more than impressed with the quality of your tutorial and your explanations, congratulations! I subscribe directly :)

  • @MarkTheCat
    @MarkTheCat ปีที่แล้ว +3

    I get this error 'line 18, in get_objects_to_render
    wall_column = self.textures[texture].subsurface(
    ValueError: subsurface rectangle outside surface area'
    And I don't know what to do. Tried looking up on the internet, but the explanations are far beyond my comprehension at this time. Did anyone else encounter this problem? How did you solve it?

  • @samuelmcdonagh1590
    @samuelmcdonagh1590 2 ปีที่แล้ว

    i got recommended this. your format is fantastic. i can tell that a lot of effort goes into these videos. kudos.

  • @ivanmironov599
    @ivanmironov599 ปีที่แล้ว +2

    While this tutorial definitely had some great merits and I really learned a lot, there are some areas that I felt needed improving. The speed of the automatic voice narrator was very fast, along with showing what to do, but at least that was remedied by adjusting the playback settings in TH-cam to a slower speed. And, rewinding a lot. Also, towards the end I noticed that some parts of what was shown in the final result of the game did not match up with the coding you showed along the way. It appears that a lot of information was left out: the extra soldier sprite and Hell Demons, the "Victory" screen, background music, larger map layout, and the additional red torches.
    I was confused as to why my final result didn't match up to what was shown in this video until I compared the files on your GitHub and noticed some code blocks were never mentioned in the tutorial. While I do understand that a tutorial can help give a basic understanding of some things, I feel that it would be beneficial to also mention that the final result shown on screen will differ to what was presented code-wise, and to use the knowledge given in the video to try and implement the rest on one's own.

    • @wildwest1832
      @wildwest1832 ปีที่แล้ว +1

      Lol this moves a hundred miles a second. To understand some of the math and stuff in detail you need to spend time on small pieces and understand what it does.

  • @OneAndOnlyMe
    @OneAndOnlyMe 2 ปีที่แล้ว +1

    Thank you! Fantastic tutorial and so well explained. I was never good at trig, but you've explained it well.

  • @RetroNutcase
    @RetroNutcase 2 ปีที่แล้ว +6

    Someone's seriously trying to sell this on Steam.

  • @rexraptorsaur
    @rexraptorsaur ปีที่แล้ว

    Hey there,
    Wanted to give a big thanks for going through likely days of researching, testing, and editing together this project. Used to be reluctant about following along videos because it seemed too much like copying, but I also learned that’s how we learn. I learned a lot about organization by getting used to how everything was structured, learned how to coordinate my mental reasoning more efficiently, and most of all, learned a lot more about bringing python beyond the shackles of 2D. I have 15 pages of notes. I’d take time to first code along with the video during my homeschool week, then during the weekend, I’d dissect all the mathematics and mechanics on paper. Mind you, my previous game was just two-player atari breakout (and god, how horrified I am about my old code, no words). Previously, I only learned code just for the sake of being able to read it, being able to pass tests on documentation, never intended to make anything. But ever since, I’ve been working towards game development as a side.

  • @ripcord4201
    @ripcord4201 2 ปีที่แล้ว +4

    we've got problems, somebody published your doom tutorial on Steam without changing any of the assets, and called it "Project 0".

    • @CoderSpaceChannel
      @CoderSpaceChannel  2 ปีที่แล้ว +3

      thanks for the info, that's sad...

    • @ripcord4201
      @ripcord4201 2 ปีที่แล้ว +1

      @@CoderSpaceChannel Can't you report it to Steam so they can take it down?

  • @benakano
    @benakano ปีที่แล้ว

    This is an amazing walk through, thank you for sinking so much time into this video.

  • @TheBendy______B
    @TheBendy______B 9 หลายเดือนก่อน +3

    4 lines into the main script, got 7 errors and gave up.

    • @JoseLucasd
      @JoseLucasd 9 หลายเดือนก่อน

      Thats the avg experience of coding

    • @Cr1tic9l
      @Cr1tic9l 8 หลายเดือนก่อน

      NEVER BACK DOWN NEVER GIVE UP!

    • @CallofbotsRIP
      @CallofbotsRIP 8 หลายเดือนก่อน

      ​@@Cr1tic9lI want it louder

  • @frankieguerrero3567
    @frankieguerrero3567 8 หลายเดือนก่อน

    Thank you so much for this! Also love the How It's Made Vibes

  • @viktori9p895
    @viktori9p895 6 หลายเดือนก่อน +1

    I love how at its core, the game is just a bunch of High school math working together. I am a ML Engineer and I find graphics to be fascinating and this is one of those gold examples

  • @wildwest1832
    @wildwest1832 ปีที่แล้ว +2

    I always wondered how raycasting worked being a huge doom fan, and python makes it so simple and easy to do vs something like C

  • @tragicworms3418
    @tragicworms3418 ปีที่แล้ว

    This is an amazingly detailed tutorial and explanation. Thank you so much for sharing your knowledge

  •  ปีที่แล้ว +1

    This is insane material. Thank you for sharing.

  • @domenicodifraia7338
    @domenicodifraia7338 2 ปีที่แล้ว

    TH-cam is a great place for such a great piece of explained knowledge! Thanks!

  • @retrorimos5841
    @retrorimos5841 ปีที่แล้ว

    This video is one of the best tutorials I have ever seen. Perfect for a beginner who wants to learn the basics of raycasting. The mathematical explanations were really interesting. For my part it was my first experience in Python. Very easy to set up and run things quick with just VSCode. As I have a lot of experience in javascript and C#, the next step for me would be to explore the whole thing in the unity universe :). I also really like the idea to start from this project and build biggest maps (or even a tiny virtual world) with this pseudo-3d retro style.

  • @UnleashedEntomber
    @UnleashedEntomber 2 ปีที่แล้ว

    That's awesome! So glad to see cool games and tutorials coming with pygame library.

  •  9 หลายเดือนก่อน

    Amazing video tutorial! Inspired by this, I created a shooter game with multiplayer option. We created our own sounds and played with friends and it was so much fun. 😀

  • @sidverma1888
    @sidverma1888 ปีที่แล้ว +1

    Amazing work. Learnt a lot from this. Thank you!!

  • @Dante033AJ
    @Dante033AJ 2 ปีที่แล้ว +1

    the whole raycasting portion just flew over my head

  • @uzdefrederic1055
    @uzdefrederic1055 2 ปีที่แล้ว +1

    Amazing work :-) I appreciate the way your work is so well organized.

  • @ZeptejSeFilipa
    @ZeptejSeFilipa 2 ปีที่แล้ว

    Excelent tutorial. Hard work is celebrated!

  • @Anthony-wg7fn
    @Anthony-wg7fn 11 หลายเดือนก่อน

    what an awesome tutorial. everything was explained perfectly and the it worked quite well. thanks

  • @BaronSpartan
    @BaronSpartan 2 ปีที่แล้ว

    51:25 looks like the player traspasses the candle XD. nice vid!

  • @SonicBahasa
    @SonicBahasa ปีที่แล้ว

    I was so happy when I found this game. I really enjoyed it and it made me say things out loud in Optimus Prime’s voice when I played him.

  • @ΣυνέσιοςΠαρτσάφας
    @ΣυνέσιοςΠαρτσάφας ปีที่แล้ว

    I used to programme when 1 was 16yo with game maker 8 (a very simplified c++ (runtime) and c#(ide) language, where most commands were replaced with icons). This one offered a similar tutorial for almost the same game. My best was when i made and published in their website a super mario game called new super mario revived. It had 55%rating.
    However programming in a real language like puthon is much more exciting. I wish i manage someday to restart proper game programming (java, c++, c#, python and/or pascal are ok to me).
    You made my day and earned a sub in no time. The video was awesome from start to end ❤

    • @ΣυνέσιοςΠαρτσάφας
      @ΣυνέσιοςΠαρτσάφας ปีที่แล้ว

      I corrected the thing about game maker 8. It is based on c++ and c#. This also explains that my games were not laggy (despite very complex and extensive commands) and actually had quite small file size because of memory dump and more efficient code- less code lines, taking into account that the icon styled commands can readily converted into code text as well- all the icon commands in game maker 8 can also be written directly in c++/c# code- (needs less size)

  • @gordonspond
    @gordonspond ปีที่แล้ว +1

    It's fast-paced, but a really, really great tutorial!

  • @omarmoreira86
    @omarmoreira86 2 ปีที่แล้ว

    Wow! It's amazing the power and simplicity of python. Thanks for the tutorial.

  • @code4548
    @code4548 2 ปีที่แล้ว

    One of the best video I'll ever see, great work.

  • @Beardedmane901
    @Beardedmane901 ปีที่แล้ว

    This gonna be a wild journey taking this on and learning and it’s a type of game I grew up on and favor compared to the others 🔥🔥🔥😂 thanks

  • @rexraptorsaur
    @rexraptorsaur ปีที่แล้ว +2

    49:22 Quick tip for people not seeing numbers on their screens: I had to add (i + 2) to the first row of the if statement, change the second row to (i + 3), and change the zeros to 100 to scale it to my screen. It’s not the only place where I had to scale things to my resolution because I have a small laptop. So if you have been retyping things and still don’t see numbers, check your scalings.

  • @chritter1895
    @chritter1895 ปีที่แล้ว

    Thank you for making this. This is a good capstone idea.

  • @xploda1
    @xploda1 2 ปีที่แล้ว

    You deserve million subs for sure! Thank you for sharing this with us for free!

  • @joelmontgomery1834
    @joelmontgomery1834 2 ปีที่แล้ว

    Sick video man, I always look forward to your next video

  • @MR.garfield
    @MR.garfield 4 หลายเดือนก่อน

    i am a web devoloper and illl see your video dont know why becouse i am not game devoloper and ill enjoy in this video alot what a great coder you are😍😍😍