Recreating DOOM in Python. Ep2 - Binary Space Partitioning

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024

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

  • @acatisfinetoo3018
    @acatisfinetoo3018 8 месяцев назад +4

    This is absolutely amazing...never thought i'd see such an in-depth video explaining how the doom engine works in such detail.

  • @wildwest1832
    @wildwest1832 Год назад +44

    The BSP tree was an ingenious idea that really doom wouldnt exist without. Cool to see all this implemented, and explained well even if it is a lot to digest.

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

      Before BSP, Romero broke the engine completely by simply making a square stairs going down into itself (like the start of E1M1). It got stuck in an infinite loop of stairs.

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

      Much as I appreciate it, I'd prefer to use quake or valves bsp for levels if chose to make similar engine.

    • @DBGabriele
      @DBGabriele 11 месяцев назад

      actually there other ways to do that (for instance portal + Tree), but this was an excellent way to do that w/o the extra work of the map designers

  • @MrBrax
    @MrBrax Год назад +39

    Is this just text to speech?

    • @mirabilis
      @mirabilis Год назад +6

      Yes

    • @Decoder0007
      @Decoder0007 Год назад +12

      No it’s Coder Space

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

      No i think he just sped up his voice

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

      Put it on .75

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

      I think it is, but it doesn't make the video bad

  • @Luxylux
    @Luxylux Год назад +14

    Coder Space is the kind of guy who gives you GPS coordinates when you ask him for the closest bakery :D
    I'm kidding, I could listen to u doing maths all day long. That's magic, thank u.
    Next topic : Quake engine LOL good luck, carmack lost his mind doing it, he could not sleep at night, based on what Abrash wrote in his 3d book ;)

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

    8:53 wow…I told myself “wouldn’t it be funny if I typed 1 instead of i? Next time, I got a weird incomplete rendering of the map because I did in fact type 1 instead of i 😶

  • @robinlaser5794
    @robinlaser5794 Год назад +8

    Was waiting for this! Great work

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

    9:37 fascinating and beautiful…thanks for yet another remarkable coding session today!

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

    Narrated by an AI text-to-speech voice.

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

    Can I do the voiceover for your next script?

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

    Why the speech synth?

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

      Fallout 4 reference

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

    This guy does things that no sane person would do in python. It's amazing. Although it would be better if he didn't use the tts

  • @dashsights4258
    @dashsights4258 Год назад +3

    I am really thankful to you men.this series a integral moment to develop my system level skills with clever data structures and algorithms applied from scratch.

  • @Aeduo
    @Aeduo Год назад +3

    Very digestible video about BSP. Wonder how it works in stuff like half life 2. I guess expanded to fully 3D space.

    • @f.artemenkov
      @f.artemenkov Год назад +2

      As I know, BSP in HL2 is used just as additional acceleration structure, not for determining the drawing order.

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

    Seems the root node is different in my wad, from bfg edition. Can anyone else verify or can someone put the node values from demo wad to verify? It denotes the same vertical it seems so maybe the changed due to longer line def visibility?

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

      indeed, the partition line of the root node in the paid version is different from the shareware

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

    Brilliant algorithmic approaches are always fun to practice. Nowadays, everything is just a thick layer of wrappers on top of other random wrappers that depend on other random wrappers. I'm looking forward to watch the collapse of the spaghetti system in its entirety when things get deprecated and out of sync here and there. Nobody wants to fix that crap AND realistically it's too big of a mess to clean up within a reasonable amount of time anyway.

  • @CharlesVanNoland
    @CharlesVanNoland 2 месяца назад

    This video is narrated by a synthetic voice, for those that didn't notice - not necessarily an AI generated voice, but definitely a generated/synthesized voice.

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

    Huh,are you telling me that if the snes didn’t had a slow cpu that john carmec never would,ve discovered bsp and thus never used the bsp engine in pc doom???
    I tout that pc doom uses a raycasting engine,
    BUT if this is true then we can say that nintendo did had it’s far far far influance in doom by lettin carmec decide to use bsp in doom ibstead rather then raycasting,all because of the slow snes cpu in wich carmec wanted to port wolf3D to ?
    So if nintendo would,ve opted for a 10mhz cpu inside the snes,carmec may would,ve used a raycasting engine in both snes wolf3D and pc doom???
    If pc wolf3D uses a raycasting engine then imagine how much faster a bsp version of it for the pc will be,right??

  • @fmesseder
    @fmesseder Год назад +3

    I’m learning so much with your code. Can’t wait for the next part.

  • @arercon
    @arercon 3 месяца назад

    Are you always stopping and typing or do you just access the google drive folder?

  • @boxhead-zk7sn
    @boxhead-zk7sn 7 месяцев назад

    It to fast for me to keep up and if i pause it to write i lose track of what your saying

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

    fantastic series so far, look forward to watching them all

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

    lol, I nearly thought that was Master of Puppets XD

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

    At 2:20 I think the line #24 has the opposite condition written

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

    I always love when this guy uploads, I just wish he would get more views

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

    I enjoy this, but the text to speech is obvious and pretty bad

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

    I punched myself twice to check if I dreaming r not!! Wow, so quick in video release!! Love you for this!!

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

      punch yourself a couple more times. i need more vids.

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

    You are freaking amazing dude. Thanks for the video.

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

    Can you make a complete python course for beginners to master, I would be very thankful, as well as full pygame tutorial

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

      I definitely get kind of lost on python the language. Its kind of weird vs something like C

  • @semihask6560
    @semihask6560 9 месяцев назад

    Does this count as a source port?

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

    sounds like AI speech

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

      Because it is sherlock holmes

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

      Or its because he sped up the footage

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

    30 years of progress in hardware has resulted in us being able to write something that was only possible with brilliant engineering in C to be able to be written in Python.

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

    I hope this series ends with Wolfenstein's "Yeah!!!". No one has made a more satisfying game ending

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

    If you were to move the player up outside of the node it's currently in, is it normal that the player no longer lies inside a bounding box? I'm using the wad from The Ultimate DOOM on Steam

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

    here's a quick note if you don't know already, dooms logic runs at 35 FPS, and frames are called "gametics" in code

  • @3notdeadyet651
    @3notdeadyet651 Год назад

    Up to the five minute mark, my mind was keeping up. Thanks to your explanation, I was able to stay "Interested".

  • @kale.online
    @kale.online Год назад

    Wannabe panen

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

    How have you changed the name of your windows C drive?? Love your vids

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

    hahahah binary search tree for doom super fun and intresting

  • @Edgar-uh5zj
    @Edgar-uh5zj 8 месяцев назад

    wat

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

    It motivates me to unravel this language more, thanks for this

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

    That’s just awesome. I had no idea how that worked.

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

    Excellent. Really enjoyed. Thanks

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

    Incredibile thank you!

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

    Python can overcome these limitations.

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

    Do you want to shoot a video tutorial on Pacman?

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

    Great video! Looking forward to the next

  • @marko-gj1uj
    @marko-gj1uj Год назад

    This is motivating me into studying coding

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

    👍

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

    This is an amazing playlist, I'm coding along and loving it!!!
    I have 2 questions:
    1) Can I easily adapt the python code what we are developing here to work with Heretic and Hexen?
    2) Can I create more levels using Slade or Doom Builder and have it to work on this custom doom engine?

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

      this has only been tested with wad files from DOOM 1 and 2

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

      @@CoderSpaceChannel hmmm, I'm gonna test Heretic WAD by end of this month

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

    Great video! Happy pi day.

  • @the.zolars
    @the.zolars Год назад

    Stand alone coder, ты? да ну

  • @Merlin-gl7zp
    @Merlin-gl7zp Год назад

    How do you record/generate those code writing shots? I suspect that you dont just write code that fast live while recording. Or you rewrite it after just for the shot?

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

      it's a tricky technique

    • @Aeduo
      @Aeduo Год назад +3

      Maybe they record themselves backspacing the code then have the video play backwards :D

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

    try breadth first search closest grid cells first plane ray casting, its just a dot product between the normalized plane (a,b,c|d) and sphere center (x,y,z|1), even if you do each plane ray separately (not plane ray angle limits to speed things up)

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

      the grid square cells (2d/3d) are automatic binary space partition effect

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

      its also real time, not off-line like doom bsp

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

      dealing with each plane ray separately is equivalent to DDA in a square cell grid

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

      just place each wall/object to be a member of any number of cells, to be intersected in real time by the plane ray dot product (each object/wall has a radius of the boundary volume sphere)

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

      this whole algorithm implements the bsp algorithm but different logic, same end result

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

    👍

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

    Python super fanatics when they look at your "BSP node" class and finds no __iter__() or __next__() : 😫
    (just a silly meme, if it isn't going to help, it's just better to avoid adding more stuff)

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

    You’re amazing

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

    wah-finstein