I don't think your video editing skills gets talked about enough. The fact that you can make a 10+ min video on in-depth programming architecture and design cool and compelling and hip-hop even makes you stand out so much from the rest of the field.
I've spent a week trying to get a neural network to work. It can currently act like an OR operator. For week 2 I hope to make it act like an XOR operator.
@@puppergump4117 Way to go. Before you spend too much time on a unsolvable problem: Neural networks without hidden layers (i.e. just input and output layer) are mathematically incapable doing XOR with most activation functions.
@@vincviertytaccount2608 Don't worry, I first tested the net by adding a few million neurons and many hidden layers. Now I'm just repeatedly watching statquest and trying to get the math down.
I'm always interested in people who go this route, instead of using something like Unity. I'm not saying they're wrong! Just curious about the motivation. It's like if someone wants to learn guitar, and they go out and chop down a tree for wood, melt some iron ore down for strings and frets, etc. But everyone has their hobbies and interests of course!
@@Official_KC Your analogy doesn't really make sense. I don't see how building your own engine is akin to wanting to learn guitar despite doing x things that are unreleated. It seems like to me, he is passionate about game development but at the same time, wants to understand how exactly his favorite games are made (which mind you use their own proprietary engines). Hope that makes sense.
@@Ready4Whatever Because learning a guitar and chopping wood are two completley unreleated things. Whereas making your own game engine will give you more skills and knowledge about how a game engine like Unity works and will also help you in the job market. No one's saying you should do that if you just wanna make games. I don't see how you didn't comprehend the disconnect.
Your editing is so good!! I'm here struggling with blueprints and c# in unreal and unity and you there are making your own game engine!! Kudos to you man!
Honestly, these videos are amazing. I usually don't comment on videos but the work you're able to do always shocks me. Keep up the great work, can't wait for the next update.
Man this looks amazing and I love to see the process/troubles your encountering I have a few questions: At 10:55 you started mentioning about the particles that appear when you chop a tree and that you wanted to have 1000 particles which was not possible, are you running your particle system on the GPU? or are each individual particle it's own entity that the CPU needs to work on? Same question for the leaves of the tree are they individual entities handled by the CPU? My other question is what platforms can your engine run on? I ask because thanks to the introduction of the Steam Deck I predict that Linux gaming will start to take off and perhaps consoles will start to make their own Linux distros in the future. That's why when I see someone making their own engine I ask if it can run on Linux.
(for now) the leaves are one mesh that are rendered by the model manager for all tree entities through instance rendering - the renderer/entity system are (relatively) decoupled in this way :) Particles are individual entities (also for now) because I wanted to be able to maximally control their behavior (collision, movement, etc.) in these early stages of development. Will for sure be considering GPU-based particle systems later on, but for now it’s not worth the time when I don’t have a clear spec of what the system needs to be able to do. also it isn’t a bottleneck (yet). The engine is extremely cross platform! It uses BGFX which can run on Vulkan/Metal/OpenGL/DirectX and the rest is just some stdlib-depending C++, so as of right now there are no limits on platform. Though I imagine some things would have a to be (minimally) changed were I to start targeting windows, Linux, etc.
I get amazed by the work you are doing while making the games, most of the time I can't really tell what's happening, but at least it inspired me get into gamedev(yet with unity). Also I love your editing style, and the fact that you put StackOverFlow as a whole into the resources section.
Greate video thanks. I think the OOP approach for this inheritance problem is Strategy Pattern. Basically implement the behaviour example "Fly" and inject to the class the kind of implementation you want (PlaneFly, BirdFly... etc) and even at runtime you can change the behaviour if you want.
Can't wait for you to go from EC to ECS, whereby you move the logic off each component and into systems which act on sets of components. It makes the components WAY more composeable, brings literally all of the performance benefits (you don't get those with logic per component), and is really interesting to think about and design barriering and system execution dependency trees.
Holy shit, that looks *a m a z i n g*! Definitely keeping an eye on your channel, even though my brain is waaaay too smooth to understand at least half of what you're talking about! Keep it up, brother!
I literally have been checking my notifications and your channel every day to see if you uploaded. Thank you for creating such amazing content that drives me to this madness!
Always remember: memory is cheap, time is not. If you can precompute something and store it in memory, do it. I'm hoping that's what you did with your leaf placement when you said you optimized it. Because even the 5ms algorithm can stay inefficient if you just use it to precompute the data. You'll save time on having to optimize code, and then your leaf placement will scale as fast as your memory bandwidth (which is about as scalable as you can ever hope for). And if randomization is your concern, you can still precompute enough random variations to fit in even a single cache line such that you would never notice a pattern. So, unless you managed to get that 5ms algorithm to like double digit MICROseconds with a full world of trees, just use a few extra KB of memory and have them precomputed!
1) This man is better than most of us at programming. 2) This mans is better looking than EVERYONE of us by A LANDSLIDE (at least 99,9%) I feel like a failure
Remember the tetris os ? It would be really cool, if you would make a operating system with ONLY c++ and Assembly without a single line of C code. BUT just to run the Minecraft Clone.
I reckon a short blast of all the leaves from a tree as its destruction particle animation would look pretty sick (assuming such is not already in the works)
I recommend you to make player and mobs models way cooler by making them stretch in-out a little when they're moving. this will make world more alive. urw.
dude I've never waited to someone to post a video or any kind of post, but little do you know, I was waiting for an update from you! Keep up the good work.
Love your videos, the minimalistic and clean editing, the nerdy, nitty-gritty details, everything! At this point, I'd say upload more often, but videos like yours take time to make.
If your goal is to make a successful video game and you achieve that by making a game that lots of people will willfully give their free time to then you've made it. Nobody is going to care about the fact this guy made his own engine this is an exercise in procrastination if the goal is truly to make a dream passion project video game but evidently it's about getting views on a youtube video and receiving praise from random strangers on the internet. Great job you did in a month what someone could have done with an engine in a day.
I started game dev by using the Godot game engine, but I just can't use game engines, I prefer to make my own game logic because that's easier for me, right now I'm using python to make my first original indie game, its a top-down RPG. I have got the player controls working and I've also added a goblin which walks randomly.
A quick comment on the difference between component structure and DOD (data-oriented design). Components are still OOP! The difference between DOD and OOP is that OOP classes own certain data (member variables) while in DOD they don't. They just act upon it. DOD mostly goes like this -> Bunch of arrays containing data Each of them having a tag to their entity. The entity's read/write into those arrays. Nobody owns anything. Everything is central and nicely packed. I am not an expert on this but I think this is how it goes.
if you want some inspiration for "generative pixel art", Celeste makes heavy use of it. most of it is hand-drawn but there is also a lot of dynamic stuff like Madeline's hair, flags, wind, and a bunch of other effects.
Fantastic video, great editing and very lucidly presented! One point though, your issue with OOP is with building inheritance hierarchies (trees of is-a relationships). Composition where an object's dependencies are data members not bases, combined with strong separation of concerns is way cleaner than some complex polymorphic structure and is definitely a strongly OO design.
This "3d like" behavior of 2d objects looks cool. 4:05 i never seen before so cool 2d flying leaf animation. I wanna see how this leaf fly away from garden leaf blower.
you know what, I'll enable the notifications just for you, I'm annoyed that youtube doesn't recommend your videos as soon as they are uploaded. Thanks for the quality content ♥
The voxel generation from the sprites looks really interesting, I love learning about making tools like that. While I was watching some bits I didn't like how the code in the background had loads of very distracting autocomplete windows flickering open and close (e.g. 3:48). I think I'd like it better if this was more muted or maybe paused altogether while the vid's focusing on something else. Very promising, I'm looking forward to seeing more of this!
Literally the other day I saw an ad on TikTok for a game where you restore flora and fauna to an ecosystem... But I bet your programming is more interesting and impressive!
Object oriented programming’s orthodoxy is rarely actually used in any codebase for many of the reasons you note in this video. There are bits of OOP that are incredibly useful, but a better system just uses the aspects of OOP/other paradigms that work well for the specific problem at play. Instead of taking any one paradigm and dogmatically following its tenets: one should understand where each works best and how to get those aspects to collaborate efficiently while using the “best tool for the job” approach on each issue. Dogma rarely engineers its intended result.
I really feel like that you are the most advanced developer I follow on UA-cam. Especially after your mindblowing TetrisOS Video, which was just amazing to look at the logic behind. Keep that good work up!
improving the movement of the character would make this a whole lot better. also I don't think he needs to be a block if your trees have actual geometry that's also not just blocks. great video!
Oh no! another UA-camr suffering the "do your game engine from scratch" fever. Hope this one does not lose his mind. Just kidding, great video jdh! Digging your editing skills :O
So fun to see yet another video of yours! You should check out the indie-game Equillinox. From the little you said it seems to have similarities in the gameplay mechanics, and it's quite the gem if you ask me!
In your last video you mentioned not putting the game up on github. I would suggest that you consider open sourcing the code for the game but keep all the content separate. Come up with an archive format for storing the content, say a zip file with a manifest, and you could charge money for the game content but still have the code be open.
If you would want to work wothout a Entity-Component-System, than you can try to work with interfaces, I mean, this ends in the same way, just that the Components are not added manually in the Constructor but in the Declaration of the Class, but hey, who cares
I don't think your video editing skills gets talked about enough. The fact that you can make a 10+ min video on in-depth programming architecture and design cool and compelling and hip-hop even makes you stand out so much from the rest of the field.
"I don't think your video editing skills gets talked about enough"
*continues to not talk about video editing skills*
so true!
The text color change for week 4 that went along with the beat drop was dope
@@oagalthorpe Yah fr it was lol
@Zark Hussain lmfao you are right, it is so much more, but u gotta admit his editing is damn good
This voxel style and the method to generate them is mind blowing to me
I have never seen such a thing, super cool!
absolute chad right 'ere
tantan my beloved
Wasn't expecting this comment. Your videos are awesome too!
This man has so much computer knowledge and looks handsome af, what a dream
10/10 would smash
jdh stands for jSuper dFucking Hot
where are the replies? They won't load
I dunno
I'm straight and even I can say he's stupidly good looking and crazy smart... and on top of it?! Funny... If I was a girl I'd be a total fangirl.
the editing is so clean and easy to follow! love the game progress and your style of videos keep it up!
Shit, I've spent a week on making a camera follow a Unity's capsule in a non vomit inducing way. This is impressive! Keep it up!
we all gotta start somewhere!
I've spent a week trying to get a neural network to work. It can currently act like an OR operator. For week 2 I hope to make it act like an XOR operator.
@@puppergump4117 Way to go. Before you spend too much time on a unsolvable problem: Neural networks without hidden layers (i.e. just input and output layer) are mathematically incapable doing XOR with most activation functions.
Since we're all talking about what we did in 1 week, well I've been eating, sleeping, shitting and watching youtube. uhh yhhh ...
@@vincviertytaccount2608 Don't worry, I first tested the net by adding a few million neurons and many hidden layers. Now I'm just repeatedly watching statquest and trying to get the math down.
The entity component part is basically a conclusion to go with **composition over inheritance**. Worth reading about for any dev (not only game dev).
See, it wouldn't be this difficult with a pre-existing game engine but jdh is also a fucking legend for the sheer amount of NIH content
I'm always interested in people who go this route, instead of using something like Unity. I'm not saying they're wrong! Just curious about the motivation. It's like if someone wants to learn guitar, and they go out and chop down a tree for wood, melt some iron ore down for strings and frets, etc. But everyone has their hobbies and interests of course!
@@Official_KC Your analogy doesn't really make sense. I don't see how building your own engine is akin to wanting to learn guitar despite doing x things that are unreleated. It seems like to me, he is passionate about game development but at the same time, wants to understand how exactly his favorite games are made (which mind you use their own proprietary engines). Hope that makes sense.
@@deistormmods his analogy made perfect sense. I don’t get how you didn’t get it Lmaoo wtf
@@Ready4Whatever Because learning a guitar and chopping wood are two completley unreleated things. Whereas making your own game engine will give you more skills and knowledge about how a game engine like Unity works and will also help you in the job market. No one's saying you should do that if you just wanna make games. I don't see how you didn't comprehend the disconnect.
Your video style is really unique and truthfully enjoyable to watch
W-wait, he made a follow up video like he said he was!?! Impossible!
don't get used to it!
ah yes this is what I call quality content. and btw another video idea:
creating a browser from scratch
yes
yes
yes
yes
yes
Those trees actually look really awesome, I love the visual style of this.
love your video style man
Your editing is so good!! I'm here struggling with blueprints and c# in unreal and unity and you there are making your own game engine!! Kudos to you man!
Honestly, these videos are amazing. I usually don't comment on videos but the work you're able to do always shocks me. Keep up the great work, can't wait for the next update.
Man this looks amazing and I love to see the process/troubles your encountering
I have a few questions:
At 10:55 you started mentioning about the particles that appear when you chop a tree and that you wanted to have 1000 particles which was not possible, are you running your particle system on the GPU? or are each individual particle it's own entity that the CPU needs to work on? Same question for the leaves of the tree are they individual entities handled by the CPU?
My other question is what platforms can your engine run on? I ask because thanks to the introduction of the Steam Deck I predict that Linux gaming will start to take off and perhaps consoles will start to make their own Linux distros in the future. That's why when I see someone making their own engine I ask if it can run on Linux.
(for now) the leaves are one mesh that are rendered by the model manager for all tree entities through instance rendering - the renderer/entity system are (relatively) decoupled in this way :)
Particles are individual entities (also for now) because I wanted to be able to maximally control their behavior (collision, movement, etc.) in these early stages of development. Will for sure be considering GPU-based particle systems later on, but for now it’s not worth the time when I don’t have a clear spec of what the system needs to be able to do. also it isn’t a bottleneck (yet).
The engine is extremely cross platform! It uses BGFX which can run on Vulkan/Metal/OpenGL/DirectX and the rest is just some stdlib-depending C++, so as of right now there are no limits on platform. Though I imagine some things would have a to be (minimally) changed were I to start targeting windows, Linux, etc.
Amogus
I get amazed by the work you are doing while making the games, most of the time I can't really tell what's happening, but at least it inspired me get into gamedev(yet with unity). Also I love your editing style, and the fact that you put StackOverFlow as a whole into the resources section.
Greate video thanks. I think the OOP approach for this inheritance problem is Strategy Pattern. Basically implement the behaviour example "Fly" and inject to the class the kind of implementation you want (PlaneFly, BirdFly... etc) and even at runtime you can change the behaviour if you want.
You should never use inheritance either way.
Can't wait for you to go from EC to ECS, whereby you move the logic off each component and into systems which act on sets of components. It makes the components WAY more composeable, brings literally all of the performance benefits (you don't get those with logic per component), and is really interesting to think about and design barriering and system execution dependency trees.
I absolutely love your art style. The game has such incredible potential. Please keep working on it. Your videos are so great!
yo can you make a playlist of the music you use in your videos?
Holy shit, that looks *a m a z i n g*! Definitely keeping an eye on your channel, even though my brain is waaaay too smooth to understand at least half of what you're talking about! Keep it up, brother!
I literally have been checking my notifications and your channel every day to see if you uploaded. Thank you for creating such amazing content that drives me to this madness!
Always remember: memory is cheap, time is not. If you can precompute something and store it in memory, do it. I'm hoping that's what you did with your leaf placement when you said you optimized it. Because even the 5ms algorithm can stay inefficient if you just use it to precompute the data. You'll save time on having to optimize code, and then your leaf placement will scale as fast as your memory bandwidth (which is about as scalable as you can ever hope for). And if randomization is your concern, you can still precompute enough random variations to fit in even a single cache line such that you would never notice a pattern. So, unless you managed to get that 5ms algorithm to like double digit MICROseconds with a full world of trees, just use a few extra KB of memory and have them precomputed!
1) This man is better than most of us at programming.
2) This mans is better looking than EVERYONE of us by A LANDSLIDE (at least 99,9%)
I feel like a failure
I really want to see what he could make with a game engine.
Remember the tetris os ? It would be really cool, if you would make a operating system with ONLY c++ and Assembly without a single line of C code. BUT just to run the Minecraft Clone.
agree !
A video idea : program a programming language and program a game in it
i love how you use the chad meme next to yourself...its the same person
I love the little programing jokes like they are a nice touch
I reckon a short blast of all the leaves from a tree as its destruction particle animation would look pretty sick (assuming such is not already in the works)
I recommend you to make player and mobs models way cooler by making them stretch in-out a little when they're moving.
this will make world more alive. urw.
I just love the animation of the trees.
dude I've never waited to someone to post a video or any kind of post, but little do you know, I was waiting for an update from you! Keep up the good work.
Dude so far this game looks really cool.
Love your videos, the minimalistic and clean editing, the nerdy, nitty-gritty details, everything! At this point, I'd say upload more often, but videos like yours take time to make.
0:15 so relatable it hurts
Subscribed. You're doing things from the ground up which honestly is a super valuable angle for learners.
A man making a game without an engine. Clicked for the interesting topic, stayed for the beautiful hair and clean editing. Subbed.
If your goal is to make a successful video game and you achieve that by making a game that lots of people will willfully give their free time to then you've made it. Nobody is going to care about the fact this guy made his own engine this is an exercise in procrastination if the goal is truly to make a dream passion project video game but evidently it's about getting views on a youtube video and receiving praise from random strangers on the internet. Great job you did in a month what someone could have done with an engine in a day.
Those trees look wicked dude
I started game dev by using the Godot game engine, but I just can't use game engines, I prefer to make my own game logic because that's easier for me, right now I'm using python to make my first original indie game, its a top-down RPG. I have got the player controls working and I've also added a goblin which walks randomly.
Try maybe using Nim instead, it is like Python but 30x faster and compiles down to C and C++ and has direct access to C and C++ libraries
@@astroid-ws4py Thanks, but I'm fine using python. I'll try Nim sometime else.
In case anybody is interested the "hacker" graphics at the intro of the video is a command line tool called Hollywood. Good video as always
You should consider changing tree opacity while the player is under it, that way you can see the character still
A quick comment on the difference between component structure and DOD (data-oriented design). Components are still OOP! The difference between DOD and OOP is that OOP classes own certain data (member variables) while in DOD they don't. They just act upon it. DOD mostly goes like this -> Bunch of arrays containing data Each of them having a tag to their entity. The entity's read/write into those arrays. Nobody owns anything. Everything is central and nicely packed. I am not an expert on this but I think this is how it goes.
those trees are so very lovely
if you want some inspiration for "generative pixel art", Celeste makes heavy use of it. most of it is hand-drawn but there is also a lot of dynamic stuff like Madeline's hair, flags, wind, and a bunch of other effects.
me commenting on how good the 12 minute video is after 1 minute of it being uploaded
Fantastic video, great editing and very lucidly presented! One point though, your issue with OOP is with building inheritance hierarchies (trees of is-a relationships). Composition where an object's dependencies are data members not bases, combined with strong separation of concerns is way cleaner than some complex polymorphic structure and is definitely a strongly OO design.
This "3d like" behavior of 2d objects looks cool.
4:05 i never seen before so cool 2d flying leaf animation. I wanna see how this leaf fly away from garden leaf blower.
you know what, I'll enable the notifications just for you, I'm annoyed that youtube doesn't recommend your videos as soon as they are uploaded. Thanks for the quality content ♥
Your videos always leave me inspired to work on my side projects!
Man ur the reason coding interviews are hard
You've rediscovered composition over inheritance. Good job. :P also inheritance and polymorphism are two different things.
Awesome to see how far you got in the month!
man was actually eye candy the whole time
this is amazing. the sheer skill you have.
The voxel generation from the sprites looks really interesting, I love learning about making tools like that.
While I was watching some bits I didn't like how the code in the background had loads of very distracting autocomplete windows flickering open and close (e.g. 3:48). I think I'd like it better if this was more muted or maybe paused altogether while the vid's focusing on something else.
Very promising, I'm looking forward to seeing more of this!
4:07 biblically accurate trees.
No but seriously, that looks pretty cool to me, almost feels like some sort of boss
Literally the other day I saw an ad on TikTok for a game where you restore flora and fauna to an ecosystem... But I bet your programming is more interesting and impressive!
Object oriented programming’s orthodoxy is rarely actually used in any codebase for many of the reasons you note in this video. There are bits of OOP that are incredibly useful, but a better system just uses the aspects of OOP/other paradigms that work well for the specific problem at play. Instead of taking any one paradigm and dogmatically following its tenets: one should understand where each works best and how to get those aspects to collaborate efficiently while using the “best tool for the job” approach on each issue. Dogma rarely engineers its intended result.
I really feel like that you are the most advanced developer I follow on UA-cam. Especially after your mindblowing TetrisOS Video, which was just amazing to look at the logic behind. Keep that good work up!
These trees are so good !!
i gotta say, those trees are gorgeous
You did get a ton of work done, its more than enough
ECS seems fun but i've never been able to wrap my head around it no matter how much I try.
improving the movement of the character would make this a whole lot better. also I don't think he needs to be a block if your trees have actual geometry that's also not just blocks. great video!
Can't wait to play this one day!
Oh no! another UA-camr suffering the "do your game engine from scratch" fever. Hope this one does not lose his mind.
Just kidding, great video jdh! Digging your editing skills :O
@dk bruh hahahahaha for now I am addicted to see their videos, but who knows...
So fun to see yet another video of yours! You should check out the indie-game Equillinox. From the little you said it seems to have similarities in the gameplay mechanics, and it's quite the gem if you ask me!
You inspired me to make my own game engine and OS. Keep up with the good videos!!!
This video makes me happy I don't have the creative skills to come up with a game idea that I would want to try and code.
Looks really great! I love the trees :)
After 1 month your game is still further along than some finished indie games I've seen
That's the coolest video I've watched in a while!!
Jdh, implementing Importing the whole Unity Hierarchy, gameobjects, entity component system
"Not as much as I had hoped"
Me being stunned by all the progress he's made: Nani???
Passion projects take years unless you have help or better yet a very simple concept
That tree is goddamn gorgeous
Week 3 was my favorite
Man is packing some serious hardware
Your gameplay idea seems to draw a lot of inspiration from Farewell North. Have you heard about it?
In your last video you mentioned not putting the game up on github. I would suggest that you consider open sourcing the code for the game but keep all the content separate. Come up with an archive format for storing the content, say a zip file with a manifest, and you could charge money for the game content but still have the code be open.
Would be cool to see some sort of implementation of anti-aliasing
ECS... discovered it last year, thx to covid. Had a blast with this. Wrote an arkanoid clone. Very nice and well suited for game.
glad to say I've been here since 2k
Nice flowers and tree
9:50 jdh avoiding writing shaders like men avoid going to therapy
In my next life, this is what I intend to do :P. For now, I'll just make music for games!
sheesh... I don't feel right calling myself a Software Engineer with guys like you out here doing this amazing work!
yesss
We NEED a discord server!
I'm getting Animal Crossing vibes from this. I love it!
This guy is a GOD
If you would want to work wothout a Entity-Component-System, than you can try to work with interfaces, I mean, this ends in the same way, just that the Components are not added manually in the Constructor but in the Declaration of the Class, but hey, who cares
yo can you make a video showing your neovim setup? like the plugins and your configuration file
Great video!
BABE WAKE UP JDH DROPPED ANOTHER DEVLOG
Nice htop + cmatrix combo
Don’t worry man Earth took billions of years to get trees working
You should make the tree leaves fall when you break it