Recreating DOOM in Python. Ep1 - WAD DATA

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024
  • Getting WAD file data and rendering DOOM maps in 2D mode.
    Metallica - E1M1 (At Doom's Gate) @StateOfMercury
    • Metallica - E1M1 (At D...
    DOOM1.WAD
    www.doomworld.c...
    SLADE 3
    slade.mancubus...
    Code:
    drive.google.c...
    C++ DIY Doom:
    github.com/amr...
    #coderspace #doom #python

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

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

    VERTICES or VERTEXES? It looks like both options are correct.
    dictionary.cambridge.org/dictionary/english/vertexes
    www.merriam-webster.com/dictionary/vertexes

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

      how can i run this in android phone?
      it seems that numba is not compatible with python 3.11

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

      @@footballCartoon91 Numba will only be used for texturing, but for version 3.11 you can use Cython

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

      I really like the ideas you have on your channel and i think you wil be a youtube success i'm a developer in training and i've been using youtube videos as my course and i just wanted to thank you for the creativity on this youtube channel i hopw my channel could be as successful as yours

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

      verticies.

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

      Oxford Dictionary: plural: vertices, vertexes (equal in application)
      Wiktionary: plural: vertices or vertexes
      So choose what you like:)
      @nitrgnsis1144 you are "stultus" ... The Latin vocative plural form is "verticēs"

  • @dewaard3301
    @dewaard3301 ปีที่แล้ว +28

    The amount of things learned from and the value on your resume of something like this cannot be understated.
    For most companies, having proven skills like this, is basically an instant hire.

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

      Well, not all companies know how to utilize such good talent for their own benefit. That's why the best developers jump from one company to another for career growth and better salary.

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

    I have now watched a few of your videos. I must say, very good work...
    On the shoulders of giants, we stand.

  • @nerdobject5351
    @nerdobject5351 ปีที่แล้ว +33

    Very cool. The complexity on this very high even for me and I'm fortunate enough to work as a Software Developer. I work in business software so most of what I do is Front End/Back End, Rest APIs, Relational Database stuff. I'm looking for something different and challenging even thought I don't know Python. I found your channel just poking around and I am very excited to cull through the rest of your content and try and apply it!

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

    Great job! You always surpirse me how you solve perfomance issues with python! Its nice to see engine development with languages other than C++. Honestly, your channel deserves much more views! You have lot of potential for teaching.

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

    Awesome project, thanks teach all this great things, specially about DooM

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

    This is very complicated for me but wow just amazing waiting for the ep2

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

    I just love this.
    You can do so many things with Python...

  • @Farmpy
    @Farmpy ปีที่แล้ว +24

    This video is seriously making me consider updating python to the new version
    also I would love to see a Q&A video soon, do you have anything planned or maybe voice reveal ?

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

      sounds like a nice idea!

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

      Try updating the python interpreter with pyenv. I used to have multiple python version in my machine and it was a mess when it comes to chosing the interpreter when executing script

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

    Very nicely explained !! Thank you for uploading!

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

    I have to watch this video at least 10 times to undertand the 50% of this content! good news for you bro jajaja! its a great job! go on!

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

    THIS IS AMAZING MAN.

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

    Man I had been thinking about this for a while. So glad someone is making this happen!

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

    Amaaaazing vídeo brother!! I'll start coding it tomorrow in the evening!

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

    @9:28 I hate it when programmers sort a list just to get the minimal value. Non-programmers do it more efficiently: just walk through the list while keeping track of the lowest value. O(n log n) vs O(n)

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

      Or just use the builtin min() and max() functions.
      If the datasets need to be sorted in the future anyway, then sure, sort away. And, sure, walking through the list once to collect both min and max takes it from O(2n) to O(n), but your computer science professor will tell you to ignore constants in big-O calculations. At least in this case, I think that the obviousness of using min() and max() will trump both of the other methods.

  • @Wojtek_1777
    @Wojtek_1777 7 หลายเดือนก่อน +2

    4:19 im not getting the output and in my main file my self.wad_data is giving me a error

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

    Yo broooo.......
    Nice i loved it. Will start creating it in few days.
    Just tell me how many episodes will be there in this series?

  • @cosmicrdt
    @cosmicrdt ปีที่แล้ว +118

    Really good content. Unfortunately it is spoiled by the text to speech voiceover.

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

      You can mute it.

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

      Its not that bad. Its better than someone Reading his script for the first time leading to having weird intonations and doing random pauses throughout the video which is slowly driving you crazy.

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

      ​@@dntbther9298there are much better text to speech tools though that sound shockingly real. This one is bad but not intolerable like some other videos

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

      I didn’t even notice it was tts regardless it hardly spoils the video at least for me.

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

      I didn't even noticed that!... :/

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

    Wow awesome man, very good explanation and example thanks for your time

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

    this is awesome man! cant wait for part 2 !

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

    Really good quality video and good stuff. Thank you very much!

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

    I couldn't finish the video after 1min of the damn ai robotic voice it hurts my ears

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

    Now imagine doing this. In C. In the 90´s.

    • @Henry-sv3wv
      @Henry-sv3wv ปีที่แล้ว +2

      i am just unhappy that you can't easy (with void pointer "low level magic") serialize to and from binary file because: c structs can have padding and alignment to memory layout, also there is endianess etc. ... it could be so easy ... but it is not **Crying Out Loud**

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

      Without chat.

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

    I can't personally tell Mister Quaker himself, but I wanted you to know that before this video played, I was shown a video advertisement highlighting an oatmeal product produced by Mister Quaker, and I wish to convey my opinion that said aforementioned oats looked mighty scrumptious in this humble, maybe even naive, piccolo player's honest opinion. I may strum the strings of a mere instrument, but it strums the strings of the human soul. Transporting us. Making us whole, not unlike the oats themselves. He is in our hearts, now and forever. Rock on, soul brother. Rock on.

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

    Finally! Amazing.

  • @SerbianLawnFlamingo
    @SerbianLawnFlamingo ปีที่แล้ว +11

    this is just incredible, and you make it look so easy... how long have you been programming?

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

      about 4 years

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

      I've been programming for 15 years and I can write a Hello world program. Definitely not cut out for programming.

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

    Why is the class "Lindedef"? Is that just a misspelling that you stuck with?

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

    That's such a good version of doom's e1m1 soundtrack.. it sound as if metallica played it. What's that version called?

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

    amazing video man, thanks

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

    Good Job 🔥🔥

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

    Thank you sooo much! :D

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

    Why not use a struct to read the wad file?

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

    I see recreating Doom, I sub.

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

    Where did you get this version the m1e1 background music?

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

    Could you make a video on your video making process, what tools you use and how you use them? Love the videos as well.

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

    This is awesome man! I am learning python and c++, but i still couldn't apply my knowledge to anything meaningful. I want to be able to make a game from scratch like you did in 52 minutes video. What do you suggest to a self-learner (Future)Software Engineer?

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

    tuck at 04:14 where if I run wad_reader nothing prints so I think there's a problem getting data from the WAD file. My files and code look identical to yours

  • @Adamthegeek70
    @Adamthegeek70 5 วันที่ผ่านมา

    Can this be used to read Quake data or something built in Trenchbroom?

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

    Mans didn't want to compile numbas from source

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

    Your update() calls flip(), which put your drawn data to display. And your update() is called before draw(), so your update presents graphics from the previous frame. This is semantically wrong.

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

      That's right, I'm one frame behind. I will put the flip() in the draw method 👍

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

    4:17 Hello, there's a problem at the moment of running the program:
    Error:Cannot run program "C:\Users\DELL I7\PycharmProjects\DoomEngine\.venv\Scripts\python.exe" (in directory "C:\Users\DELL I7\PycharmProjects\DoomEngine"): CreateProcess error=2, El sistema no puede encontrar el archivo especificado
    How can I solve it?
    Edit: Problem solved, was related with the Pycharm self instead the script.

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

    Amazing video!

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

    You miss something important. Why don't You don't start from scratch? It would be better for viewers to understand if you just start everything from the very beginning like Creating Folders and putting image on the right directory and showing the images that you use and how you get them. Because I mess up configurations and get stuck at the middle.

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

    really good content

  • @doom-child
    @doom-child ปีที่แล้ว +3

    This is great, but did he say "MS-DOSE"? I could swear he did.

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

      It's text to speech

    • @doom-child
      @doom-child ปีที่แล้ว

      @@francisstoll5849 Whoops! I don't know how I didn't notice. I guess it's getting better and better.

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

    Love your content! Keep it up.

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

    The struct library is capable of reading entire structs in 1 function call. I'm surprised you didn't utilize this feature.

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

    Starting simple, hope does not get more complex than that :) Wondering how your implementation will differ from the original one, I know whey did cut corners in order for everything to work, but you don't have to. Will you stick to the original logic (and bugs) or your will try to improvise where possible?

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

      I'm not reinventing DOOM and it's basically an adaptation of the source code with some changes and simplifications, so let's say now these episodes are aimed at creating a DOOM level viewer. But I guess we can go further.

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

    I didn't understand a thing but really nice video 👌🏻

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

    Great video. Thanks

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

    Наткнулся случайно на видос, уже хотел бежать писать, что наглый плагиат у Standalone, потом до меня дошло. Друг, спасибо за твой вклад, ещё 2 года назад писал курсовую, создавая 3д игру на питоне по твоим гайдам, тогда все сидели открыв рот)) Ты заслуживаешь намного больше, чем те жалкие просмотра на родном канале, красава, что перешёл на англоязычный)

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

    linedefs from vertexes, are they drawn clock-wise ?

    • @kopuz.co.uk.
      @kopuz.co.uk. 7 หลายเดือนก่อน

      if you're trying to create polygons out of sectors using opengl i believe the order is counter clockewise

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

    Ahhh yeah!!

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

    Graduating here from the raycasting game. Wishing all yall luck!

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

    Next episode when??? Epic video!!!

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

    Awesome

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

    I see it's really interesting....

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

    No offense intended but you sort of glossed over the purpose of the remap_x / y functions, are you able to explain the algorithm you use here?

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

      this is a common formula for remapping numbers from one range to another

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

    But would it run on a 386 with 4mb of ram?

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

    you are awsome!

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

    Very impressive

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

    Bro is making his own source port

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

    can you please put a disclaimer somewhere that it's an ai voice

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

    The way code writes itself and displays is not very pleasant.
    And maybe a primer on how Doom works could help general comprehension.
    Apart from that, it's a nice video. Thanks for sharing.

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

    Omg how long did that take man

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

    The speed of these videos is difficult to follow, the byte information is actually okay I understand these older games had to use some genius methods to consolidate their data.

  • @АлексейШтейников-ц4ц
    @АлексейШтейников-ц4ц ปีที่แล้ว

    Hooray!

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

    Godlike video! You are so underrated!

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

    9:25 Sorting an array just to get the min and max values... ouch ouch ouch 😄
    (Yeah it works but it just hurts a programmer's eye)

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

    I have a long way to go in python. This flew over me.😂😂😂

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

    NA students: But what is a circle?
    EU students: Is this GDPR safe?
    AZ students: Yeah bro I know, Python is slow for this tho

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

    I did see/know it was E1M1 just from the map with the vertices only (no linedefs). :P

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

    The hired script reader/speech to text is super distracting. Just put subtitles in if you can't narrate.

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

    What is that IDE?
    Edit : Saw in the comments : *PyCharm*

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

    Can Cython boost the perf ?

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

    This was very complex to me and I work in creating neural net driven music tools. I wish I understood all the lower level stuff like you do! Never thought of using Python in this way though. Looking forward to following these tutorials and maybe getting an AI to write some new music based on the original tracks!

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

    10:27 "Lindedef"

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

    EXE is not pronounced as ex! It's ex-ee as it's short for executable. Notice how it's the starting 3 letters of the word?

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

      It's text-to-speech reading a script.

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

    ¡Gracias!

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

    is this voice over done by a bot? speech inflections and cadence are all over the place wrong/weird

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

    Is this a robot voice?

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

    Bro why are you all complaining over the text to speech voice, nothing wrong with it bro

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

    Is this narrated by a speech synthesizer, or do you just have an extremely consistent pronunciation and enunciation?

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

    I am devil, doom, incarnated, so dont be me, let God be in me, not me

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

    basically any user/person input in this video feels artificial for some reason, why is this?

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

      @User you no have to say abut the scripting part they show it on tape

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

    Robot narration?

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

    This is the LEGAL version of piracy

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

    Is the narrator for this video a text to speech program? cause he doesn't sound human

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

    I didn't know python has struct... LOL

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

    This is a great video! makes me want to understand different coding languages and invest more time learning.. Only thing that's holding me back is a lack of time to do this sorta thing and not being in the industry

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

    WAD Data = Where's All the Data Data

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

    Well, let's take perfect, super fast C code and make 100 times slower Python abomination. What the point of this project? Killing time? There is much more suitable languages and frameworks for game development.

    • @XENON2028
      @XENON2028 5 หลายเดือนก่อน

      python is easier to understand than C sometimes

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

    ugh AI text to speech

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

    Ugh... text to speech. No thanks.

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

    What is the program you are using to write the code in. I know python is the language but what are you using to run it?