Recreating DOOM in Python. Ep5 - Assets & Texture Mapping
Вставка
- Опубліковано 5 тра 2023
- 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
• Metallica - E1M1 (At D...
Github:
github.com/StanislavPetrovV/D...
#coderspace #doom #python
I'm wrong about the chainsaw model. The chainsaw was a real, fully functional, McCulloch Eager Beaver.
apparently the reason why it was in a bowl was because it was leaking
This series is absolute genius and definitely deserves more atteintion.
So far this series has inspired me to try this project, but in Rust. Thank you so much for these informative videos they are super helpful. Keep up the amazing work!
A snake source port and a crab source port of doom is definelly fun
@vash5556 would you mind sharing code?
This series is amazing, I love your dedication and the in depth work you put in. I can't wait for the next episode!
This is exactly what i tell myself I would do in the morning at 3 am but am too lazy too even start when morning arrives 😂
If you have time, try setting up a laptop at a library and drinking coffee/energy drinks. That's the only way I can keep up with these tutorials lol.
Thanks, it is amazing what tricks ID had to pull to make the games work.
Brillant Video Series, thanks for sharing this awesome knowledge!
Also, please continue the series when you have some time:
Enemies, particles, level selection hub, bosses...
This is such a fantastic series, I'm honestly in awe how this was done 30 odd years ago... Not so much the maths of it (I'm sure, given enough time, I could eventually work all this out) but doing it within the limitations of the hardware at the time is just something awe inspiring. Making all this run on a 33mhz 486? Blown away...
i love you so much please keep making those videos seriously i'm having SO much fun coding with you man
I never realised just how insane the engineering behind this engine was.
Hi Coder Space, I absolute love your tutorials. They are very clear and concise. Any chance you may return to the 3D engine series? I've been waiting to see how you approach transparent objects and maybe selecting objects in space with the mouse. Please, please, continue that series, we really need that! :) great work mate
i love this series so much
Awesome 🔥
Awesome video
Welcome back!
I'm patiently waiting the next parts
thanks very helpful video!
Tech has evolved quite a bit, even just a couple years ago this would have been slow as a donkey without something like a python 2 C compiler (pypy ?), that's awesome! Thanks for the lesson too.
Brilliant series! Need to ask an odd question though - exactly what changes do I need to make to the code to remove all the Numba (njit) functionality - necessary partly because of the python version I want to use and also (and mainly) because I'm going to compile using Nuitka - having real-time JIT functionality in already compiled code probably wouldn't end well! Thanks in advance!!
Very coool!!
👍Awesome!
Have you made your own tools for editing these videos? The typing for example always has the same speed. I love your content keep it up! :)
can't wait for sprites
Hey! Love the series, it has been super awesome to follow. I try to follow along and code while you are showing everything in the video (having the github source for sure helps, though 😉). I did notice that if you stand on the small platform where the armor normally is in E1M1 and turn, there are pink triangles that appear. Unfortunately, I'm not smart enough to understand what the problem is or how to fix it...
thank you, and try in view_renderer.py:
self.sky_inv_scale = 160 / HEIGHT
@@CoderSpaceChannel Sure enough. I noticed that it still happens if you step onto the window ledges (although I realize this isn't part of the intended design). I lowered it down to 100 / HEIGHT, and it seemed to take care of that problem. Not sure of the consequences of lowering it though 🙂
Fails with Python 3.8 because of dict "|=" update operator, I think >=3.9 is mandatory. EDIT: Confirmed working with python 3.9, pygame & numba. Great didatic work man.
How can such a GENIUS implementation have such little likes :( Anyway really looking for a next part.
I still remember how you filmed on your first channel, in Russian. You are one of my favorite IT bloggers
Now we will need a 4gb RAM and dual core PC just to play Python Doom in 640x480. Thanks modern languages
What voice synthesis model do you use for your videos?
Please make another episode and finish the series.
That's nuts that one of my favorite Sci-Fi weapons (The Plasma Gun) is literally the stock and upper of some unknown junky plastic dart gun, lol
@coderSpaceChannel, do you intend to go any further with this?
Siries about this Doom BSP engine is very complex and interesting. I would like to know how implement an enemies, weapon at this technology bounds. Stanislav, please, continue it 🙏.
Now how do you make the door?
The chainsaw was not a toy, it was a real chainsaw used for the sprites. The reason it's in the bucket in that photo is because it was leaking oil.
awosm i did extract orignal textures of doom and remake them with Normal and Bump textures for blender project hope that motivate you make it even better
Very interesting video series :-) What is the license for that Python Doom level viewer on Github that is linked from this video description? I do not see any license info for it anywhere - here or in the Github repository, which means that legally nobody has any permission / rights to even look at that code :-(
MIT license added
@@CoderSpaceChannelAwesome - thank you!!!
I'd love to see similar for Duke Nukem 3D with slopes etc
Hey, Coder Space! You have really cool videos, but I have a question about OpenGL 3D engine. I try to run the code but glm module don't have mat4 and vec3 attribute. Maybe you can help?
oh never mind
Chainsaw used in doom is a real chainsaw, not a toy as you say
it supposed was leaking oil
@@itchywuss3511 yes, i just didn't bring it up here
What's your procedure for redoing Doom in Python? Do you look at the Doom source code, understand how they do this, and then reproduce it with Python to the best of your knowledge?
We will have another videos like making weapons or ai behaviours and that? xd
Geez, there are bright people in this world.
Are you going to show how to program the melting screen too?
That’s rather trivial. Decino has a video about it _(How Doom’s Melting Screen Works)_
The screen transition is triggered whenever the game state changes:
wipe_StartScreen( 0, 0, SCREENWIDTH, SCREENHEIGHT );
Doom has multiple framebuffers. One for foreground and one for background which are combined into a display framebuffer.
The melt screen has 160 columns where each column is 2 pixels wide.
The first column has a unique time delay offset between 0 and -15. Each consecutive column has a random time offset of -1, 0, +1 from the previous column.
Each frame the column timer is updated. Once a column timer reaches zero the column falls down at a fixed 8 pixels/frame.
The melt frame is deterministic due to the 256 entry random lookup table.
will this series continue?
btw, if you just build the convex space adjacency tree, you get all the visible faces for free, for ray casting (inside a convex polygon space partition, you always see the inside walls)
then you get the wall triangle list in absolute order, a convex polygon space is always properly ordered for draw order, same for object meshes inside a convex polygon boundary box
you can traverse all the triangles in drawable sort order always, same for all the objects, in the sectors, being sectors themselves
you can also have adjacency/connected/strip list of triangles in the convex triangle space partition, to get the triangles in connected draw order
assume that objects are never inside others, ie convex spaces and objects, ie, always can be rendered in triangle plane distance order without errors
When are you uploading next episode bro
You should add player pyshics and sprite rendering!
A quantos anos você codifica em python
is the series really coming to an end?
og doom can run on basically everything, this doom can run on high-end machines only.
The song! Where is this song from?!?!?! It sounds like someone used samples of Master of Puppets to recreate E1M1. The link to the video doesn't work and the StateOfMercury doesn't exist. Where is this song from?!?!?!
This cover was performed by @StateOfMercury but his UA-cam channel disappeared
when I come across this video, I have the intention to do something of my own. about the old channel I hope you will come back
I just wish someone would turn the original Doom into a fully 3D game. I don't feel Doom III and Doom 2016 feel like Doom.
Some attempt had been made with modding, but the current map editing tools are just too good so it's still 2.5D.
Your best chance would be a modern Boomer Shooter like Amid Evil
help me pls add mobs in this doom viewer(
Me listening to stuff I don’t understand 👁️👄👁️
haha make doom in ue5 and then ue6 and so on lol
1st haha
Why are you using a computer voice..?
maybe he doesn't have a mic or he doesn't want to use his voice
Will it run on my 486?
Doom's chainsaw was made based on real chainsaw, not toy.
why are you using stateofmercury’s e1m1 on master of puppets rendition? at least credit him, or use a normal one
boring & time waste
The chainsaw wasn't a toy. It was an eager beaver chainsaw.