I cant wait for the next video where he scraps the entire codebase and restarts from scratch!
@MishaHivemind Жыл бұрын
using scratch!
@stathiskapnidis9389 Жыл бұрын
I'm waiting for a "making doom over 24 hours again" video
@divine203 Жыл бұрын
Don't give him ideas
@jdh Жыл бұрын
next one is gameplay, I promise
@Plexxl Жыл бұрын
@@jdh If you don't, put my comment up at the start of the next video and say how I was correct. Deal?
@thirteen3678 Жыл бұрын
Ah, of course. The bi-monthly developer tradition of scrapping everything you did, just to redo it.
@telnobynoyator_6183 Жыл бұрын
actual and factual
@mikolmisol6258 Жыл бұрын
I try not to do that nowadays. It doesn't matter that the code is atrocious - if it works, it means I can actually progress and get other parts of it done rather than keep refactoring. But it's one of the hardest lessons to learn, especially on a project where you are your only boss. 😅
@plebisMaximus Жыл бұрын
@@mikolmisol6258 Doesn't have to look pretty as long as it works. If you do messy code for work, you got job security as nobody knows shit about what you just made. If you do it your spare time, nobody can steal your secrets as nobody can read your spaghetti. Writing awful code is the meta.
@biohazard2869 Жыл бұрын
@Plebis Maximus LOL. Great point.
@anon_y_mousse Жыл бұрын
@@mikolmisol6258 The struggle is real.
@eformance Жыл бұрын
I realized while watching this why Portal has an amber and blue glow around the portals. It's VERY hard to visually distinguish a portal without having those decorations.
@clonkex Жыл бұрын
Weirdly, you get used to it. I spent a while working on a portal clone some years ago and it trained my brain to be able to recognise portalling planes and reason about the broken geometry much more easily. Not useful for a real game, of course, just an observation.
@익명345 Жыл бұрын
@@clonkex know the skill will never be useful in life but I now want to have expertise in portal recognition.
@sircalvin Жыл бұрын
@@익명345 youll just be walking down the street and suddenly be like "ah shit" when you realize something is a portal
@clonkex Жыл бұрын
@@sircalvin lmao exactly
@fantastikboom1094 Жыл бұрын
@@sircalvin No more falling into backrooms
@Vixeneye1 Жыл бұрын
I'm about half way through this video and I wanted to say something. I can honestly respect that you are capable of seeing an insurmountable problem and rather than spent 40 years kit bashing it together, you seek better solutions. Love your dedication to just creating cause you can. I'll always watch your videos because they're always so inspiring.
@onyxtv5745 Жыл бұрын
Really cool vids like always ! It's a big inspiration to watch someone being able to code such projects and have fun !
@Banjoei Жыл бұрын
What's funny is that GZDoom does have portals, they're used in MyHouse for the non-euclidean effect
@str0680 Жыл бұрын
Yep, you can even see that you get teleported when going downstairs if you look up, the top floor disappears. I was just messing around in Ultimate Doom Builder and made some seamless stairs and 2 floors, you can even look back up and see both floors at the same time.
@Banjoei Жыл бұрын
@str0 That's only in the first house though, to make the map seem more amateur than it is, and that's actually a line teleport instead of a portal. but when the house becomes altered the stairs are actually seamless.
@str0680 Жыл бұрын
@@Banjoei I heard people say it's to make it look amateurish, but you couldn't really use a portal at those stairs because linedefs are infinitely tall, so he would have to put something above the staircase to cover up the paper thin portal which would obscure the top floor.
@catattackmakesmusicsometimes Жыл бұрын
@@str0680 he also could've just used a floor portal at the stop of the stairs though, and nothing amateur like that shows up later on. it seems pretty intentional, but maybe it was an artifact from being one of the earlier parts of the map before he learned more about how it works
@Banjoei Жыл бұрын
@@str0680 they did use a portal in the stairs in the second house though
@soviut303 Жыл бұрын
I like how you made that circular pit shape in your test level that choked the Doom engine during its development until they implemented BSPs.
@jdh Жыл бұрын
good catch :)
@fish3443 Жыл бұрын
E1M2 is crazy
@nikotheoneshot Жыл бұрын
god, the shapes of the maps he's drawing are too hard for my just-woke-up brain to handle
@btarg1 Жыл бұрын
This engine looks SO COOL! I can't wait to see what you create with this!
@monsoon835 Жыл бұрын
you're easily the most talented indie developer on yt when it comes to coding and shit, keep it up
@treytomes Жыл бұрын
That was great! I'm a little disappointed that you abandoned the ray-casting engine, but I get you actually wanting to build a finished game this time.
@cheesepop717528 күн бұрын
The old engine doesn't even use ray-casting
@Zettabit7 Жыл бұрын
These portal setups are giving me some strong Antichamber vibes. Very cool.
@TheAsuro Жыл бұрын
I'm currently implementing the same code for oblique clipping planes that you mentioned, and it did give me a boost of confidence that you struggled with it too! It's very hard to figure out what's going on if something is wrong.
@jdh Жыл бұрын
I had a lot more issues with it than I showed in the video 😅 I spent a few hours trying to debug my initial implementation only to find out that I hadn't read the last few paragraphs of the paper and had missesd the (very important) step of scaling the near plane such that the far plane doesn't get too messed up. oops.
@Tigrou7777 Жыл бұрын
Trivia: Duke3D has also used portals (or at least something very similar): mirrors are implemented by rendering the level as if the camera were behind the mirror, looking into the room where the player is standing. If you walk through them (with a noclip cheat), you'll see a "copy" of the level, with everything reversed horizontally.
@Roxor128 Жыл бұрын
Only works in v1.3D, though. Things just get all smeary if you try it in the Atomic Edition.
@Tigrou7777 Жыл бұрын
@@Roxor128 I checked what you say and this is correct. I think the reason is that 1.3D required to have a big room behind mirror while in 1.4 that requirement was removed. Anything behind mirror will be ignored (so all you will see is HOM)
@JustinBA007 Жыл бұрын
Bungie's Marathon actually has a lot of non-euclideon geometry within the game. It was the first FPS game that could have multiple floors over the top of each other, and the way they did it was actually by using portal based rendering. And instead of hiding it, there are multiple places within the campaign where you can find hallways that come from nowhere.
@Urammar Жыл бұрын
Dude I was JUST thinking I wonder what happened to this, and I check and see 25 mins ago you posted this. Noice. Its very inspirational to see your work!
@Skeffles Жыл бұрын
Love the video! It's awesome seeing how these portals come together and how they create weird geometry.
@quaker57122 ай бұрын
I'm loving these engine tech videos. I like how you explain stuff well enough for others to implement themselves without bogging the video down with long code sections. One trick Sebastian Lague did for fixing the near clipping plane issue was to extrude the portal face into the wall a bit so the portal is more like the inside of a box than a flat wall. That was with Unity and render targets though instead of the more direct stencilled rendering I think you're explaining so I'm not sure if that helps.
@Gwilo Жыл бұрын
if you were asked to build a shed, you would plant some trees with acorns you couldn't buy but could find, wait for the trees to grow, use the wood for the walls, go mining for the metal, build a furnace from your own gathered clay/bricks and then finally finish the task that could have taken you a few weeks, but you had to do everything yourself and take several years to do. you are not re-inventing the wheel, you are merely making your own rubber, cast, rims, etc.
@Console.Log01 Жыл бұрын
you'd learn everything there is to know about how to make a shed though, which undoubtedly makes you better at making sheds further down the line.
@christianheidemann3829 Жыл бұрын
Funny that the comment in the OpenGL Forum (11:45) came from Eric Lengyel. He's the guy behind the "Foundations of Game Engine Development" books.
@Mr.Postal7 ай бұрын
I hope that we can use the code too to also make a game. Because i have the same dream like u had here too, thats why u got recommended too
@jumbledfox2098 Жыл бұрын
I literally yelped out "YESS!!" when i saw this video!!! been waiting so long for it!!
@koskenkorva123 Жыл бұрын
Guess what! I've got a fever, and the only prescription is more portals!
@EmApex Жыл бұрын
This is the first video of this project I've seen so apologies if you already have something in mind for this, but the first use case for these portals I thought of was to solve the room over room problem. You could fake overlapping rooms using portals by having them in different parts of the map but connecting them in a way that seems seamless to the player
@DeathByFilmStudios Жыл бұрын
Yes, that's how the build engine did room over room (duke 3d, blood)
@EmApex Жыл бұрын
@@DeathByFilmStudios huh, I had no idea
@neskey Жыл бұрын
my man out there scrapping codebases because he's bored, imagine how many full-time computer engineers wish they could do this
@clonkex Жыл бұрын
13:53 For these problems, I found the easiest fix is to "tophat" the portal plane. When the camera is within some close distance of the portal, expand the plane into an open-fronted cube. In other words, move the plane backwards along its normal (away from the camera) and add sides, a ceiling and a floor, all rendered as portals. This fairly easily solves the near-plane issues. even for quite large near-plane distances. I have a tonne of useful links in a Reddit post from a while ago. I'll include that in a reply here to try to avoid YT eating it.
@JuanMorales-bv7qr Жыл бұрын
interested to see this!
@formulaetor8686 Жыл бұрын
You're so cool bruh. I always wanted to do these things but end up with all incomplete projects. Sucks to be me but you're amazing man.
@jdh Жыл бұрын
I have ton of incomplete projects as well! nothing to be ashamed of, that's how you learn. just have to keep at it :)
@formulaetor8686 Жыл бұрын
@@jdh Yeah I guess you're actually right. I got motivation to get my personal projects done!. Thanks!.
@mxc_clips Жыл бұрын
I think it would be awesome if you made video on maybe your journey getting to the point you are at now with your development skills. I noticed on one of your streams that you mentioned that you didnt go to university, and I always find it interesting/helpful seeing other developers journeys.
@impracticalKim Жыл бұрын
Thats really cool, you could almost model MyHouse with these portals
@lop0159 Жыл бұрын
You are such an inspiration to me, You are a coding magician
@sphelx Жыл бұрын
This is really impressive that you've managed it all by yourself (okay sure, external libraries, etc, but still!) Well done! Impressive stuff :)
@TECHNOJESTER Жыл бұрын
I was writing a little primitive C++ SDL2 OpenGL (glew
@MikeDawson1 Жыл бұрын
you kind of remind me of me... I grew up on Doom, made lots of levels in the DOS WadED level editor when I was a kid. Had Doom books in elementary/junior high school. Recently read the Doom Black book several times. Working on my own game engine, got decently far, then decided to start over from scratch again. Now that I'm decently along I'm already thinking of the next version... I think that working on game engines and using them for creative coding might just be more fun than trying to make an actual game and I need to accept that!
@FA18_Driver7 ай бұрын
Dude in all honestly, I think you’re a genius. Like a once in a generation genius, like a A Beautiful Mind. John Neumann. I watch your videos and literally my jaw drops at your skill in logic and programming. You’re by far the best I’ve seen. Paired with your great narration and editing, audio comping, and precise mastery of language makes your videos S tier. Thank you for giving me a look into the mind of a genius, to me you’re a wizard and what you do is magic. To think this in your mind and make it reality? You inspire me. Thank you.
@mcfleen7593 Жыл бұрын
this is gonna be a crazy speed game
@Fiendzy Жыл бұрын
To that comment about y-sheering, I actually always enable that effect in old game engines if it supports it; Gzdoom, dark forces source port etc: it’s strangely nostalgic for me
@idkbruh173 Жыл бұрын
the color scheme in 14:48 is really nice would be a cool (and very unique) palette for a dystopian fps portal game 😉
@jdh Жыл бұрын
I always thought it looked quite Antichamber like :)
@onetapmanbbr Жыл бұрын
shoutout to my bro Ominous Black Pillar always there to support your creations🔥🔥⬛
@moorane_ Жыл бұрын
I love non euclidean geometry like this. reminds me a lot of antichamber
@setlarketlar6048 Жыл бұрын
praise God he has uploaded
@transientwaveform1475 Жыл бұрын
I happen to be implementing stencil buffer portals in a Doom source port at the moment! Great video
@frostymcfrosts2831 Жыл бұрын
I love how I understand nothing but still enjoy the video😂
@morsintus8323 Жыл бұрын
jdh: makes hot code reloading for C Also jdh: refuses to elaborate Also also jdh: Disappears for 3 months
@reinhold16165 ай бұрын
you can use dlls to make hot code reloading in C
@MrMateloi Жыл бұрын
I swear these videos just keep getting better
@TheGrimravager Жыл бұрын
you're insane in the best way possible this was amazing to watch
@unknowngamedev909 Жыл бұрын
can't wait for the next video where you scrap opengl and use dx12
@SidewaysCytlan Жыл бұрын
Faen. Du er dansk! Quite impressed with the work you've done, and the style of presentation. It's the kind of nerdy humour I love! Looking forward to next time!
@moosetwin Жыл бұрын
there's been a lot of good portal "remakes" recently, from the N64 port, to this
@LaneBeScrolling Жыл бұрын
wad I wouldn’t give to play this at myHouse!
@Nobleoasis27 Жыл бұрын
I literally just came back to your channel after over a year and you've just uploaded.
@Urammar Жыл бұрын
3:05 I think this is a mistake, to rotate level geometry(many points, potentially hundreds if your game is scaled to a full future fancy production). A much more elegant solution is to make a virtual player camera and translate that against the relative wall position. That way the camera is 'looking in' through the wall on the far side of the map, and you take those instructions from there on out and use them for the regular rendering for the actual player(having the portals being a special last geo pass). You can virtualize a 'room' that is connected/portaled to the destination portal that the virtual player is 'inside of' (in data) for occlusion culling if the engine requires it, also. This would be ultimately be drastically more performant. (Especially if you wanna channel your inner Carmack, haha, we gotta get this running on a 386 mate, we aint duplicating and rotating whole levels, here, we gotta get them 1993 game awards!)
@Urammar Жыл бұрын
Alright nevermind, turns out it was all scrapped and *almost* literally that was implemented anyway. Well done mate, very impressed!
@jdh Жыл бұрын
good intuition, though that approach only works in "real" 3D though - there's no notion of a camera in the fake 3D/2.5D software renderer, only a screen to fill with pixels. Performance doesn't degrade through portals either as it's the same as if the sector were there in the first place and the geometry is transformed on-demand (whenever a sector is read for rendering it gets transformed by the previous portals). but yes that is basically eventually how it ends up getting implemented since the matrix multiplication happens essentially for free when using the GPU anyway, plus there's no other way to conveniently transform mesh data.
@Urammar Жыл бұрын
@@jdh Thanks for the thought out response! It wasn't quite what I was saying, though its all academic since you're rasterizing triangles now anyway. For whatever its worth, im well aware that this is actually rendering in 2D(ish). My point was more that transforming verts, while fairly fast im sure, isnt free. Consider if behind the portal was a very complicated room structure: Even if you arent drawing that in the end, you have to transform it, regardless. The point was that if you leave that surface to last, you can then virtually transform the screen (i called it a camera, same difference) to that location and finalize the rendering with that section of the screen as though you were actually on the other side of the world, same trick as you ended up using, basically. Rather than moving and duplicating virtual geo, you just move the virtual player and finalize the render in a single, simple and computationally light pass, no real faffing about required to boot! In short, dont move the whole map, just move the player. "Theres only pixels to fill" is exactly *my* point! You dont have to render like you are physically constrained! Just do two passes with a special condition to leave the screen space of the portal to the 2nd pass, and fill the final screen percentage with the 'correct' faked portal perspective.
@Urammar Жыл бұрын
Basically, you handle all potential occlusions from the other portals incorrect side by injecting a fake volume on the side the virtual player is on that also has this portal as the wall. That gives you a clean render, with only the portal to draw, and then you draw from there as per normal, finalizing that gap. No world transforms no duplicated geo, no latency. Just a couple of very simple operations.
@Urammar Жыл бұрын
@@jdh Okay I cant even let it go, I wanted to make it clear how this works hahaha so I made a video as any sane person would. kzbin.info/www/bejne/sKu3pIFohdhohas Thats the quick explanation. Well done yet again!
@sardinemeowstein Жыл бұрын
What a coincidence, I just watched the first video just a few hours ago! I live this.
@Optimus97Ай бұрын
"Portals that I mentioned earlier, portals portals"
@BiyaPore Жыл бұрын
These portal setups are giving me some strong Antichamber vibes. Very cool.. These portal setups are giving me some strong Antichamber vibes. Very cool..
@andressepter5 ай бұрын
Comgarats! You created something that enables level designers create a totally frustrating living hell to players.
@MatheusLeston6 ай бұрын
14:40 "Than we have your classic infinite stairs, very non euclidian, very confusing."
@PamelaKivi7 ай бұрын
"But i always think they are missing something, portals" Doom teleporters: DO I NOT EXIST??
@Hennesg Жыл бұрын
heres me praying you get into modular synthethis and design eurorack modules. Your programming skills are crazy
@lassipulkkinen273 Жыл бұрын
This is starting to look really similar to something I was working on about a year and a half ago. And it had procedural generation, too, though mostly boring with the occasional infinite tunnel. Ultimately I drove myself crazy trying to do shadow volumes across portals, and moved on to other stuff.
@johnjuanjoaojjj Жыл бұрын
This game marked my teenager era using computers in 1998. I was happy at that time and I didn't know...
@skeleton_craftGaming Жыл бұрын
All doom ports that are newer than zdoom already have both portals and non -euclidian geometry [well, I mean not technically, but you can use portals and silent teleporters in really screwy ways that make it seem like it is non euclidean]
@skeleton_craftGaming Жыл бұрын
The of course, if you want to make a dynamic portables that probably would be really tricky to do with the z-script. I mean I think we'll be possible though. But it would definitely have to be the whole wall. I think that would be possible though.
@skeleton_craftGaming Жыл бұрын
And also what you're doing is still really really cool
@felixklinge5571 Жыл бұрын
Very cool tech! I wonder if you explored the idea of moving the software renderer into a compute shader + upgrading it to a fully 3d renderer...Although that certainly wouldn't have helped with debugging. Quite the contrary actually 😅
@real1cytv Жыл бұрын
Bro just casually mentioned he has hot code reloading for C. As a sidenote. WTF
@jeanvaljean1893 Жыл бұрын
I'd be very interested to learn about your (neo?)vim setup : could you elaborate on that in the future ? Maybe in a specific video because I'd guess it wouldn't interest everyone ?
@preistoriaanimation4658 Жыл бұрын
I can't wait to finish the video, I Remember the last one, super interesting by the way
@ALLenROOK Жыл бұрын
I have never seen a game with such an impressive concept. This could be legitimately amazing. No game I have ever played has successful non-Euclidian elements. You can think of almost any idea imaginable with the engine!
@barterjke Жыл бұрын
The single time I felt smart while watching this video is when you mentioned triangulation. This one i actually implemented in the uni
@litterbox019 Жыл бұрын
finally, after so long, we're getting antichamber 2
@smellthel Жыл бұрын
I’m already loving the game’s vibe
@YRBYD Жыл бұрын
I laughed my ass off when you resurrected GLU. Love it
@CiY3 Жыл бұрын
why didn't I get this in reccomended? the algorithm has it out for you , pal.
@tymek200101 Жыл бұрын
I would kill for a tutorial in Hot-Swapping code in C or C++
@NostraDavid2 Жыл бұрын
That would be pretty cool! I remember Overgrowth hot-reloading their scripts (and or source code, I can't quite remember).
@jdh Жыл бұрын
the source is here github.com/jdah/reloadhost but it doesn't really explain how to set up linking and making sure that functions are reloadable. I'll have to talk about it on a stream at some point I think :)
@saivishnu725 Жыл бұрын
17:15 minutes of not understanding a word but still looking at it with wow
@frostymcfrosts2831 Жыл бұрын
This video has been out for 3minuites. I am pretty sure you haven’t had the time to watch the whole video
@saivishnu725 Жыл бұрын
@@frostymcfrosts2831 i did watch it later on.
@Kyanoxia Жыл бұрын
Welcome to my badly explained bug fix! You made your portals pull the player through them to avoid certain camera issues (and I assume the infamous "Infinitely teleporting character" glitch). I would like to propose a solution to that. Rather than having the portal be a flat square, make it a box intersecting the wall. All sides of this box would render according to the geometry of the world by the exit portal. Once the player intersects the front quad and fully enters the portal, teleport them then. This would allow the player to freely stand in the seam of the portals, without any camera issues, and it would fix the teleport glitch. I am unsure how much of that you understood, and even if you did understand it, I'm not sure how much of it you'll be able to implement. Until next time, that was "Badly Explained Bug Fix"!
@N3mo_Ahead Жыл бұрын
This is great! Cant wait for the next update!
@augustingavrilovici8951 Жыл бұрын
The "banana gun" you made in Part 1 is actually the portal gun from, well, Portal! You thought back then we weren't going to notice, but I played Portal and so I know what the damn f**k it actually is.
@scorcism. Жыл бұрын
i dont understand anyof this but i like to watch so im always here
@aaro1268 Жыл бұрын
jdh: "The effect ends up being seamless because there are no clipping planes to deal with like there would be in a real 3d renderer" The seams: [exist] 4:28
@sheepishly6942 Жыл бұрын
Finally, Petscop 2
@gedaliakoehler6992 Жыл бұрын
Super awesome. Love this series!
@jazzy1159 Жыл бұрын
Love the vids, but I've never heard someone pronounce Godot Go-dot, I've always heard go-doh
@zmemes69 Жыл бұрын
you must be the most dedicated computer scientist in this platform
@1gnore_me. Жыл бұрын
the plot twist 6 minutes in had me at the edge of my seat
@tacomies Жыл бұрын
I wish you uploaded more frequently but I also get why you don't, this is amazing
@chandrasekarang948 Жыл бұрын
Next I want you to build an analog computer that runs pong.
@Davi_Dash Жыл бұрын
From wolfenstein > Doom > Quake , like things should be .
@gertiethebus Жыл бұрын
Imagine making windows 1.0 from scratch that is so hard
@Ilovecarrot Жыл бұрын
I am relieved to know that this man is alive.
@Jachii9 Жыл бұрын
if the cat isn't gonna be an enemy in the final game im gonna go feral
@MrOneanddone91 Жыл бұрын
Is it weird that I have no clue what the hell this guy is talking about but still find it fascinating anyway?
@tomoli1 Жыл бұрын
Literally watched the previous video just a hour ago, let’s go 🤩
@agedplato Жыл бұрын
This is bringing back PTSD from antichamber
@pascalthiele5719 Жыл бұрын
Excellent work, if that means anything coming from a random chatter on the internet. Your software renderer in particular is interesting to me, because the only significant advantage graphics processors seems to have is performance. Software renderers do not rely on the more frequently changing graphics processor architure and therefore are less likely to break in the future, they can make use of the advanced branch prediction of the central processor and are more logically flexible. Especially since it has been multiple decades since software rendering was common, I would have liked to see what game quality your crafty fingers could have squeezed out of the central processor. Good luck with your game nonetheless 🙂
@fantastikboom1094 Жыл бұрын
Dаmn that's looking cool. Now what about mirrors and a support of alpha textures? Would be cool to see those implemented, and maybe full 3D editor (tho it won't be DOOM anymore, more like Quake).
@Banzai8th Жыл бұрын
This is something I've been interested in doing myself. Good luck! Are you planning on using a layers paradigm or node based one? I think the latter could definitely help set this project apart.
@B00h44 Жыл бұрын
Thanks to this video I’m rid of my imposter syndrome. Now I just feel perfectly inadequate instead.
@newstart369 Жыл бұрын
I like watching what I don't understand and not understanding :)
@eboatwright_ Жыл бұрын
This looks aaaawesome!
@moth.monster Жыл бұрын
i made a portal effect by just making it so there's an extra copy of everything visible through the portal behind it