Coder Space
Coder Space
  • 57
  • 3 611 594
Make Your Own DOOM. Building and Traversing a BSP Tree
Tutorial on Binary Space Partitioning. Using Python and Raylib library we will create a 3D game like Doom. This series looks at building and traversing a binary space partitioning tree.
Two line segments intersection:
stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
Source Code:
drive.google.com/file/d/12B9QzJWnJ60FGpYLp5Z5JIJb1OeoJz6W/view?usp=sharing
#python #doom #raylib #coderspace
Переглядів: 7 080

Відео

Make Your Own DOOM. BSP Tutorial - Initial Setup
Переглядів 7 тис.2 місяці тому
Tutorial on Binary Space Partitioning. Using Python and Raylib library we will create a 3D game like Doom Code: drive.google.com/file/d/1J3BPT9wB3TVtVfinfs4RFbRGaY_JM9QA/view?usp=sharing Music: Emi Meyer - For Whom the Bell Tolls #python #doom #raylib #coderspace
I made my own DOOM
Переглядів 9 тис.2 місяці тому
This DOOM clone was written from scratch using Python and the Raylib library. This has nothing to do with the DOOM source code and does not support WAD files. The only thing that connects with the original DOOM is the use of 2D BSP Tree. BSP Tutorial: ua-cam.com/video/vdNrNCqT8No/v-deo.html Music: Emi Meyer - For Whom the Bell Tolls #doom #python #coderspace
Map of Natural Numbers in 3D
Переглядів 8 тис.5 місяців тому
Generating a Map of Natural Numbers and its 3D Renderer using the UMAP dimensionality reduction algorithm in Python and OpenGL. Inspired by: johnhw.github.io/umap_primes/index.md.html Source Code: github.com/StanislavPetrovV/3D-Number-Renderer-with-UMAP #coderspace #umap #opengl #python
How to Make a First Person Shooter like Wolfenstein 3D
Переглядів 37 тис.6 місяців тому
Creating a Wolfenstein 3D clone using Python and OpenGL. The main stages of creating a 3D game in the style of a retro first person shooter in Python. Used: Pygame, ModernGL, PyTMX, PyGLM, Numpy Source Code: github.com/StanislavPetrovV/Wolfenstein-3D-Clone #coderspace #wolfenstein #python #opengl
Creating a Voxel Engine (like Minecraft) from Scratch in Python
Переглядів 412 тис.10 місяців тому
OpenGL Tutorial for creating a Voxel 3D Engine like Minecraft using Python. Libraries and modules used: Pygame, ModernGL, Numpy, PyGLM, Numba, OpenSimplex Code for each stage: drive.google.com/file/d/1zb-UgWbZJw9HhAnhIIxcuJKBGf2RNTTj/view?usp=sharing Source Code: github.com/StanislavPetrovV/Minecraft 00:00:00 Intro 00:00:55 OpenGL Window 00:04:33 Initial Setup 00:10:56 Chunk 00:21:13 World of C...
Recreating DOOM in Python. Ep5 - Assets & Texture Mapping
Переглядів 26 тис.Рік тому
Let's Understand How to Get All DOOM Assets and Implement Texture Mapping of Walls, Floors and Ceilings Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html Github: github.com/StanislavPetrovV/DOOM-Level-Viewer #coderspace #doom #python
Recreating DOOM in Python. Ep4 - WALLS
Переглядів 18 тис.Рік тому
Finally rendering the walls! Consider rendering two types of walls, Solid and Portal, and create a DOOM level viewer! Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html Code: drive.google.com/file/d/1Z81Mc2V1ZnCoMgdYa0v9BGu-I8QsAG7h/view?usp=share_link #coderspace #doom #python
Recreating DOOM in Python. Ep3 - Player's Field of View
Переглядів 23 тис.Рік тому
Let's find out how to implement a player's Field of View in DOOM and what algorithms to use for this. Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html Code: drive.google.com/file/d/1LIG7bLDGiR6JSVxOr9KnrzlrxaOZB3-M/view?usp=share_link #coderspace #doom #python
Recreating DOOM in Python. Ep2 - Binary Space Partitioning
Переглядів 41 тис.Рік тому
Binary Space Partitioning is the heart of DOOM! Let's understand what is BSP and how it works in DOOM. Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html Code: drive.google.com/file/d/1KbZ28I6_agMhP02_GnQfa7zG6mwW1PyZ/view?usp=share_link C DIY Doom: github.com/amroibrahim/DIYDoom #coderspace #doom #python
Recreating DOOM in Python. Ep1 - WAD DATA
Переглядів 76 тис.Рік тому
Getting WAD file data and rendering DOOM maps in 2D mode. Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html DOOM1.WAD www.doomworld.com/idgames/index.php?file=idstuff/doom/doom19s.zip SLADE 3 slade.mancubus.net/index.php?page=downloads Code: drive.google.com/file/d/1y6igZn5MqUt249wCL6GgHeGWosxNJJ9H/view?usp=share_link C DIY Doom: github.com/amroibrahim/DI...
Recreating DOOM in Python. Ep0 - Intro
Переглядів 30 тис.Рік тому
This video is an introduction to a series of episodes in which we will be recreating DOOM in Python Metallica - E1M1 (At Doom's Gate) @StateOfMercury ua-cam.com/video/Cl-xcjlfswo/v-deo.html C DIY Doom: github.com/amroibrahim/DIYDoom Books: -Game Engine Black Book: Doom (by Fabien Sanglard) -Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture (by David Kushner) #coderspac...
Pygame vs Raylib vs Arcade Pyglet: Which One Will Suprise You?
Переглядів 28 тис.Рік тому
Let's Develop a Benchmark and Test 2D Graphics Performance for the Pygame, Arcade Pyglet and Raylib libraries. And also compare the work of these graphic libraries for Python versions 3.10 and 3.11 github.com/StanislavPetrovV/Benchmark-2D 00:00 Intro 00:34 Pygame CPU 06:10 Pygame CPU CACHE 07:22 Arcade Pyglet 10:12 Raylib 12:12 Speed Comparison #coderspace #pygame #raylib #arcade #pyglet
Projects and Games MADE in Python and PyGame
Переглядів 22 тис.Рік тому
All these Projects and Games are made with Python and the Pygame library. In some projects, along with Pygame, just-in-time compilers were used. Projects: github.com/StanislavPetrovV #coderspace #pygame
Exploring the Menger Sponge Fractal
Переглядів 9 тис.Рік тому
Let's explore the Menger Sponge Fractal and create a spectacular 3D scene with this fractal using OpenGL initial code: drive.google.com/file/d/1HI7mBQJ_qhFL5uA54fka_S61jQC7o1Wy/view?usp=share_link github: github.com/StanislavPetrovV/Menger-Sponge #coderspace #opening #fractal #mengersponge
Detailed Tetris Tutorial in Python
Переглядів 53 тис.Рік тому
Detailed Tetris Tutorial in Python
How I Made The World with SINE
Переглядів 180 тис.Рік тому
How I Made The World with SINE
Sprite Stacking in Python and Pygame
Переглядів 31 тис.Рік тому
Sprite Stacking in Python and Pygame
What is Mode 7? Let's code it!
Переглядів 37 тис.Рік тому
What is Mode 7? Let's code it!
The Beauty of Prime Numbers
Переглядів 34 тис.Рік тому
The Beauty of Prime Numbers
3D Engine in Python. Shadow Mapping, PCF
Переглядів 17 тис.Рік тому
3D Engine in Python. Shadow Mapping, PCF
3D Engine in Python. SkyBox, Environment Mapping
Переглядів 24 тис.Рік тому
3D Engine in Python. SkyBox, Environment Mapping
Let's code 3D Engine in Python. OpenGL Pygame Tutorial
Переглядів 176 тис.Рік тому
Let's code 3D Engine in Python. OpenGL Pygame Tutorial
Procedural FUR Generation. GPU Furmark Clone.
Переглядів 11 тис.Рік тому
Procedural FUR Generation. GPU Furmark Clone.
DOOM styled Flappy Bird in Python
Переглядів 12 тис.Рік тому
DOOM styled Flappy Bird in Python
🔥 How the Doom Fire Algorithm Works
Переглядів 19 тис.Рік тому
🔥 How the Doom Fire Algorithm Works
Creating a DOOM (Wolfenstein) - style 3D Game in Python
Переглядів 1,3 млнРік тому
Creating a DOOM (Wolfenstein) - style 3D Game in Python
Coding Tic Tac Toe in Python with Pygame
Переглядів 17 тис.Рік тому
Coding Tic Tac Toe in Python with Pygame
Fun Artificial Life. Langton's Ant in Python | Pygame |
Переглядів 4,3 тис.Рік тому
Fun Artificial Life. Langton's Ant in Python | Pygame |
Advanced Procedural 3D Graphics. Ray Marching Tutorial
Переглядів 23 тис.Рік тому
Advanced Procedural 3D Graphics. Ray Marching Tutorial

КОМЕНТАРІ

  • @iriscapes
    @iriscapes 20 годин тому

    @3:58 I noticed that we can blur the shadow by an amount given by the difference with neighboring pixels.

  • @BonnieMallet
    @BonnieMallet День тому

    Oh my word! Another awesome video from Coder Space! As the other comments say, it is super condensed. I recommend going through it slowly, copying it whilst making notes. Utterly brilliant. Hope this adjusts the UA-cam algorithm...

    • @BonnieMallet
      @BonnieMallet День тому

      Oh, and my personal tweak to 'camera.py' to make it work how I like it. Just inverts the axis and removes the clamping (for other who are learning and like it this way). def rotate(self): rel_x, rel_y = pg.mouse.get_rel() self.yaw += rel_x * SENSITIVITY self.pitch -= rel_y * SENSITIVITY # Invert the pitch angle (non-flight controls) # Keep the angles within 0 to 359 degrees. self.yaw %= 360 # Keep the yaw angle within 0 to 359 degrees self.pitch %= 360 # Keep the yaw angle within 0 to 359 degrees # Reset the mouse position to the center of the screen on each frame # This prevents the mouse from reaching the edge of the screen and preventing camera movement. pg.mouse.set_pos(self.app.WIN_SIZE[0] // 2, self.app.WIN_SIZE[1] // 2) Thanks again for an ace tutorial!

  • @JoeyTeam31
    @JoeyTeam31 День тому

    Where to find my vertex shader files?

  • @duoc-moi
    @duoc-moi 2 дні тому

    So beautiful!

  • @knut-olaihelgesen3608
    @knut-olaihelgesen3608 3 дні тому

    Nice use of the tuple packing/unpacking

  • @manga1gtr
    @manga1gtr 4 дні тому

    how a move the cat?

  • @908pumpkins
    @908pumpkins 4 дні тому

    I like how you used wolfenstein textures on 0:32 I like the variety in the textures you used from other games by id software

  • @BitBloxDevs
    @BitBloxDevs 5 днів тому

    Amazing

  • @blackholesun4942
    @blackholesun4942 5 днів тому

    Ambitious project 👍👍 00:00:00

  • @I_am_bacon._.
    @I_am_bacon._. 6 днів тому

    Making this in pygame is mindblowing. I thought pygame was just for making 2d games like flappy bird.

  • @mrdixioner
    @mrdixioner 7 днів тому

    Спасибо огромное! Всё заработало с первого раза!!!

  • @razumm7573
    @razumm7573 8 днів тому

    help me pls add mobs in this doom viewer(

  • @mrdixioner
    @mrdixioner 8 днів тому

    Глайдеры превращаются в квадраты, хотя на их пути ничего не было: это не правильно, т.к. глайдеры вечны, но только лишь до того момента, пока на их пути не попадётся хоть одна клетка. Хм, странно, версия до "на весь экран" работала именно так, затем ошибка сама собой устранилась. Спасибо огромное!!!

  • @BonnieMallet
    @BonnieMallet 8 днів тому

    Thanks Coder Space! I just recently found your content and it is absolutely wonderful! For me personally, it strikes the perfect balance between conciseness and explanation. Each video are like the notes I would take from learning a new subject, but with a fantastic visual component. Thanks so much for sharing, and for all your time and effort with these. Great stuff!

  • @6Abdellah9
    @6Abdellah9 8 днів тому

    u my man have just earned yourself another subscriber and a like

  • @PySnek
    @PySnek 9 днів тому

    I wonder how that compares to something like Bevy or naylib (Nim)

  • @ducksreviewtech3396
    @ducksreviewtech3396 9 днів тому

    why would odd and even faces require different uv indices?

  • @josuebarros5727
    @josuebarros5727 10 днів тому

    You are a legend Bro!!!

  • @mrdixioner
    @mrdixioner 10 днів тому

    Ошибку с taichi_glsl решил, поменяв его на модуль taichi.math. Теперь другая проблема в строке (у вас это строка 21): self.screen_array=np.full((width, height, 3), [0,0,0], np.uint8) - TypeError: 'numpy.float32' object cannot be interpreted as an integer. Не понял, как исправить. UPDATE. Короче переписал весь текст заново, вся соль в том, что pygame не хочет работать с vec2(1600,900). Но не уверен, т.к. дальше этой строки (self.screen=pg.display.set_mode(resolution) не работает. UPDATE2. Поставил set_mode(resolution) как ((1600,900)), теперь снова ошибка numpy.float32.

  • @mrdixioner
    @mrdixioner 10 днів тому

    Очень минималистичные алгоритмы, как увеличения длины змейки, так и проверки самоедства! У других намного сложнее и запутаннее. Спасибо огромное за великолепные уроки!!!

  • @kangaroo_
    @kangaroo_ 10 днів тому

    This is extraordinary! Really enjoy the way you teach programming concepts. The way these videos are constructed is so cool.

  • @tinracic8244
    @tinracic8244 11 днів тому

    How would one go about animating spritestacks? Implementing magicavoxel animations to things such as trees and maybe player and entities.

  • @GoJo218
    @GoJo218 11 днів тому

    What program is used in the video for script

  • @mrdixioner
    @mrdixioner 11 днів тому

    Спасибо огромное!!! На моём допотопном компе максимально разогналось до 40 FPS, что с процессором, что с граф. карточкой, но всё равно комфортно полетал по фракталу!!!

  • @mrdixioner
    @mrdixioner 11 днів тому

    I had an error with the geometry module and Python version 3.11.7. I had to write the line to make it work: "from moderngl_window import geometry". It also doesn't find shader files for me. What could be the problem?

  • @mrdixioner
    @mrdixioner 11 днів тому

    Очень круто! Увидеть такое, на что способен Python, это очень здорово! Большое спасибо за видео!

  • @Kosenkov_Dmitry
    @Kosenkov_Dmitry 12 днів тому

    Really cool video. Can you made this game on godot or unity. I think it will be better

  • @mrdixioner
    @mrdixioner 12 днів тому

    Красота математики!!!

  • @Kattenb
    @Kattenb 12 днів тому

    lost interest as soon as i heard the AI-voice

    • @DeltaSS2
      @DeltaSS2 7 днів тому

      You also lost a learning experience

  • @Trash7Trash7Trash7
    @Trash7Trash7Trash7 12 днів тому

    get a mic

  • @it_is_random
    @it_is_random 12 днів тому

    Creating a Voxel Engine part 2 pls pls pls pls pls pls pls pls pls pls pls pls pls pls pls pls pls

  • @gooficat
    @gooficat 12 днів тому

    This is an amazing technique to me, I find pseudo-3D to be something very interesting, reminds me of the hacks and techniques used for old 2.5d games like doom and duke nukem

  • @highfestiva
    @highfestiva 13 днів тому

    Thanks

  • @highfestiva
    @highfestiva 13 днів тому

    Balanced, highly technical, extremely well made - I'm super impressed! Also thankful for this hands-on intro to shaders, soooooo much better than the basic tutorials! ❤🎉 Also: don't be a chicken - show your face and use your voice, I'm sure ppl will love it! GL!

  • @alexale5488
    @alexale5488 14 днів тому

    Do you recommend me using Raylib for a commerical game? I am considering Godot, but I am a Python engineer and I'd find it more pleasurable to keep everything in Python. I have 1 year experience with PyGame, but Raylib seems more lightweight and more performant.

  • @horvathgergely452
    @horvathgergely452 14 днів тому

    way too fast my dude it is really annoying.

  • @carlsonbench1827
    @carlsonbench1827 15 днів тому

    Robot voice is horrible

  • @TristanBiffert
    @TristanBiffert 15 днів тому

    I have been following along with the tutorial and I've been getting this error: ValueError: Cannot scale to negative size traced back to: wall_column = pg.transform.scale(wall_column, (SCALE, proj_height)) anyone have any ideas?

  • @dheerparekh1305
    @dheerparekh1305 15 днів тому

    Bro this is too fast for me ... Is there some other video which explains this is more detail ?

    • @alonepoptart24_6
      @alonepoptart24_6 5 днів тому

      sorry to tell you but this is probably the slowest one

    • @dheerparekh1305
      @dheerparekh1305 4 дні тому

      @@alonepoptart24_6 do you know any videos where the concepts that this guy is using are explained ?

    • @alonepoptart24_6
      @alonepoptart24_6 4 дні тому

      @@dheerparekh1305 he made a tutorial video on opengl which is a bit slower and teaches more indepth concepts

    • @dheerparekh1305
      @dheerparekh1305 4 дні тому

      @@alonepoptart24_6 okay thanks... I'll check that out

  • @paperfrogburger7169
    @paperfrogburger7169 15 днів тому

    thank you!!! I'm making a game where you roam around a menger sponge and this will help me alot!

  • @firstname4337
    @firstname4337 16 днів тому

    should test with pygame-ce (pygame community edition)

  • @osogrande4999
    @osogrande4999 17 днів тому

    robot voices SUCK

  • @subarunatsuki1902
    @subarunatsuki1902 19 днів тому

    This is art. I'm still at a beginner level, but I know how beautifully this code is written. The video is a bit complex for me at the moment, but I'd love to hear about any resources I can learn from :D

  • @damianojeda938
    @damianojeda938 19 днів тому

    is 1 not considered prime?

  • @da6640
    @da6640 21 день тому

    You sound like gpt

  • @JustTechAndCode
    @JustTechAndCode 22 дні тому

    hi will you add collision? Pointerlock? inventory? differnt blocks? nay/night cycle

  • @xTrzca
    @xTrzca 22 дні тому

    Is there anyone that could help me because I am at a lost I’m 15 minutes in with 2 different problems one the controllers are all messed up it doesn’t even rotate and the ray casting goes through the walls

  • @cptfordo6361
    @cptfordo6361 23 дні тому

    13:03

  • @FunWithBits
    @FunWithBits 23 дні тому

    This is really awesome! I have made 2-d prime structures in the past also but never 3d.

  • @cristianocenta2624
    @cristianocenta2624 25 днів тому

    This is incredible... I was exploring the possibility of numbers being "beings", with specific characteristics that make them cluster accordingly - there can be a relation between them that we cannot perceive with our 2D chalk-wall... This is what I was looking for. So glad I found this video! Really amazing job, man.......