Recreating DOOM in Python. Ep1 - WAD DATA

Поделиться
HTML-код
  • Опубликовано: 3 мар 2023
  • 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.com/idgames/inde...
    SLADE 3
    slade.mancubus.net/index.php?...
    Code:
    drive.google.com/file/d/1y6ig...
    C++ DIY Doom:
    github.com/amroibrahim/DIYDoom
    #coderspace #doom #python

Комментарии • 142

  • @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

    • @astaghfirullahalzimastaghf3648
      @astaghfirullahalzimastaghf3648 Год назад +1

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

    • @CoderSpaceChannel
      @CoderSpaceChannel  Год назад +1

      @@astaghfirullahalzimastaghf3648 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 5 месяцев назад +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.

  • @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.

  • @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.

  • @Hovercat34
    @Hovercat34 Год назад +2

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

  • @2dapoint424
    @2dapoint424 Год назад +5

    Very nicely explained !! Thank you for uploading!

  • @refeals
    @refeals Год назад +2

    this is awesome man! cant wait for part 2 !

  • @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

  • @greenya84
    @greenya84 Год назад

    Love your content! Keep it up.

  • @Oxim1nus
    @Oxim1nus Год назад +1

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

  • @josuebarros5727
    @josuebarros5727 Год назад

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

  • @SkyFly19853
    @SkyFly19853 Год назад +17

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

  • @glyphic1219
    @glyphic1219 Год назад +4

    THIS IS AMAZING MAN.

  • @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!

  • @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!

  • @vlad5058
    @vlad5058 7 месяцев назад

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

  • @EKTTDAL
    @EKTTDAL 5 месяцев назад

    Amazing video!

  • @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

  • @viktoreidrien7110
    @viktoreidrien7110 Год назад +1

    amazing video man, thanks

  • @rizalabdurrahman8317
    @rizalabdurrahman8317 Год назад +2

    Good Job 🔥🔥

  • @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.

  • @iliaselabdi3498
    @iliaselabdi3498 Год назад +7

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

  • @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?

  • @shadow_blader192
    @shadow_blader192 Год назад +2

    Finally! Amazing.

  • @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.

  • @Micah20001
    @Micah20001 Год назад +1

    really good content

  • @ChrisHalden007
    @ChrisHalden007 Год назад

    Great video. Thanks

  • @subarunatsuki1902
    @subarunatsuki1902 Год назад +2

    Thank you sooo much! :D

  • @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.

  • @lawnflamingo5602
    @lawnflamingo5602 Год назад +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.

  • @andrewfrost8866
    @andrewfrost8866 Год назад

    Very impressive

  • @user-bf9ul9wv1d
    @user-bf9ul9wv1d Год назад

    Hooray!

  • @destroy_your_mum9560
    @destroy_your_mum9560 11 месяцев назад +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

  • @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.

  • @ConandeBrodo
    @ConandeBrodo Год назад +2

    I see recreating Doom, I sub.

  • @sopidf
    @sopidf Год назад +1

    you are awsome!

  • @damus6665
    @damus6665 Год назад

    Next episode when??? Epic video!!!

  • @avvn9331
    @avvn9331 Год назад

    Awesome

  • @JonathanZigler
    @JonathanZigler Год назад +2

    Mans didn't want to compile numbas from source

  • @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?

  • @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?

  • @fidelrivera2887
    @fidelrivera2887 Год назад +1

    Ahhh yeah!!

  • @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.

  • @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!

  • @raywestcoast98
    @raywestcoast98 10 месяцев назад

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

  • @seanvinsick5271
    @seanvinsick5271 Год назад +2

    Why not use a struct to read the wad file?

  • @rexraptorsaur
    @rexraptorsaur Год назад

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

  • @Johncw87
    @Johncw87 Год назад

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

  • @DeineMuddaIstEchtZiemlichFett
    @DeineMuddaIstEchtZiemlichFett Год назад +2

    Godlike video! You are so underrated!

  • @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.

  • @TGAProMKM
    @TGAProMKM Год назад

    I see it's really interesting....

  • @cosmicrdt
    @cosmicrdt Год назад +116

    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!... :/

  • @Alfred44819
    @Alfred44819 Год назад

    Bro is making his own source port

  • @Wojtek_1777
    @Wojtek_1777 4 месяца назад +2

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

  • @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 👍

  • @ze5os427
    @ze5os427 10 месяцев назад

    10:27 "Lindedef"

  • @osamamanan2723
    @osamamanan2723 4 месяца назад

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

  • @catsouls4714
    @catsouls4714 Год назад

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

  • @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.

  • @Nik1596
    @Nik1596 Год назад +1

    Where did you get this version the m1e1 background music?

  • @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

  • @markayers6454
    @markayers6454 Год назад

    Omg how long did that take man

  • @Hunter-xc9yq
    @Hunter-xc9yq Год назад +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?

  • @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.

  • @steelbrotherhoodof2359
    @steelbrotherhoodof2359 Год назад +1

    linedefs from vertexes, are they drawn clock-wise ?

    • @kopuz.co.uk.
      @kopuz.co.uk. 3 месяца назад

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

  • @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

  • @user-xk7de1jw8g
    @user-xk7de1jw8g 10 месяцев назад +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.

  • @wbfaulk
    @wbfaulk Год назад +1

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

  • @Temu_ko
    @Temu_ko Год назад +1

    ¡Gracias!

  • @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)

  • @PederLindbergMN
    @PederLindbergMN Год назад +5

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

  • @bank8489
    @bank8489 5 месяцев назад +1

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

  • @pandabearguy1
    @pandabearguy1 6 месяцев назад

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

  • @NinjaRunningWild
    @NinjaRunningWild Год назад

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

  • @Jkauppa
    @Jkauppa Год назад

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

  • @galtechtv4239
    @galtechtv4239 Год назад +1

    Can Cython boost the perf ?

  • @TylerZhirden_
    @TylerZhirden_ Год назад +4

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

  • @ccassler3
    @ccassler3 Год назад

    Is this a robot voice?

  • @SpaceCat50713
    @SpaceCat50713 Месяц назад

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

  • @WT0311
    @WT0311 8 месяцев назад

    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  8 месяцев назад

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

  • @kbsanders
    @kbsanders Год назад +2

    Robot narration?

  • @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.

  • @markayers6454
    @markayers6454 Год назад +1

    This is the LEGAL version of piracy

  • @draeath
    @draeath Год назад

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

  • @SamFisher69420
    @SamFisher69420 Год назад +1

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

  • @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

  • @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

  • @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 2 месяца назад

      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.