You're absolutely right - I remember trying to understand how to write a Chip-8 interpreter and looking at tutorials that give you all the code at once did not give me the requisite knowledge to actually understand what was going on. Once I found an article that walked me through the requirements of what needed to happen, but left the implementation up to me, I went way faster, understood what I was doing far more, and had a lot more fun!
This is so cool. You're the only person who explains these concepts easily but at the same time covering them thoroughly...Thanks for starting this series :)
I love minecraft clones. Not sarcasm at all. I think it's great every time someone makes one. People always do it just a little bit differently every time - different data structure, different rendering approach, etc.
Agreed. At this point "Minecraft" is as much a game genre as it is a game itself. It's really interesting to see the different directions people take and what they prioritize. I've just gotten started on my own, but instead of the 16x16x16 cubes with textured sides, I'm using 8x8x8 voxel cubes that I model myself. It's like 3D pixel art.
best "tutorial" ever. I love how you give us enough hints to put us on the right path, but let us do the walking. This has been extremely instructional.
I've been flirting with learning OpenGL for the last decade. Despite being a software engineer, I've always run in to a wall and lost interest fairly quickly, with lots of tutorials that fizzle out around episode 3. A week ago I discovered your 2d java/lwjgl Mario clone series and was super excited to see that it was seen through to the end. I'm working my way through that series and have already gotten much much farther than I ever have! Thanks for your dedication. Looking forward to moving from 2d to 3d with this series!
I really appreciate this style of tutorial. As someone who has been programming for as long as I can remember I like learning by just being introduced then doing it myself so much more learning happens. Thank you
I think this is what many if not every one of us who wanted to learn how to code minecraft needed, im glad im here so soon and ill try to get to the end
That's a perfect series for a new game developer in C++! Your video quality is beyond what I expect from a language tutorial. I'm excited to complete this series.
First video i have seen of yours, got this chanel on my recomendation page from youtube after watching a Randy video that had your channel in it. This style of tutorial seems 1000% better than any i have seen in a while, hope you keep these vidoes comming as i have wanted to learn OpenGL for some time but just keep putting of becasue i could never be bothered to find a good book/videos on it
It's been forever since I last commented on a YT video, but seeing this I felt I just had to make one. I'm really excited to see where this series goes and I'm glad it's not the type of series where the viewer is essentially just copying code from the video. Please keep this series going!
Woohoo! I've been checking your channel constantly ever since you talked about making this series on your video on why Minecraft is a technical feat. Thank you so much for doing this, can't wait to learn throughout the series!
A tip for you, I hope you'll see it! Minecraft uses a variant of ambient occlusion where a block's edge is given a darker tone if it's also part of a neighboring block. It gives a lot of depth to the scene.
Bro this is the exact shit I'm looking for, really looking forward to continuation. I'm trying to make something similar and expand it for my younger siblings
Oh I'm pretty happy with the number of views haha. I'll definitely continue making this, it will just be a release schedule of around 3-4 weeks because I have a lot of irl responsibilities that means I don't get a lot of time for youtube
@@GamesWithGabe I was just motivating you cause I've seen many other creators making series like this and getting discouraged by the amount of views they are getting. And it is totally understandable that your upload schedule is slow. Everyone has irl responsibilities
Ohhh for the color values in glClearColor you simply divided the value you wanted by 255F, thus easily converting it to the needed 0 to 1 range. That is actually way more efficient then the over complicated way I did it haha I guess you learn something new every day. Cant wait to see more videos like this :D
Great Video Gabe, keep on the good work - I gonna pick up some stuff for future projects although I am working in Java :) But since you are explaining the concepts, its way better to follow along in general :)
Thanks Juyas! And I'm hoping this tutorial series will help people out even if they don't follow the series in C++, or if they just want to learn about 3D programming techniques in general :)
You mentioned, that file operations are platform specific. But since C++17 we have filesystem that gives us a platform-agnostic way to handle files. :D I'm looking forward to see your series, hoping in getting hints in what libraries are available and actually useful or learn something new about them. Thanks so far and maybe I will recreate some of this, but with focus on the Vulkan API, I currently try to get familiar with it. Could be an interesting comparison what "old" OpenGL can archive against the "new" and supposedly faster (when handled correctly) and much more complicated Vulkan.
I recently started implementing a own text editor which renders on the gpu with no prior knowledge in openGL, but with some prior experience in c/c++ and window libs like glfw/sdl I got the basics of OpenGL through a lot of try'n'error. This video was great because i finally really get what glad/a function loader does. i assumed the Linker does some magic, i didnt know its at runtime. il not implement minecraft but def continue watching to learn more about OpenGL that might help me solve some shader bugs(bugs in my code not the driver) i still have. Also +1 for not just showing code
I feel like I could absolutely do this on my own but actually doing it is where the problem arises. I think I’d have more fun just adding a few changes to something someone else built. Right now I’m into scripts for Minecraft. I’ve made a script that helps me do simple tasks. With a single key press my script determines what Minecraft “decorative” block is on screen and then applies some quick functionality to it such as instantly taking items out of a furnaces exit slot. I also have scripts for opening my inventory, grabbing the enderchest, placing it, and opening it almost instantly. A hot key to function as if I could just press the key to open my enderchest inventory. When pressed again it appends you a text file to keep track of back and forth functions allowing the even number presses to do the reverse and grab my silk touch pick and mine the enderchest
Thanks, Gabe! I was able to perfectly replicate this in Python. It only takes a bit of tinkering around with the glfw and pyglet libraries! pyglet will provide you all the OpenGL stuff like glClear and other values, whilst Python's glfw will provide, well, a wrapper around C/C++'s glfw! Hope this helps anyone else tryna implement this in Python.
I did this as a side project over 10 months, was too busy with my music channel too be making step by step videos but It was written in C# I used OpenGL with a C# Wrapper for C++ which was awesome because I can't use C++, I believe I had a great setup with other 100 blocks and functionalities for doors, furnaces, inventories, crafting etc, as for high level programming, as long as you optimise the meshes / textures of chunks to the best possible way you can, performance wont take a hit what so ever I've seen people using Computer shaders for generating chunks which creates crazy draw distances with no hit on performance but I just chose the simple mesh way WITHOUT multithreading and it was extremely fast, I'll subscribe and watch how you get on :)
Question: do you plan to cover GPU mesh building (via either compute or geometry shaders)? It's something that's generally lacking in most Minecraft-clone materials, and seems to be a good fit to the problem of building chunk meshes. Also, quite surprised you went with GLFW instead of SDL - I find SDL more straightforward event handling (explicit event loop without callbacks) a bit easier to work with in simple cases (more tutorial-friendly).
Geometry shaders are obsolete and properly supported only on Intel GPUs, new technology is mesh shaders, which is available on nVidia Turing, Ampere and AMD RDNA2.
I've thought about experimenting with this, but most of the advice I've found on the internet is to not use geometry shaders because they're slow. I might experiment with it though and put out an experimental release to see how it performs on different machines
I’m excited about this series! You’re right-concepts make much better tutorials than code. I retain a lot more with the right metal model.
\lml
Excited to see where this will go
ohhh it's you, i haven't seen your name in a long time
hahahahah me too lol
im super hyped for this series, switched from java to c++ so this is exactly what im looking for!
You're absolutely right - I remember trying to understand how to write a Chip-8 interpreter and looking at tutorials that give you all the code at once did not give me the requisite knowledge to actually understand what was going on. Once I found an article that walked me through the requirements of what needed to happen, but left the implementation up to me, I went way faster, understood what I was doing far more, and had a lot more fun!
This is so cool. You're the only person who explains these concepts easily but at the same time covering them thoroughly...Thanks for starting this series :)
I love minecraft clones.
Not sarcasm at all. I think it's great every time someone makes one.
People always do it just a little bit differently every time - different data structure, different rendering approach, etc.
Agreed. At this point "Minecraft" is as much a game genre as it is a game itself. It's really interesting to see the different directions people take and what they prioritize. I've just gotten started on my own, but instead of the 16x16x16 cubes with textured sides, I'm using 8x8x8 voxel cubes that I model myself. It's like 3D pixel art.
I have started on OpenGL before, but I think this series will help me get much better at it.
Btw, here before 1k views, I think this will blow up.
this looks like the beginning of something very interesting, glad that it popped up in the recommendations
best "tutorial" ever. I love how you give us enough hints to put us on the right path, but let us do the walking. This has been extremely instructional.
I've been flirting with learning OpenGL for the last decade. Despite being a software engineer, I've always run in to a wall and lost interest fairly quickly, with lots of tutorials that fizzle out around episode 3. A week ago I discovered your 2d java/lwjgl Mario clone series and was super excited to see that it was seen through to the end. I'm working my way through that series and have already gotten much much farther than I ever have!
Thanks for your dedication. Looking forward to moving from 2d to 3d with this series!
I really appreciate this style of tutorial. As someone who has been programming for as long as I can remember I like learning by just being introduced then doing it myself so much more learning happens. Thank you
I love what you're doing so much Gabe, you really do make a difference in this world!
I really appreciate this comment wehi. It's really uplifting :)
I sincerely do not regret watching this video. Looking forward for the next episodes!
I have always been waiting for this!!!!! I'm already exited for the Raytracing XD
It's nice to see you start a new series that you feel comfortable with!
Wow I'm really exited about this serie
OH BOY after completing your challenges i feel soo great, only your videos make me feel that im learning something
OMG. I honestly could not be more excited for this series! Thank you!!
I think this is what many if not every one of us who wanted to learn how to code minecraft needed, im glad im here so soon and ill try to get to the end
Been looking for a “Minecraft from scratch” code tutorial for the longest time, thank you
I’m just starting to learn game design. So thank you for creating this series!
I’ve always wanted something like this
With some experience in luau and 3 days of coding in c++, I can say I understood 20% of the tutorial :)) Great video, Gabe!
Thank you so much for this, looking forward to the next episodes
That's a perfect series for a new game developer in C++! Your video quality is beyond what I expect from a language tutorial. I'm excited to complete this series.
I haven’t even started the challenges and I can already tell I will learn so much faster this way than by copying line by line
I actually decided that I wanted to create a voxel engine last night, so im gonna watch your series and then go try it myself
This is sooo exciting! Totally looking forward to this. Thank you in advance!
Explantions + challenges, only good stuff here ! Super excited about this series
this channel is so good. just found out about it recently, but all of your content is amazing me! keep the good work.
First video i have seen of yours, got this chanel on my recomendation page from youtube after watching a Randy video that had your channel in it. This style of tutorial seems 1000% better than any i have seen in a while, hope you keep these vidoes comming as i have wanted to learn OpenGL for some time but just keep putting of becasue i could never be bothered to find a good book/videos on it
It's been forever since I last commented on a YT video, but seeing this I felt I just had to make one. I'm really excited to see where this series goes and I'm glad it's not the type of series where the viewer is essentially just copying code from the video. Please keep this series going!
Woohoo! I've been checking your channel constantly ever since you talked about making this series on your video on why Minecraft is a technical feat.
Thank you so much for doing this, can't wait to learn throughout the series!
Dude I´m so excited for this series. Please keep it up!
Finally. The kind of tutorial I was looking for. You can't believe how long I've been looking for such a practical tutorial.
the true reason for internet, sharing this type of great content!
Cant't wait for the next episode I started with the java game engine tutorial but this tutorial is next level
I really love this series and it's just the beginning.
great video mate :)
Great video and great work, I'm stoked to see the whole series!
A tip for you, I hope you'll see it! Minecraft uses a variant of ambient occlusion where a block's edge is given a darker tone if it's also part of a neighboring block. It gives a lot of depth to the scene.
Bro this is the exact shit I'm looking for, really looking forward to continuation. I'm trying to make something similar and expand it for my younger siblings
I am going to be following this. I'm definitely going to be following this. Don't be discouraged by the number of views. Please keep making these
Oh I'm pretty happy with the number of views haha. I'll definitely continue making this, it will just be a release schedule of around 3-4 weeks because I have a lot of irl responsibilities that means I don't get a lot of time for youtube
@@GamesWithGabe I was just motivating you cause I've seen many other creators making series like this and getting discouraged by the amount of views they are getting. And it is totally understandable that your upload schedule is slow. Everyone has irl responsibilities
Learning by concepts is so much more engaging than just seeing someone code and saying "yes, thats it because yes"
I'll keep an eye on this series for sure, great job brother 👏
Got this video in my recommendations. It seems like an amazing series. I'm glad that I found it and I'm looking forward to learning more from you! :)
i am pretty excited for this tutorial series
Wow did not expect too see something like this so informational, looking forward to preceding videos!!
Great video, you explained everything quite nicely!
This is one if the best programming tutorials I have seen. Really great job!
Ohhh for the color values in glClearColor you simply divided the value you wanted by 255F, thus easily converting it to the needed 0 to 1 range. That is actually way more efficient then the over complicated way I did it haha I guess you learn something new every day.
Cant wait to see more videos like this :D
Really excited about this series!
Great Video Gabe, keep on the good work - I gonna pick up some stuff for future projects although I am working in Java :) But since you are explaining the concepts, its way better to follow along in general :)
Thanks Juyas! And I'm hoping this tutorial series will help people out even if they don't follow the series in C++, or if they just want to learn about 3D programming techniques in general :)
Man, I just came across your channel and I loving all of your content! Thank very much for sharing your knowledge in this incredible way
FINALLY! A good OpenGL tutorial which does a great job at explaining everything :) This made me really want to start learning opengl again
I subbed and Hope to see more of this series
Top content as always! So glad you're doing it in C++
Super excited to follow along with this
You mentioned, that file operations are platform specific.
But since C++17 we have filesystem that gives us a platform-agnostic way to handle files. :D
I'm looking forward to see your series, hoping in getting hints in what libraries are available and actually useful or learn something new about them.
Thanks so far and maybe I will recreate some of this, but with focus on the Vulkan API, I currently try to get familiar with it. Could be an interesting comparison what "old" OpenGL can archive against the "new" and supposedly faster (when handled correctly) and much more complicated Vulkan.
Thank you, great series about to be done,
I feel very involved when getting some challenges/tasks to do myself
I recently started implementing a own text editor which renders on the gpu with no prior knowledge in openGL, but with some prior experience in c/c++ and window libs like glfw/sdl
I got the basics of OpenGL through a lot of try'n'error.
This video was great because i finally really get what glad/a function loader does. i assumed the Linker does some magic, i didnt know its at runtime.
il not implement minecraft but def continue watching to learn more about OpenGL that might help me solve some shader bugs(bugs in my code not the driver) i still have.
Also +1 for not just showing code
I am super excited for the next parts! I always wanted to make my own minecraft!
I know this is going to be awesome
OMG im hyped for this series!
Finally, super hyped for this series!!!!!
Very excited 🌟🌟
Wow! Its Amazing how much work you put into this series!
This is an awesome series! Thanks for making it
I can't believe this is happening!
I just finished my minecraft clone a few weeks ago, and it was tedious to optimize chunk generation. But it was a fun project .
This is amazing !! Waiting for ep 02
Your excellent tutorial forced my hand to click that like and that red button! 😄🥰😃
That's what I like to hear haha
I have never wondered how to code minecraft but thanks to you now i do!
Cool series, will definitely follow along with this
Waiting for Ep 2🔥
Keep up the good work dude!
I feel like I could absolutely do this on my own but actually doing it is where the problem arises. I think I’d have more fun just adding a few changes to something someone else built.
Right now I’m into scripts for Minecraft. I’ve made a script that helps me do simple tasks. With a single key press my script determines what Minecraft “decorative” block is on screen and then applies some quick functionality to it such as instantly taking items out of a furnaces exit slot. I also have scripts for opening my inventory, grabbing the enderchest, placing it, and opening it almost instantly. A hot key to function as if I could just press the key to open my enderchest inventory. When pressed again it appends you a text file to keep track of back and forth functions allowing the even number presses to do the reverse and grab my silk touch pick and mine the enderchest
New series im excited
Thanks, Gabe! I was able to perfectly replicate this in Python. It only takes a bit of tinkering around with the glfw and pyglet libraries! pyglet will provide you all the OpenGL stuff like glClear and other values, whilst Python's glfw will provide, well, a wrapper around C/C++'s glfw! Hope this helps anyone else tryna implement this in Python.
Great video as always!! 💯
looking forward for this, you code in c++ and I will follow with c#
This is awesome
I did this as a side project over 10 months, was too busy with my music channel too be making step by step videos but It was written in C#
I used OpenGL with a C# Wrapper for C++ which was awesome because I can't use C++, I believe I had a great setup with other 100 blocks and functionalities for doors, furnaces, inventories, crafting etc, as for high level programming, as long as you optimise the meshes / textures of chunks to the best possible way you can, performance wont take a hit what so ever I've seen people using Computer shaders for generating chunks which creates crazy draw distances with no hit on performance but I just chose the simple mesh way WITHOUT multithreading and it was extremely fast, I'll subscribe and watch how you get on :)
you sharing this knowledge is much appreciated
Hey, I m following your 2d java game tutorial and it's really good
Wow, i am excited
Question: do you plan to cover GPU mesh building (via either compute or geometry shaders)? It's something that's generally lacking in most Minecraft-clone materials, and seems to be a good fit to the problem of building chunk meshes.
Also, quite surprised you went with GLFW instead of SDL - I find SDL more straightforward event handling (explicit event loop without callbacks) a bit easier to work with in simple cases (more tutorial-friendly).
Geometry shaders are obsolete and properly supported only on Intel GPUs, new technology is mesh shaders, which is available on nVidia Turing, Ampere and AMD RDNA2.
I've thought about experimenting with this, but most of the advice I've found on the internet is to not use geometry shaders because they're slow. I might experiment with it though and put out an experimental release to see how it performs on different machines
This is going to be great.
Damm, you are famous!!! good job, But I like this approach of explaining and giving us challenges to solve, Thanks
SDL is very commonly used for windowing too, I recommend it
This is awesome!
Amazing Video!
I hope the next lockdown is comming so I have the time to follow that goodie
And so it begins 👀
Man you are cool. please do more like this when you have time
I plan on it :)
@@GamesWithGabe :D
Neat project!
This is sick
YO THATS EPIC !!!
just what i was looking for
Love this !
Hella on board with this