Recreating DOOM in Python. Ep2 - Binary Space Partitioning

  Рет қаралды 47,028

Coder Space

Coder Space

Күн бұрын

Пікірлер: 86
@wildwest1832
@wildwest1832 Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
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
@acatisfinetoo3018
@acatisfinetoo3018 10 ай бұрын
This is absolutely amazing...never thought i'd see such an in-depth video explaining how the doom engine works in such detail.
@robinlaser5794
@robinlaser5794 Жыл бұрын
Was waiting for this! Great work
@rexraptorsaur
@rexraptorsaur Жыл бұрын
9:37 fascinating and beautiful…thanks for yet another remarkable coding session today!
@dashsights4258
@dashsights4258 Жыл бұрын
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.
@fmesseder
@fmesseder Жыл бұрын
I’m learning so much with your code. Can’t wait for the next part.
@reltsnie
@reltsnie Жыл бұрын
fantastic series so far, look forward to watching them all
@Luxylux
@Luxylux Жыл бұрын
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 ;)
@2dapoint424
@2dapoint424 Жыл бұрын
I punched myself twice to check if I dreaming r not!! Wow, so quick in video release!! Love you for this!!
@danisob3633
@danisob3633 Жыл бұрын
punch yourself a couple more times. i need more vids.
@madkhix7612
@madkhix7612 Жыл бұрын
You are freaking amazing dude. Thanks for the video.
@Stopinvadingmyhardware
@Stopinvadingmyhardware Жыл бұрын
That’s just awesome. I had no idea how that worked.
@3notdeadyet651
@3notdeadyet651 Жыл бұрын
Up to the five minute mark, my mind was keeping up. Thanks to your explanation, I was able to stay "Interested".
@kimeg7294
@kimeg7294 10 ай бұрын
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.
@Farmpy
@Farmpy Жыл бұрын
I always love when this guy uploads, I just wish he would get more views
@pepasjc
@pepasjc Жыл бұрын
Great video! Looking forward to the next
@ChrisHalden007
@ChrisHalden007 Жыл бұрын
Excellent. Really enjoyed. Thanks
@cartoonyheader1646
@cartoonyheader1646 Жыл бұрын
It motivates me to unravel this language more, thanks for this
@rexraptorsaur
@rexraptorsaur Жыл бұрын
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 😶
@VeihShizoo
@VeihShizoo 2 күн бұрын
Это чудеса. Спасибо.
@MrBrax
@MrBrax Жыл бұрын
Is this just text to speech?
@mirabilis
@mirabilis Жыл бұрын
Yes
@Decoder0007
@Decoder0007 Жыл бұрын
No it’s Coder Space
@Wojtek_1777
@Wojtek_1777 10 ай бұрын
No i think he just sped up his voice
@Wojtek_1777
@Wojtek_1777 10 ай бұрын
Put it on .75
@taskmanager_1021
@taskmanager_1021 10 ай бұрын
I think it is, but it doesn't make the video bad
@imalaia8033
@imalaia8033 Жыл бұрын
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
@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
@Yupppi
@Yupppi 10 ай бұрын
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.
@marko-gj1uj
@marko-gj1uj Жыл бұрын
This is motivating me into studying coding
@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 Жыл бұрын
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
@MusicalArmageddon
@MusicalArmageddon Жыл бұрын
Narrated by an AI text-to-speech voice.
@CharlesVanNoland
@CharlesVanNoland 4 ай бұрын
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.
@bonean0118
@bonean0118 Жыл бұрын
How have you changed the name of your windows C drive?? Love your vids
@damus6665
@damus6665 Жыл бұрын
Incredibile thank you!
@Aeduo
@Aeduo Жыл бұрын
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 Жыл бұрын
As I know, BSP in HL2 is used just as additional acceleration structure, not for determining the drawing order.
@OtotoZZZ
@OtotoZZZ 26 күн бұрын
my map is mirrored and rotated 180 degrees when I run the game and I do not know how to fix it
@Owofbfbajfbsnsn
@Owofbfbajfbsnsn Жыл бұрын
Can I do the voiceover for your next script?
@intron9
@intron9 9 ай бұрын
At 2:20 I think the line #24 has the opposite condition written
@baslifico
@baslifico Жыл бұрын
Why the speech synth?
@Wojtek_1777
@Wojtek_1777 9 ай бұрын
Fallout 4 reference
@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
@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 Жыл бұрын
Maybe they record themselves backspacing the code then have the video play backwards :D
@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
@cipher3966
@cipher3966 Жыл бұрын
I hope this series ends with Wolfenstein's "Yeah!!!". No one has made a more satisfying game ending
@mtalhakhalid1679
@mtalhakhalid1679 Жыл бұрын
hahahah binary search tree for doom super fun and intresting
@kc_krypto
@kc_krypto 9 ай бұрын
lol, I nearly thought that was Master of Puppets XD
@SkyFly19853
@SkyFly19853 Жыл бұрын
Python can overcome these limitations.
@samuelmay5670
@samuelmay5670 Жыл бұрын
Great video! Happy pi day.
@gameworld5147
@gameworld5147 Жыл бұрын
Can you make a complete python course for beginners to master, I would be very thankful, as well as full pygame tutorial
@wildwest1832
@wildwest1832 Жыл бұрын
I definitely get kind of lost on python the language. Its kind of weird vs something like C
@RukDaWho
@RukDaWho Жыл бұрын
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 Жыл бұрын
indeed, the partition line of the root node in the paid version is different from the shareware
@arercon
@arercon 5 ай бұрын
Are you always stopping and typing or do you just access the google drive folder?
@boxhead-zk7sn
@boxhead-zk7sn 9 ай бұрын
It to fast for me to keep up and if i pause it to write i lose track of what your saying
@johneygd
@johneygd Жыл бұрын
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??
@iwavcYT
@iwavcYT Жыл бұрын
Do you want to shoot a video tutorial on Pacman?
@the.zolars
@the.zolars Жыл бұрын
Stand alone coder, ты? да ну
@semihask6560
@semihask6560 11 ай бұрын
Does this count as a source port?
@kaizogaming9855
@kaizogaming9855 Жыл бұрын
👍
@rzl1234
@rzl1234 Жыл бұрын
sounds like AI speech
@Wojtek_1777
@Wojtek_1777 9 ай бұрын
Because it is sherlock holmes
@Wojtek_1777
@Wojtek_1777 9 ай бұрын
Or its because he sped up the footage
@intron9
@intron9 9 ай бұрын
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)
@Edgar-uh5zj
@Edgar-uh5zj 10 ай бұрын
wat
@gmcmaster1985
@gmcmaster1985 Жыл бұрын
I enjoy this, but the text to speech is obvious and pretty bad
@deckard5pegasus673
@deckard5pegasus673 13 күн бұрын
OMFG trying to listen to a video with music blasting in the background is so irritating
@kale.online
@kale.online Жыл бұрын
Wannabe panen
@ogfakii9187
@ogfakii9187 Жыл бұрын
You’re amazing
@casualseraph709
@casualseraph709 Жыл бұрын
wah-finstein
@guilherme5094
@guilherme5094 Жыл бұрын
👍
Recreating DOOM in Python. Ep3 - Player's Field of View
9:38
Coder Space
Рет қаралды 25 М.
Recreating DOOM in Python. Ep1 - WAD DATA
12:13
Coder Space
Рет қаралды 83 М.
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 244 МЛН
If people acted like cats 🙀😹 LeoNata family #shorts
00:22
LeoNata Family
Рет қаралды 29 МЛН
How to Fight a Gross Man 😡
00:19
Alan Chikin Chow
Рет қаралды 18 МЛН
SIZE DOESN’T MATTER @benjaminjiujitsu
00:46
Natan por Aí
Рет қаралды 6 МЛН
BSP Trees: The Magic Behind Collision Detection in Quake
8:53
Matt's Ramblings
Рет қаралды 102 М.
3D Rendering with Binary Space Partitions
6:39
Quothmar
Рет қаралды 125 М.
Let's Code DOOM #2 - Binary Space Partitioning Tree
13:54
Coder Space
Рет қаралды 12 М.
The Tools that Built Doom
7:41
The MADE Oakland
Рет қаралды 137 М.
Doom engine - Limited but still 3D
6:57
borogk
Рет қаралды 588 М.
5 Useful Dunder Methods In Python
16:10
Indently
Рет қаралды 64 М.
Fixing Multiplayer Of A 25 Year Old Game
12:37
Nathan Baggs
Рет қаралды 102 М.
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 244 МЛН