You are the essence of what drives people to have a passion for game/programming. Great job and keep it up!
@Mrwiseguy1016907 жыл бұрын
A true programmer. Rewriting the same application over and over again to improve it and learn from the process :D Keep up the great work!
@dnh1066 жыл бұрын
Sponge . That is literally what programmers do
@ThePC0075 жыл бұрын
As a rule of thumb, you should always write your code at least twice, since the first time it's always gonna be a mess.
@SkyenNovaA5 жыл бұрын
@@ThePC007 I like to store all my spaghetti code in a folder on my file, as a reminder to not code like that :)
@theadissons13723 жыл бұрын
Even i as a scratch game maker rewrite some of my games
@RogieWoah6 жыл бұрын
**pretends to understand everything you’re saying**
@ruslan_yefimov4 жыл бұрын
It's easy if you 're learning some programming language
@lourdthebluefoxie4 жыл бұрын
If you pretend to understand and speak it out theres a chance you actually understand
@Dragon20C4 жыл бұрын
*nods head, like you understand everything*
@theafr08423 жыл бұрын
It's really simple. Opengl in a nutshell: First you make a vao Then you make a vbo Then you add all your vertices to the vbo Your vertices can include position, color, texture coords, and more :) Next you upload your vbo to the vao as well as an ibo which will be useful for batch rendering of course Next you compile your shaders and attach your glsl uniforms to actual variables in your program Then you create some matrices which can calculate things like projection and transformation. Apply these to your quads. Use your shaders to draw these transformed, rotated, and projected quads with textures you have also passes to your shaders. Finally do your draw call to get stuff showing. So yeah simple Also remember to unbind everything after too otherwise you may get errors
@nicolasreyes21908 жыл бұрын
To know that you learned enough to be able to do this in only a year a and a half really inspires and motivates me to learn. Thank you fellow stranger.
@Hopsonn8 жыл бұрын
:D
@pittenjd6 жыл бұрын
Same here. New to programming here, but I've got big goals. Nothing could be more inspirational than this here! Amazing!
@NeilRoy8 жыл бұрын
Very interesting! I love hearing the problems other coders run into. Much more helpful than one might imagine.
@spoon_bomb7 жыл бұрын
Cave Story's music ... Thank you for that : ) (Good job by the way !)
@dankgaming420blazeit67 жыл бұрын
Thanks
@dannymcgill25307 жыл бұрын
Was wondering where I had heard the music before. Thanks for saying it!
@Hopsonn7 жыл бұрын
lmao if one more person links Tom Scott's video on video quality I am going to scream xD
@Hopsonn7 жыл бұрын
Yes
@rucals7 жыл бұрын
Faer Goene no
@Aimbag7 жыл бұрын
+Faer Goene yes
@fjrnend52567 жыл бұрын
Matt Hopson lol music from cave story
@syron79967 жыл бұрын
Where can I find it? I want to link it. :p
@gazmeister83047 жыл бұрын
As someone who is currently in the early stages of learning C, C++, and C# this is a lot of inspiration to me :) Can't wait for the other parts of this series as you make your game more complex.
@Hopsonn7 жыл бұрын
Part 2 and 3 are already out! :D
@tudorversoiu81388 жыл бұрын
Keep it up man! That's amazing.
@Hopsonn8 жыл бұрын
Thanks! :D
@PsycheLone-bp7nt8 жыл бұрын
this is inspiring
@landonpowell62967 жыл бұрын
What's funny is that your little hobby project probably runs about a thousand times faster than Minecraft just because it's not written in Java. Cool video.
@davidscandurra5606 жыл бұрын
Landon J Powell but java calls c++ OpenGL functions
@grimtin105 жыл бұрын
@@davidscandurra560 what
@davidscandurra5605 жыл бұрын
@@grimtin10 it is called jni. Lwjgl uses it for open gl calls
@grimtin105 жыл бұрын
@@davidscandurra560 the rest of minecraft is still java so i dont get your point.
@ducky80754 жыл бұрын
Grimtin10 OpenGL is where the most time consuming stuff happens, like rendering. Everything else would take next to no time to do no matter the language.
@sat21738 жыл бұрын
Wow that is amazing!! I came from your Reddit Post!
@TaylorShockey8 жыл бұрын
Really good job. Thank you for documenting your process. :)
@oglothenerd4 ай бұрын
Your game looks like it belongs on a retro console! I love it! :D
@rim40386 жыл бұрын
The music and the quality of the video gives a huge nostalgic feel :)
@connordarvall848210 ай бұрын
I think this video might be the Patient Zero the subgenre of KZbin Minecraft Clone Devlogs.
@HERO_POSTING6 жыл бұрын
Hey! Don't count yourself out! As a mine craft veteran and fan, I can tell you that even the most raw landscapes look fun, through its imperfections, it has character. Through its character, it has value.
@dertechl66287 жыл бұрын
You're one of the first I see who utilizes a great amount of C++11 features.
@acairns17343 жыл бұрын
I get heavy nostalgia from this video
@naynay40587 жыл бұрын
Hey There! I hope I am not being a bother! I am currently learning C++ with an ebook called Jumping into C++ and though I am not yet done learning, I'd like to ask you somethings. 1. Did you used a game engine to make this? 2. What level of maths do I need to do OpenGL?(I am quite good at maths but I'm still in 9th grade so I'm wondering if 9th grades math is enough) 3. Did you use any special libraries to link up OpenGL with C++? If you did what libraries were they? 4. I see some other C++ related stuff in your description(RAII, rule of 5,etc). Will I need that to make a C++ game? 5. Did you use any special 3D game libraries for this project? Or did you use just OpenGL? If I'm being a bother, you can ignore this comment or rather questions. I won't mind. But it will be greatly appreciated if you reply to this
@Hopsonn7 жыл бұрын
Hey! I used that book too! 1. No engine was used. I used C++, and some libraries; SFML, GLEW, and GLM. SFML is a multimedia iibrary, I used this to open up a window, loading music, sounds, textures etc, as well as the "2D" drawing, such as main menus and the top-left FPS counter and that. GLEW is just a thing that allows OpenGL to work really. GLM is the "GL Maths Library", which is handy for the maths-side of OpenGL, such as Matrix maths. 2. Most of the maths involved you don't really *need* to understand, just know *how* to use it. Though, it is useful to understand. For example, I trigonometry was used to create the first person camera, and I was able to that on my own as I understand that. In modern OpenGL, matrices are MUST. I don't really understand them (I was never taught them at school), but I know how to use them, and any decent OpenGL tutorial will tell you how to use them anyway. (It is used to convert the 3D world coordinates back into 2D screen coordinates so that a "3D" scene is able to rendered onto a 2D plane aka your window. 3. OpenGL is a C API, so C++ naturally works with it anyway. However, to load the modern OpenGL functions I had to use "GLEW", the OpenGL Extension Wrangler library. The name is a bit odd, but basically it allows you to use the modern features of your GPU :P 4. I made my first game in C++ without really understanding pointers, which is one of the most important things in C++, so no. However, if you want to make a good game and have maintainable code, then it is very handy to understand the many features of C++. 5. Just OpenGL
@naynay40587 жыл бұрын
Hopson Thanks for the long and very informative reply! You have no idea how grateful I am. I'd like to know though, what resource did you use to learn those libraries?
@Hopsonn7 жыл бұрын
SFML was mainly from the offical tutorials on the website. OpenGL was from "learnopengl.com". This website uses a different library, GLFW, however I used SFML with it anyway and it was fine. The OpenGL website covers GLM too.
@naynay40587 жыл бұрын
Thanks for everything! Hard to find such nice people on the internet! Thank you once again!
@Chocolatepain7 жыл бұрын
This is such a pure interaction. Young kid has a passion for something that isn't always like "Yeah go for it man!" so he looks to this cool guy who made a work of art using his knowledge and gets nice advice.
@TheEbonyEngineer8 жыл бұрын
Great job. It is a beautiful thing to be a god creating something wonderful out of nothing.
@xamael19897 жыл бұрын
The Nerdy Negro please dony call your self negro bro
@syedkumailhussainsherazi38716 жыл бұрын
Obviously C++ > Java
@AdultZechez7 жыл бұрын
this is great, fun to watch your progress. I'm impressed with what you've made! More videos of progress please!
@Hopsonn7 жыл бұрын
There are two other videos showing the process on my channel! :D
@dalcowboiz8 жыл бұрын
so awesome, im coming up on a year and a half of coding and im not even close to having made something so cool
@MN-sc9qs7 жыл бұрын
This is fantastic! Keep going. Do not stop your momentum.
@loleq21377 жыл бұрын
this is fascinating that you can make such a perfect game in c++! This made me learn c++ kek
@MrFrankyGification7 жыл бұрын
I chuckled at the tanx/sinx mess up. Reminds me of physics 101. Good times. Sad times.
@n.ryuudakku49163 жыл бұрын
4 years and im still learning all the pieces needed to make my own MC inspired game all by my own(yeah i know i could take code from others but id rather really understand it)
@OGkuma_ Жыл бұрын
Take you time, this dude said after learning programming in 2 years from a friend he has done this Minecraft clone, lol, he certainly coding since many years before doing that
@teC58 жыл бұрын
Awesome dude. Really nice to see see your journey
@its0xFUL7 жыл бұрын
The second I played the video and hear the music, I was filled with nostalgia :) Ken Silverman ftw.
@rigidthrash22885 жыл бұрын
Mimiga village brought me back. Thanks man
@anatolydyatlov9636 жыл бұрын
Very nice project. I'm a C++ programmer, but I've never had the occasion to try OpenGL and game development. I guess it must be fun :D
@TanKLoveR8 жыл бұрын
This is really awesome, I been learning to program myself and this is very inspiring :). Definitely need to make something of this scale myself, thanks for posting this and keep it up.
@joethehoe28577 жыл бұрын
boy oh boy I was happy to hear that Cave Story music!!
@ReonFourie8 жыл бұрын
Amazing I'm looking forward to the rest of this series!
@BigBang1112tm7 жыл бұрын
Insane amount of work in just 1 month man
@seanl61367 жыл бұрын
This is really impressive - nice work, I wish I could do this!
@chasejensen887 жыл бұрын
Great work! Lots of effort put into learning I can tell
@vexxy98794 жыл бұрын
this... this puts a smile on my face, im gonna recreate mc so i dont have to buy it, its gonna take me a lot of time. But i know its worth it!
@james0905008 жыл бұрын
Can you use the mc textures so we can see how similar it looks
@miksuko7 жыл бұрын
james090500 he did...
@adarshupadhyay54107 жыл бұрын
Matt hopson: creates Minecraft in c++ me: "hah this is nothing in front of my c++ program which adds two nos."
@TomK327 жыл бұрын
Oh, I like the infinite height idea, that's probably what you should explore. Will set you apart from all the minecraft clones. Better even: limit the plane to a few thousand square blocks and drop the lower layers for some action.
@meenit86038 жыл бұрын
Amazing, subbed for more C++ content!
@hyperlybola7 жыл бұрын
The music got me to continue watching
@Kanerade3 жыл бұрын
The KZbin compression algorithm seems to have had fun with this video..
@slimabob7 жыл бұрын
Nice job! :) (Also love the cave story music)
@santiago29735 жыл бұрын
These first scenes are minecraft on LSD
@athing186 жыл бұрын
That prototype terrain reminds me of beta minecraft farlands so much
@nk92hp8 жыл бұрын
This is so amazing and inspiring. OMG.
@nlesposito7 жыл бұрын
Thanks for sharing your work. You did an amazing job.
@hellfireofdooom88767 жыл бұрын
I really love this song dude really fits with the glitchy shit
@chimneyspecialist22837 жыл бұрын
this is great you showed us how the coding works
@otto_ueue2 жыл бұрын
4:26 is extreme with "ea" common on ireland or is it just a typo? nah i think it is a typo.
@zordon23115 жыл бұрын
0:10 Farlands, is that you?
@r3d2446 жыл бұрын
So I'm working on a voxel game in my free time like this one, but the biggest part I struggle with is making the Vertex data in a second thread (IE multithreading the chunk geometry generation). This is in UNITY 5.3~. Here's some background on what I'm doing if it helps, but this might be unneccessary: My current system has a 'block' class that includes some data like what textures go on what side, and each one has a function that when called will 1) get the surrounding blocks transparency (is a neighbor on a side see through?) 2) add vertex data to the list to render a quad on that side 3) some other internal logic... There is one instance of each block class in a sort of 'pallet'. Each chunk has a 3D array of integers representing the blocks, and each integer points to a position on the pallet. So when it's building the mesh, it reads for example a 3 in a position, that tells it it's the third block in the pallet (dirt), and returns that class for rendering (either as the block being drawn or as a neighbor). Here's where I struggle: Building each mesh takes roughly 1/20th of a second in the worst case situation. Not bad, but when you need to load dozens of these chunks, it's just too slow for being in the main thread of unity. How do you make the vertex building multi-threaded? I can never seem to figure out why the thread doesn't do anything. Is the code from this project open source that I could look at it or is there an example you used?
@wesofx81487 жыл бұрын
Came for the Minecraft clone. Stayed for the Cave Story music!
@FinaISpartan7 жыл бұрын
will you ever look into vulkan for potentially even more performance gains?
@quicksaveholzgamer52767 жыл бұрын
Minecraft in C++...it's so cool
@wesofx81487 жыл бұрын
1:16 Have you heard of "array textures"? I implemented a texture atlas like yours and I also got texture bleeding from any sort of filtering. Even without filtering I would see faint lines between the blocks at sharp angles and long distances where textures on the atlas were showing where they shouldn't I did a bunch of research and discovered array textures which allow you to break up a texture into multiple textures, but you only bind it as one texture and it's like a 3D texture in the shader (3 uv coordinates) It allows you to use texture wrapping and mipmapping with a texture atlas. I switched over to array textures it fixed all my bleeding problems, even with filtering. I haven't gotten the mipmapping to work, but I know It's possible. I had to put all my textures in the atlas in a vertical line instead of a grid, but I'm pretty sure it's possible to put them in a grid if you're clever with the glTexSubImage3D parameters.
@Hopsonn7 жыл бұрын
At the time I made this video, I had not heard of them :P I have heard of them, but I just never got around to learning it.
@wesofx81487 жыл бұрын
If you want to learn about them, I learned mostly from khronos(dot)org and stackexchange. It was painful for me to learn, but just remember that you're creating a 3D "stack" of textures which has 3 uv coordinates (3rd is for the "layer") and it can be bound as if it were one texture.
@Killius8 жыл бұрын
It looks bad because of the blocks. youtube considers them are badly rendered pixels and tries to condense them into a higher resolution. And washes the whole image out
@creeperlab-chemistryandmor51426 жыл бұрын
MrKillius stop it
@lucasgreer17363 жыл бұрын
Time to rewatch this for the 436th time a year after the last time I watched it (I participated in a similar project in that time)
@msquared88927 жыл бұрын
you should re upload this with no compression since you have the link several times over now. its does hurt my eyes to watch at times haha. Keep the programming going. The only way I got better was wanting to create more complex worlds, you ll probably find the same thing.
@trolmaso4 жыл бұрын
“Chunks can now be infinite in height!” Something the Mojang failed to do.
@trolmaso4 жыл бұрын
Lol nvm
@PhriendsySweetDreams7 жыл бұрын
This would be amazing as a full scale model variant of minecraft... infinite mining... imagine the mines o_O!!!
@PauloConstantino1673 жыл бұрын
Hi Hopson. I am your biggest fan!!
@RushZone6 жыл бұрын
Did you read Jumping into C++ by: Alex Allain or was the book you read by a different author? If it was by another author, please tell me which one
@chromosoze5 жыл бұрын
0:46 BLEEUEUUGHHHH
@JustinZaf5 жыл бұрын
Thanks for giving out the source
@codythalegend10317 жыл бұрын
Man I'm still learning html and python, I am pretty impressed!
@rxn73 жыл бұрын
html and python aren't real programming languages.
@uwubyte2 жыл бұрын
@@rxn7 nobody asked for your opinion
@matorsoni457 жыл бұрын
Hey Hopson, do you have any plans to make a video about your path from "knowing nothing" to actually being able to create all this? I personally would love to hear your story with more details, and I'm sure I'm not alone! Your work is badass, keep it up!
@Hopsonn7 жыл бұрын
I guess I could one day, but it is not in my immediate plans :P
@gamzeemakara68267 жыл бұрын
Thus, Sonic was created
@GooDCrafter958 жыл бұрын
Very nice. Waiting for part 2. PS: What the music at 0:00 to 1:49?
@Hopsonn8 жыл бұрын
Thanks! The music is this: kzbin.info/www/bejne/m5ncqZV3rNSMaLc A little song made by Ken Silverman, the man who created the Build game engine when he was 18 years old (games such as Duke Nukem 3D were made using Build)
@-abc79177 жыл бұрын
AAAAAAAAH, THE CAVE STORY MUSIC BACKGROUND
@JustinZaf5 жыл бұрын
Just discovered your channel superb superb
@victornaut7 жыл бұрын
Dude, you gonna be a success one day, take my word for it!! p.s: However, you need to keep working your ass off! :)
@strideyy6 жыл бұрын
KZbin compression absolutely b o i l e d those Sonic type textures lmao
@xamael19897 жыл бұрын
wow this reallly impresive
@Romejanic8 жыл бұрын
Amazing work! Are you going to be anything along the lines of per pixel lighting or shadow mapping? I think that'd look good inside of your worlds and would separate it from Minecraft a bit more. :)
@Hopsonn8 жыл бұрын
Romejanic yeah I think I will add some kind of shadow mapping eventually, but the lighting is something I never really done before except from some KZbin tutorial. However, I think lighting in a minecraft world is a bit different :(
@Romejanic8 жыл бұрын
Matt Hopson That's alright! That looks SOO good right now. Keep it up! :)
@thecoldestdayinworldhistory6 жыл бұрын
WAIT A KEN SILVERMAN SONG
@gentleben62257 жыл бұрын
> In January, I finally felt ready to try something "hard". I found this website for learning OpenGL, and this is probably the best OpenGL tutorial around (at least for free on the internet) Which tutorial?
@Hopsonn7 жыл бұрын
learnopengl.com/#!Introduction
@thesmokinggnome7 жыл бұрын
This is beautiful
@massimogiardina91387 жыл бұрын
This is heaven
@colepeterson53927 жыл бұрын
chunk loading with vectors thats awesome
@baysprings4 жыл бұрын
Me seeing the 4x4 really bright textures: AAAA MY EYES
@ipaqmaster7 жыл бұрын
The music playing at 3:00 ?
@-TheFacelessGamer-7 жыл бұрын
So cool. I love your small story in the description. around 1 year and you learned to code. That's awesome. What was the book(s) you used? *My story. If you don't care, you don't have to read it. lol* TL:DR - I use to want to be a game dev, but realized I love making animations way more =My full story= I use to want to be a computer programmer and create a game. I probably had that in mind since I was 7 or 8. I thought this probably for one of 2 reasons. I'm not quite sure still which one. The first reason might have been because my older brother always said he wants to do that and reason 2 is because I loved playing games. I think that's the reason. Fast forward to 2017. I'm now 17. I'm in grade 10 and need to sign up for a class at a secondary type of school I will go to for around an hour per day called "Seacoast School of Technology", "SST" for short. It's basically a more hands on school for certain schools to have students attend and not everyone get's in. before signing up for a class, you need to sign up to check 2 of their classes. I chose "computer science" and "Digital Media Arts". Even though that class isn't fully animation, I discovered that it everything the teacher said, I thought sounded interesting. It's pretty much half video production and half animation. I then realized how I always think of animation ideas but I haven't done yet. I can do them, I have the software, I just struggle modeling and rigging. I've thought about 2 cool game ideas but I'm dropping game design for now. I'm going to make animations out of my game ideas.
@cheesepop71755 жыл бұрын
3:42 cave story migma town is the name of the music you used that in the 1 week challenge too
@officialcoding28774 жыл бұрын
I'm working on a similar project and I'm wondering, how did you do the mouse ray casting. This is something that I've been puzzling over for months. My ray casting function is REALLY inacurate.
@Lamarsh677 жыл бұрын
Very cool video! Only suggestion would be to have the text on the screen longer. I kept having to pause the video to extract any sort of meaning from it.
@Hopsonn7 жыл бұрын
Thanks, and I agree. Just out of curiosity, how did you find my channel? I suddenly got a bunch of comments and subscribers over night, and I am wondering why xD
@Lamarsh677 жыл бұрын
Matt Hopson Haha, really?? It honestly just showed up in suggested videos on my KZbin home screen. I've watched coding and Minecraft related videos in the past so I guess whatever algorithm it uses did you some favors!
@Hopsonn7 жыл бұрын
Huh. :P Check this out, this is the real time views. i.imgur.com/OZJNewb.png The blue circle shows a sudden and random spike last night (2000 views in 1 hour at the peak!), and suddenly views are back to normal (~150 views) :(
@Lamarsh677 жыл бұрын
Matt Hopson That is so strange. Hopefully you'll have more than those 15 minutes of fame!
@Hopsonn7 жыл бұрын
:D
@philsburydoboy6 жыл бұрын
Hahahaha I recognize a lot of these issues from when I built a more basic clone from scratch in C# to learn about procedural mesh generation
@Manx2manir7 жыл бұрын
How do you do the drawing and not drawing different blocks? Do you do stuff like meshing? Any tips or resources would be greatly appreciated.
@Hopsonn7 жыл бұрын
Yes, meshing. Basically I just add exposed block faces to a mesh per chunk.
@dee23gaming6 жыл бұрын
I am trying to render A cube on Android and it seems Eclipse source code doesn't compile on an android IDE like Anacode, please help if you can
@MyLittleMagneton8 жыл бұрын
Cool, I'd love to try make something similar in DirectX some day : )
@rxn73 жыл бұрын
directx sucks
@wingdev12286 жыл бұрын
Do you think you could link us to what book you used to learn C++? I'm interested in trying to do something similar to this.
@epitoaster17017 жыл бұрын
1:57 what is this song?
@kieranjohn12877 жыл бұрын
0:57 my eyes burn
@paintedeevee45818 жыл бұрын
This is amazing! Do you have any tips? I'm learning c++ OpenGL right now and using FreeGLUT
@Hopsonn8 жыл бұрын
Code alot! I found this to be a great OpenGL tutorial learnopengl.com/#!Introduction If you are interested, I am starting a series where i am going to show how to create this (Minecraft in OpenGL/ C++) :D
@paintedeevee45818 жыл бұрын
Thank you very much for that link! Hope to see you in the comments of your series :)
@Hopsonn8 жыл бұрын
PaintedEevee :D
@threadsnakegaming4 жыл бұрын
WORK WEEK IN MY LIFE: my 3 am to 12 pm job by Clancy Burke
@PreyMa8 жыл бұрын
Great project! Still I`m quite curious, why the infinite chunck height didn`t work. You said it was due to „complex reasons“. Could you explain briefly why you had to ditch the idea. Nice video! Keep it up, I will be waiting for part 2!
@Hopsonn8 жыл бұрын
It is explained breifly in the next episode, which is uploading as we speak ;)
@PreyMa8 жыл бұрын
Matt Hopson Wow! I didn`t expect such a quick reply neither part 2! Nice :D
@Hopsonn8 жыл бұрын
Matthias Preymann no problem, and it has 3 minutes of upload time left.. and then it has to process :P
@PreyMa8 жыл бұрын
Matt Hopson Yay, thanks mate! I`m looking really forward to it. First time I got a chance to write „first“ underneath a video...
@Hopsonn8 жыл бұрын
Matthias Preymann When it is ready it will be here kzbin.info/www/bejne/hKe9fXeqfdZogcU