Пікірлер
@msmeraglia
@msmeraglia 7 күн бұрын
Look into the Slotmap datastructure to deal with a consistent_id/handle into an array that you can always pack to front where removals and inserts are O(1)
@truestbluu
@truestbluu 11 күн бұрын
this is awesome, though this does make me wish roblox had shader support...
@chudchadanstud
@chudchadanstud 13 күн бұрын
2:27 You're not using the dx, dy parameters
@solidnywonsz
@solidnywonsz 14 күн бұрын
what's the game in background?
@GabrielxC
@GabrielxC 15 күн бұрын
Good work!
@Light-wz6tq
@Light-wz6tq 15 күн бұрын
Nice stuff. Motivating me to get my project going.
@Light-wz6tq
@Light-wz6tq 15 күн бұрын
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
@kinsukaweerasooriya2933 20 күн бұрын
Wow this is what using in Playcanvas game engine ❤
@kinsukaweerasooriya2933
@kinsukaweerasooriya2933 20 күн бұрын
Cool
@joshuathomasbird
@joshuathomasbird 21 күн бұрын
just use rust traits
@harryvpn1462
@harryvpn1462 21 күн бұрын
Does mix() just give the average?
@gabrielecocchieri7588
@gabrielecocchieri7588 22 күн бұрын
thumbnail cringe, heap allocating, casual programmer 🤓
@voidipoyo
@voidipoyo 25 күн бұрын
i didnt understand the math, but it works :D
@ryanlockhart5328
@ryanlockhart5328 25 күн бұрын
0:09 I felt that
@mariovelez578
@mariovelez578 26 күн бұрын
Please do more of these!
@anhi399
@anhi399 26 күн бұрын
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
@jks234 26 күн бұрын
Good info, but one suggestion. Clearer dictation and some effort into improving audio quality. I had to rely on the captions.
@novelhawk
@novelhawk 27 күн бұрын
W vid
@xX_dash_Xx
@xX_dash_Xx 27 күн бұрын
What engine did you use? Would love to mess with shader code
@cient_dev
@cient_dev 27 күн бұрын
No engine, just built it myself with OpenGL for rendering
@stevemcwin
@stevemcwin 28 күн бұрын
This is put together really well. I hope to see more tutorials from you!
@tay7931
@tay7931 28 күн бұрын
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_dev 28 күн бұрын
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
@tay7931 27 күн бұрын
@@cient_dev oh i see, thank you!
@ryanlockhart5328
@ryanlockhart5328 28 күн бұрын
Bro forgot he was using C++ which has multiple inheritance lmao
@colonthree
@colonthree 28 күн бұрын
Since it is exponential/logarithmic comparisons for distance, can't you just use square it...? ;w;
@OkOkOkIMightKnowYou
@OkOkOkIMightKnowYou 28 күн бұрын
Why not just pass an ortho proj matrix and use that to calculate depth? Would that work?
@pugglez4798
@pugglez4798 28 күн бұрын
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
@owencmyk 29 күн бұрын
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
@phoenixstyle 29 күн бұрын
Omg I love that you jhsd the music from the shapez ost! One of my favorite osts
@kicho115
@kicho115 29 күн бұрын
🦍👍
@cient_dev
@cient_dev 29 күн бұрын
winton
@Dougie-
@Dougie- 29 күн бұрын
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_dev 29 күн бұрын
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
@antoinebutterfly8555 29 күн бұрын
I understood nothing but watched the whole thing all the way through 😅
@ilovehumongoushonkers
@ilovehumongoushonkers Ай бұрын
is that shapez music
@cient_dev
@cient_dev 29 күн бұрын
Yessir
@Slicomful
@Slicomful Ай бұрын
subscribing
@Shileds
@Shileds Ай бұрын
Very cool. I hope one day i can apply the information i got from this video.
@MrKaftpaket
@MrKaftpaket Ай бұрын
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
@MrDcx23 Ай бұрын
Subscribed! Thanks for the video!
@MattDog_222
@MattDog_222 Ай бұрын
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_dev Ай бұрын
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_aitel Ай бұрын
I was literally looking for this type of videos. Great job ❤
@ahmedabuharthieh579
@ahmedabuharthieh579 Ай бұрын
Great video! You did well to recreate the effect and also explain it perfectly
@Gary_Yang_Sky
@Gary_Yang_Sky Ай бұрын
Wait, I understood that...
@TheTmLev
@TheTmLev Ай бұрын
`virtual ~IComponentPool() = default;` is a bit better than `{}` due to how compilers might look at this line of code
@cient_dev
@cient_dev Ай бұрын
Good catch, was using it to log deconstruction during debugging but I honestly didn't know there was a difference, thank you!
@HyperMario64
@HyperMario64 Ай бұрын
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
@manniheck2405 Ай бұрын
this is awesome work!
@z3ron3
@z3ron3 Ай бұрын
I've been learning OpenGL for about a year now and this really helped me more than anything. Keep doing this mate.
@PyroWolf90
@PyroWolf90 Ай бұрын
this was really cool, definitely subscribing to watch more videos like this
@MechaKnightz
@MechaKnightz Ай бұрын
suchs good content, earned yourself a sub
@pikolopikolic5567
@pikolopikolic5567 Ай бұрын
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
@tvwatch9669 Ай бұрын
Great video! Super informative and interesting. Also love the editting
@Gouleur
@Gouleur Ай бұрын
Man you're hitting it out of the park! The production quality, the substance! Hope you post more like this.
@codedeus
@codedeus Ай бұрын
Clear, concise, complete and absorbing explanation - Nice style & editing - Quality video!
@ByteSz_
@ByteSz_ Ай бұрын
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_dev Ай бұрын
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