Пікірлер

  • @chudchadanstud
    @chudchadanstud12 сағат бұрын

    2:27 You're not using the dx, dy parameters

  • @solidnywonsz
    @solidnywonszКүн бұрын

    what's the game in background?

  • @GabrielxC
    @GabrielxC2 күн бұрын

    Good work!

  • @Light-wz6tq
    @Light-wz6tq2 күн бұрын

    Nice stuff. Motivating me to get my project going.

  • @Light-wz6tq
    @Light-wz6tq2 күн бұрын

    I'm making a game engine too, let's go! 🎉 It's not a game but I'm more focused on making a good game engine.

  • @kinsukaweerasooriya2933
    @kinsukaweerasooriya29337 күн бұрын

    Wow this is what using in Playcanvas game engine ❤

  • @kinsukaweerasooriya2933
    @kinsukaweerasooriya29337 күн бұрын

    Cool

  • @joshuathomasbird
    @joshuathomasbird8 күн бұрын

    just use rust traits

  • @harryvpn1462
    @harryvpn14629 күн бұрын

    Does mix() just give the average?

  • @gabrielecocchieri7588
    @gabrielecocchieri75889 күн бұрын

    thumbnail cringe, heap allocating, casual programmer 🤓

  • @voidipoyo
    @voidipoyo12 күн бұрын

    i didnt understand the math, but it works :D

  • @ryanlockhart5328
    @ryanlockhart532813 күн бұрын

    0:09 I felt that

  • @mariovelez578
    @mariovelez57813 күн бұрын

    Please do more of these!

  • @anhi399
    @anhi39913 күн бұрын

    Loved the content in the video--as someone who is interested in using the depthBuffer for more effects, like the intersection shader you demoed, this video was/is a fantastic inspiration. My one issue with my watch was the code jumping around in the background. I think out of focus typing may work, if there was greater contrast between it and the writing in the foreground, but where it got really difficult, and unnecessary, was the page scrolling/jumping around. Happy other people liked the effect but it was a hard no for me--the graphics that you made were cool already!

  • @jks234
    @jks23413 күн бұрын

    Good info, but one suggestion. Clearer dictation and some effort into improving audio quality. I had to rely on the captions.

  • @novelhawk
    @novelhawk14 күн бұрын

    W vid

  • @xX_dash_Xx
    @xX_dash_Xx14 күн бұрын

    What engine did you use? Would love to mess with shader code

  • @cient_dev
    @cient_dev14 күн бұрын

    No engine, just built it myself with OpenGL for rendering

  • @stevemcwin
    @stevemcwin15 күн бұрын

    This is put together really well. I hope to see more tutorials from you!

  • @tay7931
    @tay793115 күн бұрын

    i want to get into game development but then i realise how complex coding languages look to me and i get super overwhelmed lol

  • @cient_dev
    @cient_dev15 күн бұрын

    There are so many engines now that make it so accessible, you don't have to do what I'm doing here! Toby Fox claims to know very little about coding and he went ahead and made Undertale in GameMaker studio

  • @tay7931
    @tay793114 күн бұрын

    @@cient_dev oh i see, thank you!

  • @ryanlockhart5328
    @ryanlockhart532815 күн бұрын

    Bro forgot he was using C++ which has multiple inheritance lmao

  • @colonthree
    @colonthree15 күн бұрын

    Since it is exponential/logarithmic comparisons for distance, can't you just use square it...? ;w;

  • @OkOkOkIMightKnowYou
    @OkOkOkIMightKnowYou16 күн бұрын

    Why not just pass an ortho proj matrix and use that to calculate depth? Would that work?

  • @pugglez4798
    @pugglez479816 күн бұрын

    I just got into OpenGL recently, so it's fascinating learning all the tricks about how things are rendered. Amazing idea, subscribed. Using the difference in depth coordinates before vs after rendering the bubble is clever

  • @owencmyk
    @owencmyk16 күн бұрын

    This is a great video, and I was quite interested in how your approach differs from how I would've done it. I'd like to present an alternative because I think there are a couple flaws with your approach. Those flaws being: - If you placed a sphere centered on the shield, and made it almost the same size, your approach would make the shield light all around despite there being no intersections because of how it uses the depth buffer. - Viewing objects at 90 degree angles makes them not be outlined properly Here's what my approach would've been: - Render the scene like normal - Render a second scene where the shield is opaque blue (textured with noise if desired) and everything else is solid white, only drawing depth for the shield itself. This could be done more quickly when you realize you don't actually have to render anything other than the bubble, you can just render the bubble on a white background using the depth buffer as a mask - Blur the shield render - Blend the normal and shield render using the depth mask of both renders That way the white from the second render would sorta bleed out around the edges of the object, and the blur step, or colors of the render could be customized to make it stronger or less strong. Of course, I don't mean to suggest this method in bad faith. Your approach is probably still better due to the following flaws of my approach. - Being screenspace, it has the potential to look really weird and not exactly 3D in some cases - Blurring will cause corners to be abnormally bright in comparison to what you might expect - If you wanted to texture the bubble you'd have to render it again because the blur would get rid of any detail, unless you specifically wanted a blurry texture - Objects far in front would still have an outline, which is kinda a REALLY big problem and the main reason why I think your approach is much better. Possibly solvable by some fancy depth stuff but I can't think of a method of ignoring things close to the camera without causing there to potentially be holes in walls I just wanted to suggest another method as I think it could add valuable insight to anybody who wants to achieve this effect.

  • @phoenixstyle
    @phoenixstyle16 күн бұрын

    Omg I love that you jhsd the music from the shapez ost! One of my favorite osts

  • @kicho115
    @kicho11516 күн бұрын

    🦍👍

  • @cient_dev
    @cient_dev16 күн бұрын

    winton

  • @Dougie-
    @Dougie-16 күн бұрын

    What's the benefits of storing the data in separate lists when all lists contains data for all entities instead of baking it all into one entity struct? Like the Move function. Why read physics and transform from their lists when they just be part of the entity itself?

  • @cient_dev
    @cient_dev16 күн бұрын

    Doing this means every entity would need every component in the entity struct, even if they don't use said component, which would become a memory burden as more and more components get added. There are ways to instead have one massive list which contains every component, laid out in a specific order for the fastest possible traversal, but it's pretty complex and honestly I don't think I need that level of efficiency for a basic ECS. This is just my compromise between ease of use and speed.

  • @antoinebutterfly8555
    @antoinebutterfly855517 күн бұрын

    I understood nothing but watched the whole thing all the way through 😅

  • @ilovehumongoushonkers
    @ilovehumongoushonkers17 күн бұрын

    is that shapez music

  • @cient_dev
    @cient_dev16 күн бұрын

    Yessir

  • @Slicomful
    @Slicomful17 күн бұрын

    subscribing

  • @Shileds
    @Shileds17 күн бұрын

    Very cool. I hope one day i can apply the information i got from this video.

  • @MrKaftpaket
    @MrKaftpaket17 күн бұрын

    This video is incredible, wow! Great explanation and great visualization! Thank you for sharing this with us, this has inspired me to try to implement something similar :D

  • @MrDcx23
    @MrDcx2317 күн бұрын

    Subscribed! Thanks for the video!

  • @MattDog_222
    @MattDog_22218 күн бұрын

    confused webdev + ovewatch player here - honestly watched the entire before seeing how few subs you had. This was very high production quality and one of my favorite parts was how you showed just random code writing from the project as the unfocused background while focused on a particular snippet. Similar to those goofy subway-surfers-background videos because everyone has a negative attention span.

  • @cient_dev
    @cient_dev18 күн бұрын

    Lmfao I love it, I added the coding in the background as a last minute decision because I was zoning out when reviewing the video. Tiktok destroyed my attention span

  • @abraham_aitel
    @abraham_aitel18 күн бұрын

    I was literally looking for this type of videos. Great job ❤

  • @ahmedabuharthieh579
    @ahmedabuharthieh57918 күн бұрын

    Great video! You did well to recreate the effect and also explain it perfectly

  • @Gary_Yang_Sky
    @Gary_Yang_Sky18 күн бұрын

    Wait, I understood that...

  • @TheTmLev
    @TheTmLev18 күн бұрын

    `virtual ~IComponentPool() = default;` is a bit better than `{}` due to how compilers might look at this line of code

  • @cient_dev
    @cient_dev18 күн бұрын

    Good catch, was using it to log deconstruction during debugging but I honestly didn't know there was a difference, thank you!

  • @HyperMario64
    @HyperMario6418 күн бұрын

    Great video, very accessible. Pleased to see your thorough explanations going into NDC and clip space. In my opinion this is a great example to learn about many aspects of graphics programming at once. Screen-space effects are the backbone of all modern real-time renderers.

  • @manniheck2405
    @manniheck240518 күн бұрын

    this is awesome work!

  • @z3ron3
    @z3ron318 күн бұрын

    I've been learning OpenGL for about a year now and this really helped me more than anything. Keep doing this mate.

  • @PyroWolf90
    @PyroWolf9019 күн бұрын

    this was really cool, definitely subscribing to watch more videos like this

  • @MechaKnightz
    @MechaKnightz19 күн бұрын

    suchs good content, earned yourself a sub

  • @pikolopikolic5567
    @pikolopikolic556719 күн бұрын

    this is a fantastic video, and you explained z linearization so well. I have been confused about that exact topic for years, and you just pulled me out of that confusion

  • @tvwatch9669
    @tvwatch966919 күн бұрын

    Great video! Super informative and interesting. Also love the editting

  • @Gouleur
    @Gouleur19 күн бұрын

    Man you're hitting it out of the park! The production quality, the substance! Hope you post more like this.

  • @codedeus
    @codedeus19 күн бұрын

    Clear, concise, complete and absorbing explanation - Nice style & editing - Quality video!

  • @ByteSz_
    @ByteSz_19 күн бұрын

    Very good video! Really thought the visuals, diagrams, and editing helped succinctly give a good idea of what an ECS is for those unfamiliar. Just wanted to clarify one thing for others and the future. Data Oriented Design is not actually packing data close together, keeping objects in memory linearly is tight packing and linear memory iteration/access. Data Oriented Design is the concept/practice of keeping all data isolated in objects, without any logic, and having functions (usually global functions) operate directly on that data from other sections of code.

  • @cient_dev
    @cient_dev19 күн бұрын

    Thank you! :) I just did a quick search and the definition seems muddy, from what I understand Data oriented Design is designing for cache friendliness, while Data Oriented Programming is what you described. I could be wrong though

  • @ygypt
    @ygypt19 күн бұрын

    its a shame that most people who talk about ecs talk about caching performance. unless youre making a AAA game, caching will not help you. it didnt matter when you were using oop in unity, it wont help you now XD. but omg ecs makes so many headaches go away its brilliant

  • @cient_dev
    @cient_dev19 күн бұрын

    I agree. I'm working on a video to solve a couple of the problems that remain in this implementation, but at the end of the day, I'm not out to beat EnTT or DOTS; I just want to make a decent ECS for my game

  • @FarSam25
    @FarSam2519 күн бұрын

    Amazing, thank you!