Hey guys! I hope you enjoyed the video! Quick announcement: When the Discord server gets to 100 members, I'm going to host a mini game jam! The server is so close to 100 already, so if you're interested in the game jam, join the server here: discord.gg/G9zSDfMcZg
I was gonna say something like this but I couldn’t think of a good way to type it so thank you for being better at coming up with thing to say than me ❤
I love watching this series. Getting to see first hand what developers face while creating what seems a simple game is quite entertaining and inspiring. Keep up the hard work! 😁
5:39 From experience there is two types of crashes: - Crash that make sense and are actual errors in your program (under some conditions or whatever) - "Random" crashes generally caused by forgetting about thread sync issues, idk about your project but if you have multiples threads doing different tasks and reading or pushing items inside arrays, make sure you lock your threads using std::lock. If you find that your game sometimes randomly crashes and you cannot find out what really causing the crash, this is generally a threads sync issue !
Not in C++. C++ doesn't have as much memory safety as a lot of other languages, so you can easily reference nonexistent data, and get random crashes depending on the random data that's in that spot in RAM. This looks more like they screwed up an index somewhere and it accesses stuff it isn't supposed to.
@@nikkiofthevalley I was actually talking about fully random crashes, the one due to thread sync issues happening at random timing (bcs of data read/written at the same time sometimes). The non referenced data can be easily debugged and found, because reading random data will always lead to a crash, so it's not really what I would call a "random" crash.
@@K3rhos Reading random data doesn't necessarily lead to an outright crash. It could load nonsense data out of view, but as soon as it tries modifying it (which would be random because of the feature system being random) it may or may not crash because it could be allocated but not used memory.
I just want to add that more than half of my crashes when working with OpenGL that are really hard to debug are caused by memory access issues such as calling a buffer draw with the wrong length. This is made worse by thread synchronization in terms of updating said meshes.
This might be my favourite type of devlog. I much prefer when the technical side is explored than when jokes are thrown in every second. Would love to see you work on the visuals in the future (AO, shadows, coloured lighting, direct lighting, global illumination, or anything really)
@@wsalevancreate a product that can be easily modified, create mods for it from different anonymous accounts to make it look like minecraft after installing all mods.
@@wsalevan Actually, "should" be fine if some things are considered. Most importantly, you cant ship minecraft assets in your own program. Aslong as you dont do that you "should" be fine. Unless factorio and minecraft eula are different in certain ways. There was someone who rewrote the factorio engine, with less features, however much much faster and the devs couldnt have forced them not to release it. He didnt release it after he signed an NDA and got factorio source code access!
normal programmers: make a 5 minute video explaning an entire development on their game. wsan evan: explains for 14 minutes how he added water to his mc clone. wsan evan has the best videos on utub.
You can disable face culling, so it will draw back faces and you wont need double amount of vertices for water. (Dont forget enabling it after) Also cool video
doesnt disabling backface culling basically just tell the gpu to render the vertices a second time but with flipped normals? The end result is the same no? Both process double the vertecies
@@redotix9952Not quite, itll skip the backface culling check itself, and all the data stays the same. Technically it could be implemented by the driver the way you said it, but its unlikely as that would be unnecessary inefficient
@@celdaemon Oh interesting, I wasnt aware, I thought backface culling was a natural side effect of rendering and turning it off requires more processing, not the other way around.
The reason I didn't do that is because only the top water faces need face culling disabled, so doing that would mean I would need 2 VAOs and 2 render calls, and I figured that a few extra faces would be better. Maybe I'm wrong, though. I would have to test it
It's so fun to watch you make this project, I'm so glad I found out about this! Do you have plans to add any sort of survival mechanics, and if so, when? Very excited to see where this goes!
I wish I knew how to code because I've always wanted to do this, it's fun seeing you go through it. I think a nice spin to the minecraft clone idea would be to make the world spherical and not infinite
Learning how to program is pretty approachable, in my opinion! 2 years ago I knew nothing, now I'm a semi-competent hobbyist. Your first language will be hardest. Pick an easy one like python. But after that, things will go way smoother for you, as you will understand the concepts behind things and various data structures and such, and can fairly easily translate that knowledge to any language And don't forget the importance of feedback. Not just AI, but real human feedback on a forum or similar if you're stuck
@nerida3347 I will keep that in mind, thank you! I took a class on c++ data structures so I know the barest minimum of code, but coding an app or a game or anything more advanced than a glorified calculator is still so incredible and unapproachable to me. Where do you suggest I could start?
Bro whatever the hell you’re doing, you’re doing good work. Make sure to pace yourself, too many creators get burned out making quality creations as fast as this.
hey, I skimmed your chunk code a tiny bit, and I don't have too much C++ experience, but if I read it right, you have a thread for every single chunk. That's extremely expensive. I'd recommend having multiple threads per chunk and also looking into thread pools.
Bro you are the best u literally making a new better bedrock edition, all of these in your first entry to c++ , if i had money i was going to donate 40 dollars ❤❤❤❤
looking at the water shader, i wonder if its possible to make a shader behave like the water shader in terraria, where it interacts with objects and entities. I think you do that by using a movement buffer but I might be wrong. Anyways, I found this video series recently and I think the way you narrate and show stuff is really cool and comprehensible, at least for me(I have some coding knowledge but I'm not that familiar with the apis you are using). I will watch the other videos and start to follow this project, its very interesting. Keep up the good work :D
If you make the waves based on a continuous 4d perlin map (3d for waves + time dimension) you might get better waves! annoying part would still be fixing the seams
You should add PBR materials (Sending arrays) of materials to the frag shader like adding every texture needed (diffuse, normal, ao...) for the regular block if not implemented yet
I’ve got an idea to make the water look more unique. Remove the texture, have it render as a solid color. The low parts of the waves render darker, and the high parts of the waves render the brightest, giving a fake reflective look. Also, try making the waves more noisy for even cooler looking results.
You should try to add a player movement system so you can actually walk and run around instead of just flying. It would be cool if you could start/stop flying by double-tapping space
Hey guys! I hope you enjoyed the video! Quick announcement: When the Discord server gets to 100 members, I'm going to host a mini game jam! The server is so close to 100 already, so if you're interested in the game jam, join the server here: discord.gg/G9zSDfMcZg
would like to see villages to add more life
Add sky to your game
The video was pretty good tbh
Hey may I get your discord I have a few questions I’d really like to ask
WSAL meaning?
Minecraft Bedrock at home:
Awesome video demonstrating the power of C++ :]
I was gonna say something like this but I couldn’t think of a good way to type it so thank you for being better at coming up with thing to say than me ❤
Awsomeway of showing showing off c++? Unreal is written in c++
"It works, but why?" - WSAL, 2024
it's 2024
pretty much every programmer ever, and if i learn java this well be me to lol
IF IT AINT BROKE DONT FIX IT
Every programmer has said this at least once in the last 3 hours.
@@Bigleyp I can confirm I just said that cause of some insanely broken code that still somehow worked lmao
I love watching this series. Getting to see first hand what developers face while creating what seems a simple game is quite entertaining and inspiring. Keep up the hard work! 😁
Thanks!
@@wsalevan bible?
@thefunson8087 What?
@@wsalevan you know. The bible
@@wsalevan do you like the bible?
3:36 Ain't the far lands, that's the fart lands 😭
underrated
bro got the whole squad laughing 😒
@@seanernst-c7r i thought it was pretty funny ngl
9:53 shit seas
🍑💨⛰️
Honestly I wish we could get videos like this from Mojang for normal Minecraft development
In this case it will be a 5 minutes video per month.
"why did that fix it" is a mood
5:39 From experience there is two types of crashes:
- Crash that make sense and are actual errors in your program (under some conditions or whatever)
- "Random" crashes generally caused by forgetting about thread sync issues, idk about your project but if you have multiples threads doing different tasks and reading or pushing items inside arrays, make sure you lock your threads using std::lock.
If you find that your game sometimes randomly crashes and you cannot find out what really causing the crash, this is generally a threads sync issue !
Not in C++. C++ doesn't have as much memory safety as a lot of other languages, so you can easily reference nonexistent data, and get random crashes depending on the random data that's in that spot in RAM. This looks more like they screwed up an index somewhere and it accesses stuff it isn't supposed to.
@@nikkiofthevalley I was actually talking about fully random crashes, the one due to thread sync issues happening at random timing (bcs of data read/written at the same time sometimes). The non referenced data can be easily debugged and found, because reading random data will always lead to a crash, so it's not really what I would call a "random" crash.
@@K3rhos Reading random data doesn't necessarily lead to an outright crash. It could load nonsense data out of view, but as soon as it tries modifying it (which would be random because of the feature system being random) it may or may not crash because it could be allocated but not used memory.
I just want to add that more than half of my crashes when working with OpenGL that are really hard to debug are caused by memory access issues such as calling a buffer draw with the wrong length. This is made worse by thread synchronization in terms of updating said meshes.
This might be my favourite type of devlog. I much prefer when the technical side is explored than when jokes are thrown in every second. Would love to see you work on the visuals in the future (AO, shadows, coloured lighting, direct lighting, global illumination, or anything really)
"That's all I have for this episode" I swear this ginormous work
Bro I'm so hooked up to this series that i can't resist not subscribing. Well done! Btw i like your new logo
I love these videos and the progression so far! Please dont give up, a finished version would be sick! Can't wait for other dimensions
loving the VODs on YT, and this project so far is looking extremely promising
Thanks!
@@wsalevan you're welcome! keep up the work, it's fun to watch how far you've come on C++
Did I like it?! Dude, I look forward to new videos and news from you!
0:24 This is exactly what rice fields look from high ground. I am not kidding.
You created a rice field in minecraft... A NEW BIOME?
Execellent series. You are a great developer and great editor. Keep going bro (btw i aint a bot).
Now imagine a opensource c++ fully compatible minecraft client. Supporting the whole minecraft protocol, would be awesome.
That sounds like a recipe for a lawsuit lol
@@wsalevan Yes, I’ve thought that too lol 😂. There’s no crime in dreaming yet 😭 Who knows one day, without the mobile first way of bedrock being
@@wsalevan If it just accesses the API, Oracle vs Google shows that this is perfectly legal!
@@wsalevancreate a product that can be easily modified, create mods for it from different anonymous accounts to make it look like minecraft after installing all mods.
@@wsalevan Actually, "should" be fine if some things are considered. Most importantly, you cant ship minecraft assets in your own program. Aslong as you dont do that you "should" be fine.
Unless factorio and minecraft eula are different in certain ways. There was someone who rewrote the factorio engine, with less features, however much much faster and the devs couldnt have forced them not to release it. He didnt release it after he signed an NDA and got factorio source code access!
I was watching all your Minecraft videos today and suddenly you gift us with another one, thank you
normal programmers: make a 5 minute video explaning an entire development on their game.
wsan evan: explains for 14 minutes how he added water to his mc clone.
wsan evan has the best videos on utub.
around half a year ago I went through the same journey and seeing you essentially take the same steps is kinda nostalgic already lmao
Incredible skills brother!
i dont understand a singular bit about the code but i just like seeing the bug he has to fix and allat, its just fun to watch lol
The underwater effect... ITS PERFECT!
It's sort of a habit to watch Minecraft being continually recreated, but it's still interesting every time
NIce stuff. Excited to see what comes next
Thanks!
How about working on world weather? Higher up you go, colder it gets. And time of day would be neat. Loving the series so far!
Dude this is really coming together. This is so cool bro keep it up bro
Amazing Video as always :D
I’m in an entry-level C++ programming course in college, and this video made my nerd brain’s day. Thank you sir
I'm starting to get pretty invested in this series 😂
great job and good luck
Thanks!
Wow, really impressed by your videos. I'd love to see some ambient occlusion in the future :D
I can' believe someone added C++ to their Water Minecraft Clone
You can disable face culling, so it will draw back faces and you wont need double amount of vertices for water. (Dont forget enabling it after)
Also cool video
doesnt disabling backface culling basically just tell the gpu to render the vertices a second time but with flipped normals?
The end result is the same no? Both process double the vertecies
@@redotix9952 no, it disables check if face is facing camera.
@@redotix9952Not quite, itll skip the backface culling check itself, and all the data stays the same.
Technically it could be implemented by the driver the way you said it, but its unlikely as that would be unnecessary inefficient
@@celdaemon Oh interesting, I wasnt aware, I thought backface culling was a natural side effect of rendering and turning it off requires more processing, not the other way around.
The reason I didn't do that is because only the top water faces need face culling disabled, so doing that would mean I would need 2 VAOs and 2 render calls, and I figured that a few extra faces would be better. Maybe I'm wrong, though. I would have to test it
This is great!
Super underrated channel - really entertaining video! Keep it up! 💪🙌
first person who's not evan
Do you mean even
No, I think they meant evan
@@nicole8275
@@nicole8275 No, the UA-camr is named Evan
@@EvroTheDevro thanks
how os this before the video upload tho
gotta love a good sine function
been waiting on this video for a MINUTE
It's so fun to watch you make this project, I'm so glad I found out about this! Do you have plans to add any sort of survival mechanics, and if so, when? Very excited to see where this goes!
8:54 movies when desert
interesting and fun, love this video
Thanks!
I wish I knew how to code because I've always wanted to do this, it's fun seeing you go through it. I think a nice spin to the minecraft clone idea would be to make the world spherical and not infinite
Learning how to program is pretty approachable, in my opinion! 2 years ago I knew nothing, now I'm a semi-competent hobbyist.
Your first language will be hardest. Pick an easy one like python. But after that, things will go way smoother for you, as you will understand the concepts behind things and various data structures and such, and can fairly easily translate that knowledge to any language
And don't forget the importance of feedback. Not just AI, but real human feedback on a forum or similar if you're stuck
@nerida3347 I will keep that in mind, thank you!
I took a class on c++ data structures so I know the barest minimum of code, but coding an app or a game or anything more advanced than a glorified calculator is still so incredible and unapproachable to me. Where do you suggest I could start?
add jumping & placing & mining & block collision!
I'm mesmerized.
"I got this wrong, I have no idea how it worked"
Story of my life coding lmao
Wow a yt programmer that actually uses abstraction :D
Thats a sub from me
Just got recommended this after watching Phillips dev log on HIS Minecraft clone, lol
i read the title as "I added C++ to my Water Minecraft Clone" at first and I was SO confused
crazy vid
Bro whatever the hell you’re doing, you’re doing good work. Make sure to pace yourself, too many creators get burned out making quality creations as fast as this.
Thanks! So far, this seems to be a pretty good pace for me
Bro created the stripe lands! 9:48
bro made microsoft paint, in minecraft, in C++
Legend
hey, I skimmed your chunk code a tiny bit, and I don't have too much C++ experience, but if I read it right, you have a thread for every single chunk. That's extremely expensive. I'd recommend having multiple threads per chunk and also looking into thread pools.
If infinite generation is ever added to this pet project, I really hope we'll get to teleport to the farlands.
11:45 good idea for extra settings
i cant wait for him to realase this game it looks so good
Bro you are the best u literally making a new better bedrock edition, all of these in your first entry to c++ , if i had money i was going to donate 40 dollars ❤❤❤❤
I love your Minecraft
minecraft in C# is so good.
cool project !
looking at the water shader, i wonder if its possible to make a shader behave like the water shader in terraria, where it interacts with objects and entities. I think you do that by using a movement buffer but I might be wrong.
Anyways, I found this video series recently and I think the way you narrate and show stuff is really cool and comprehensible, at least for me(I have some coding knowledge but I'm not that familiar with the apis you are using).
I will watch the other videos and start to follow this project, its very interesting.
Keep up the good work :D
I wish Minecraft was an open source community project. Maybe one day.
This channel so fun ngl
It reminds me of the funny videos I used to watch.
fr ur a programming monster :0
as someone who has never seen any piece of c++ code in my life... neat
So cool!
This is pretty cool
I didnt understand anything, but its fun to watch
Very cool
I feel like finally being able to walk around would be cool, it's a bit of a jump though (no pun intended)
3:14 that's my opengl experience right there
nice water, gotta love a sine-wiggle
very cool
Awesome now make the water flow
Great video
microsoft already made minecraft in C++
Yep, people dont know bedrock edition is written in C++, no wonder why his is just as buggy...
@@renrenrayo go find out what the unedited one said
This one is a minecraft clone
@@Drifys1 but the same company developed it
@@Drifys1 bedrock is not a clone of Java it is a version of Minecraft just like java
This is the kind of video you watch while eating 💯👍
Love the videos!! Keep up the work bro🔥 One question tho, can you stream on YT pls?
If you make the waves based on a continuous 4d perlin map (3d for waves + time dimension) you might get better waves! annoying part would still be fixing the seams
at 12:39
if you made it faster you could use it as nausea if you ever get that far
wake up funny coder man is back
Cool
I don't know how to fix your mesh issue BUT I wanted to let you know that perlin and worley noise are both great ways to generate water waves.
There you go
love ur videos! cant wait when will be new video :D
You should add PBR materials (Sending arrays) of materials to the frag shader like adding every texture needed (diffuse, normal, ao...) for the regular block if not implemented yet
You can add soft lighting and make the grass texture more like the newer versions of Minecraft. 👍
I’ve got an idea to make the water look more unique. Remove the texture, have it render as a solid color. The low parts of the waves render darker, and the high parts of the waves render the brightest, giving a fake reflective look. Also, try making the waves more noisy for even cooler looking results.
Alternatively, add a specular shader to the water.
Another banger
It would make perfect sense for sea level to be Y=0. Then underground would usually be negative and above ground would be positive.
Evan, baby...
adding psychedelics to minecraft at 8:55
Its funny that his game isnt playable yet he decided to give the water a shader
When you feel satisfied with the engine, please try to create more games on it. 😭🙏
You should try to add a player movement system so you can actually walk and run around instead of just flying. It would be cool if you could start/stop flying by double-tapping space
yo before adding more stuff i think adding sky to your game would be so cool including some clouds too
Maybe add Day and night Cycle next, keep up great work!
Evan you ddi a good job!!!
The lighting is so cursed lmao
"Guys I made Microsoft paint" got me dying