Thanks for watching! ❤️ Don’t forget that the first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/thecherno11201
@footballCartoon914 жыл бұрын
Now I know the differences between a matematician and a programmer.. inside this computer programming field.. A matematician is the real engineer who invents something new by defining new mathematical functions.. Whereas a programmers Are somebody who can make the computer implement those functions in such a way that it consumes as little memory as possible and without error. In other words somebody that can understand a programming language, how to use them efficiently, without really know the mathematical functions that the mathematician use.
@dmitryvasyliev24514 жыл бұрын
Thank you for this review ALOT!
@dmitryvasyliev24514 жыл бұрын
I'll do my best to improve the code)
@kovesik4 жыл бұрын
Дмитрий Васильев
@nexovec4 жыл бұрын
Actually him OMG
@iyappansriram98544 жыл бұрын
Dmitri you're actually good. Be proud! Good luck on coding!
@Kitulous4 жыл бұрын
нифига он твоё имя без акцента произнес я аж офигел [rough translation] oh my god he uttered your name without an accent i was pleasantly surprised
@nerdmommy71144 жыл бұрын
From a beginner’s POV, I really appreciate this series. Tutorials teach the fundamentals, but most of it shows code that sometimes don’t make sense to do in real life. Code reviews, on the other hand, teach how to write code and use the fundamentals in real life programming. How to structure the code, make it readable and manageable, etc are all things that we can only learn thru experience. One way to have that experience is to look at code of other people, and maybe even learn from commentaries/feedback given by others. I like the discussion happening in the comments section too. I’m just lurking because I’m still starting, but I’m learning a looot. So yes, please make more videos like these, how ever long you want it. I just have a few suggestions, but take it like a grain of salt as this is coming from a beginner’s pov. 1. Before you start reviewing the code, maybe give a brief outline of what you are expecting to see. Like since you saw it’s a game engine, you might want to at least give an outline of what you are looking out for. The purpose of this is so that people watching will also be on the lookout for the same things, or maybe if you missed something, they can chip on about it in the comments. 2. If it’s possible, contact the person who owns the code if they are willing to publicly show the code so that others can look at it too? Maybe while you are reviewing it, we’re also looking at it also? But it’s fine if they don’t want it. that’s the suggestions I have so far. I also like your professionalism and mentor-like-voice in terms of reviewing the code. Not condescending, never passive aggressive.
@nexovec4 жыл бұрын
I really appreciate you talking about architectural mistakes, I feel like a lot of people here already know basics of programming, but aren't engineers yet, so this is often the most neglected area. Gives me so much!
@sinkler1234 жыл бұрын
personally i would enjoy 1h+ code reviews. :) people with a short attention span will prb avoid educational videos to begin with. or you can sometimes do a quick code review, and sometimes go in depth , allowing both type of audience to benefit. thank you for sharing your acquired knowledge with the community.
@fdelduquenobre4 жыл бұрын
Agree. I really don't care if its 12 hours long, will watch it all in small parts when I got some spare time
@bobas59484 жыл бұрын
same.
@zoltankurti3 жыл бұрын
16:00 if the goal is flat shading you can get away with 8 verticies, the geometry shader can generate the normal vector for each triangle.
@jukit39062 жыл бұрын
yeah that's actually very smart But the it gets kinda tedious when you introduce tex coords, that NEED to be per face And usually tex coords specification is client-side... So yeah.
@zoltankurti2 жыл бұрын
Is that a challenge? :D I can still do it with 8 vertices, muhahaha. Using the built in gl_PrimitiveIDIn of the geometry shader we can tell which triangle we are talking about. If the order in which the vertices are grouped into triangles is clever it's enough to know if the triangle is even or odd numbered to generate the texture coordinates. This does suppose that all the geometry are cubes and all the faces have the same part of the texture drawn on them, but yeah. Maybe you will get a kick out of using that built in to generate texture coords.
@jukit39062 жыл бұрын
@@zoltankurti Actually that is 100% fine to do with cubes I guess if someone wanted a top low-memory usage cube renderer this would be a very good way of doing things But I'd say that Tesselation and Geometry shaders are more useful for generating more complex geometry like grass, or simply adding normal/parallax effects
@patrickwilmes4 жыл бұрын
I like that you are actually going into detail and that you are pointing out all those little details. I am myself a professional software engineer (not into game dev, at least yet), and good code reviews can definitely take time. From my point of view, keep going like that, it's very nice!
@DanyBittel4 жыл бұрын
This is great to watch and drink some coffee. I love that you dive into a subject that just arises. I think going 1h would be no issue. It would be cool if the person who wrote the code would participate. Have some sort of dialog together.
@morgan39643 жыл бұрын
Love the new code review series! Very good for learning a lot of little things to improve existing code and to adapt my own coding style. I like that you start completely fresh by not looking in the code before. Also very interesting to see the build setup approaches of the creators. I'm really looking forward to more videos in this series! Thank you!
@scoutthespirit11334 жыл бұрын
Dude i really honestly love how much detail you go into, great job, and yes absolutely i would watch an hour or 8 hour vid
@xNothing2Lose4 жыл бұрын
My point on the whole code vs load vertices topic: everyone shold have done it the code way once. Just to get a grasp of what it's actually doing. But loading in is the only way to get realy productive. And if something is faling you got the knowledge to debug properly
@SrbijaCG3 жыл бұрын
Im learning so much from you, mate. Just go on as long as you want. I honestly appreciate it so much.
@ruadeil_zabelin4 жыл бұрын
30:19 If you're going to take an internal copy"of the object (here a string), always do it by value like this and move it. The reason for this is exception safety. If there is an exception that happens due to the copy, it happens at the calling side and not in your constructor. This also means in many cases that your constructor can be noexcept. Only use const std::string & if you don't intend to keep a copy internally and just merely need to read from it.
@dmitryvasyliev24514 жыл бұрын
It's good practice to use string_view too just for reading. You can even pass C-style strings to function with string_view parameter.
@ruadeil_zabelin4 жыл бұрын
@@dmitryvasyliev2451 Indeed. Don't forget to make things properly const, even when passing by value (like this string_view parameter).
@Flashfake4 жыл бұрын
With regards to the vertices. There is a second way. But it only works for manifolds and solid geometry. I've worked quite a bit on meshing volumes for finite element analysis. We create a second matrix called a connection matrix. Vertex (or node for me) is connected to multiple times. Connection always happens counter clockwise to draw triangles. Because of this, the cross product of the path creates a normal direction.
@NordicFrog3 жыл бұрын
One hour code reviews PLEASE. That would be awesome. Also thank you for all the great videos you've made. They have helped me tremendously.
@tomaszurbanski30574 жыл бұрын
One thing to all 15 to 20yo guys and gals. DON"T GIVE UP! Even starting project from scratch is better than giving up. I've lost couple of years of what could be learning because I gave up and dropped programming many times. I did learn other things, true, but the fact is when working as part of a team, being jack of all trades serves nobody. And if you're good at something and have guts to just go outside and talk to people. You'll find a good team with interesting projects. And with team you can do much cazier and more awesome stuff than by creating alone. But you have to be very good at one thing and comunicate well in what is it you are good at.
@cankarkadev92814 жыл бұрын
I am writing a Game Engine too and rn I am at the point where I try to program a "Mesh Factory" as well, in my engine it is just called renderables and I think it is quite useful to see how different shapes are done in code before actually trying to program a loader for obj or fbx files. I think even for a beginner it can provide a lot of background information how these shapes are done.
@tzimmermann4 жыл бұрын
Yup, that's good training! Some features, like correctly textured icospheres require a lot of work and you wouldn't believe at first glance. I had much fun doing this. Procedural geometry is nice too, once you have basic shapes done.
@VgManiac4 жыл бұрын
@@tzimmermann Don't forget to join The Cherno discord server and talk to others about your work! :)
@tzimmermann4 жыл бұрын
@@VgManiac Yeah maybe I should. In fact I joined it months ago but didn't post anything there, I'm not really the social type! Tell you what, let's talk on discord when you have some time!
@treet12824 жыл бұрын
This is insane! I've been picking away at LWJGL for the past couple of weeks, getting comfortable with the OpenGL calls, but still not making it too far beyond basic polygons and circles. Thank you so much for this tutorial, so many others aren't nearly as concise or direct.
@tomaszurbanski30574 жыл бұрын
I remember years, years ago when I was learning OpenGL but didn't know anything about any 3D file format I've hard-coded vertex positions for whole low-poly face mask. Or did a whole low-poly alphabet. I've drawn those stuff on paper first and took measures from it, ofc. But stil... nostalgia :)
@JM-Games4 жыл бұрын
I could definetly watch an hour of this, I don't write my own engines but I make my own games and your view and ethics with code is very interesting to watch.
@Normy123 жыл бұрын
For code reviews the 20 (+/- 10) minute video is probably better than going a full hour+ that you might need. When you get to a topic that you have a lot to say, save that to an idea for a separate video. I'd love to watch you just talk about cubes.
@Abdo20004 жыл бұрын
This was very informative! It would certainly be awesome to watch 1h+ code reviews!
@mms05374 жыл бұрын
Cherno how about a Series on DirectX?
@judedavis923 жыл бұрын
Although I have a short attention span, I can refocus if I take a short break. I would love if you made these long! Perfect 🤩
@billypersistent61274 жыл бұрын
I made that vertex normal mistake once trying to render rectangular prisms, and when I discovered it, I gave each corner a diagonal normal and rounded them in the fragment shader, which surprisingly worked okay.
@VineetNairhero4 жыл бұрын
Welcome back❤️
@Haellsigh4 жыл бұрын
At this point, CMake is the standard in C++. Also wanted to point out that it worked and built the project on your first try. Building Hazel/Hazelnut with premake5 didn't work out of the box on my computer. Anyways, great work as always!
@dmitryvasyliev24514 жыл бұрын
Yep, you're right. Mistake in the video was mine. I abstracted stuff into modules and forgot to include the one responsible for multi-cobfig generator xd
@guywithknife4 жыл бұрын
Sorry, rant about CMake below... CMake is standard, but that doesn't mean it doesn't suck. Of all the languages I use regularly, cmake is the worst build tool and made me dread using C++ the most. Like, I would actually put off starting projects I wanted to work on just because I hated the thought of struggling with cmake to get everything set up right. What's even worse is I had a project set up in cmake and then it just randomly broke when trying to compile on a different computer. I have no idea if it was environment issues, cmake version issues, or my setup, but either way, it was a horrible experience and waste of time that could have been spent on my actual project. Back in the old days I'd use whatever build system the IDE I was using used, eg QtCreater had qmake before it switched to cmake; but nowadays I tend to prefer to just use VSCode or vim and a cli build system -- obviously for interop with other people, I'll still use cmake... but for my own projects, I use Tup and I'm a lot lot happier. I don't put off new projects due to build system anymore. cmake sucks. Its really terrible. But its won in C++ land, so we're forced to use it if we want other people to be able to easily use our (non-header-only) code. Compared to other languages' build tools though, its absolute garbage (tools I actually like using: Cargo, Leiningen, shadow-cljs, hell even npm and yarn, even maven or gradle, or even pip, which I don't really like, are better than cmake...) Anyway, end rant. Sorry :) I like using C++ (maybe less now that there are good alternatives like Rust, Go, Zig etc, but I still like using it and especially can't beat some of the nice libraries like EnTT, taskflow and Immer. But man do I hate cmake... and I say that as someone whose been programming for 20 years in a wide range of languages.
@dmitryvasyliev24514 жыл бұрын
@@guywithknife Just read Professional CMake by Craig Scott and there will be no problems. CMake is REEEEALLY complicated. but if you know how to setup it right - there will be no problems. Build system is really complex, but great i think. You can do everything. But yep, it's hard and annoying at first)
@dmitryvasyliev24514 жыл бұрын
@@guywithknife The biggest Issue with CMake is single- and multi-config generators. There's too many problems with them. But when you understand how it's all working and how to fix these problems - it's ok. You can find all fixes to common problems in my project repo in cmake/build.cmake file.
@guywithknife4 жыл бұрын
@@dmitryvasyliev2451 Well, the thing is I've already spent too long trying to learn to use CMake. I estimate I've spent maybe 4 or 5 full days total over the past couple of years trying to learn it and at this stage my time is too precious to spend more time on it, when I can just move on and do something that I actually enjoy or that gives me actual results instead. And like I said, I had a project where I spent a good chunk of time getting it working well in cmake and thought I had it all figured out and then it broke when trying to compile on a different computer. I never did figure out how to fix it. That experience made me procrastinate every single time I had an idea for a new C++ project. Tools that make me procrastinate are not good for my mental health or productivity, so I try to ignore them instead. I'm much happier and more productive since I gave up on cmake! But... if I want other people to care about anything open source I make, I sadly have to struggle with cmake again :(
@scoutthespirit11334 жыл бұрын
I hope you keep this video series going, its extremely helpful, thank you.
@MusicForLifePL204 жыл бұрын
I think definitely writing out cubes like he did is good. Just for getting used to the stuff you explained with duplicated vertices. Many DCC tools would show you 8 vertices in this kind of cube, while in reality it's *3 due to different normals. So for beginner to wrap his head around this, that good idea.
@e.96283 жыл бұрын
When writing finite element code, I usually ask the user for a gmsh file. gmsh is a foss mesh generator. It has a GUI, but you can also write "code" as input for gmsh.
@JracoMeter4 жыл бұрын
I'd watch hour long reviews. These videos are very informative on how code works together.
@digitaleepacko25914 жыл бұрын
I am so glad i found your channel. This is awesome. Keep up the good work! Thank you for sharing your knowledge.
@MrScalzinator4 жыл бұрын
If you are new to computer graphics I would say it is important to learn how to create procedurally generated shapes. Starting with the cube and learning that you need 24 vertices when you realize your lighting doesn't work correctly because of the normals is one example of why this is important.
@bitmammothOG4 жыл бұрын
This is awesome! Please keep up the code reviews in this format or longer :)
@jhonsnow55344 жыл бұрын
Wow I am so impressed how perfectly you pronounced his name. What is your origin, Cherno?)
@INeedAttentionEXE4 жыл бұрын
Chernokov or Chernokovia, is Russian af, and Yan has some meaning in Chinese IIRC
@inarifoxking4 жыл бұрын
Simplicity above else. Write only what you need to solve your current problem and organize/structure your code when you know how to make those decisions effectively. This will help prevent unnecessary classes and wrappers and overall clutter that will only slow you do as your project becomes large.
@Lars-ce4rd4 жыл бұрын
What a talented 17 yr old! Bravo!
@giganooz4 жыл бұрын
SOMETHING YOU MISSED: There might be more to the real::reference wrappers you said you weren't a fan of. A reference could just be used as a smart way to wrap a resource, so that the resource could be replaced with another one in real time and you wouldn't have to change any code. This can be really useful when adding custom resource packs to the game. Just reimplement real::resource to support a base resource and an overwrite and make it so the getter returns the overwritten resource whenever it has one. Also you can keep track of how many times a resource is used and automatically unload it when it has no users.
@amiralizadeh94804 жыл бұрын
I really like these code review series
@codingsaroj184 жыл бұрын
I would like to have 1 hour code reviews.
@datdudeoj76734 жыл бұрын
I think that a beginner should know how to feed vertices they manually wrote into their renderer but don't stay there long! Learning how to import and utilize 3D objects files is a lot of fun and changes how you feel about your engine. Especially if you started out writing the information by hand xD.
@nokkturnaldev4 жыл бұрын
These videos are my favourite. Very helpful!
@lazykazuo4 жыл бұрын
I like the idea of the video series, i think it can be so useful and it is entertaining! As far as feedback in all honestly i would like you to tackle a specific topic when doing a code review, so you can go in depth and use the code as an example to explain a better/different way to approach a topic. Logistically it would require more effort because you need to go and take a look at the code first to decide a topic and it's less of a reaction, and takes more of your time, so i am not sure if this is the best way to do it. But when it comes to a code review of a broad topic such as a game engine i think that the videos could benefit by having a smaller scope when it comes to explaining and teaching.
@totallynuts75952 жыл бұрын
If you are a beginner, absolutely start by manually writing vertices and indices manually, you'll get a far better understanding of them. It's easy to copy-paste stuff, and see it work, it's harder and substantially more important to be able to understand it.
@alexanderoguzie-ibeh20534 жыл бұрын
The wait is over🐕
@lmaoisaac6234 жыл бұрын
Hey, I’ve looked a lot around and I’ve come to a conclusion that you’re the perfect teacher to teach Vulkan.. I suggest making a Vulkan API series, there isn’t any Vulkan tutorials that are organised playlists or videos, so making the series would increase your view by thousands even your subscribers. Thank you
@lennysmileyface3 жыл бұрын
I started with a hardcoded cube just to get something rendered and implemented textures before loading meshes.
@coenfuse4 жыл бұрын
Even if code review goes beyond 2hr. I'd still watch it. If its fine to you then it's fine to me.
@attilatorok57674 жыл бұрын
if I have 30 minutes to watch a code review Ill have an hour to watch a code review
@Erikdevable4 жыл бұрын
Wether or not it's good to begin with an array of indices to draw a cube, or with a model I've done both in both the flash 3d and webgl days. I think it's usefull to build your own cube for the first time, I think getting hands on with it helps you intrinsically understand what all makes up a model, and I've definitely benefitted from it.
@browaddup32894 жыл бұрын
One hour code reviews would be great!
@ahmadshiddiqn4 жыл бұрын
next time i work on my personal project, im gonna send it to you to review it cause i just need a lot of improvement. not having someone here to correct my mistakes is like instead of learn to swim, it's learn to drown...
@abcabc3714 жыл бұрын
Why do u associate normals to vertices and not to the cube faces (poligons) !?!? 16:00
@firstname32yearsago654 жыл бұрын
Really enjoying this kind of videos
@chrism46644 жыл бұрын
Live stream would be great actually! That way we can walk through ask questions and point things out!
@generichuman_4 жыл бұрын
Awesome content. One of the best resources for game development in C++ on KZbin. I'm curious, would you ever do a tutorial series on DirectX 12? It's a fascinating topic, and there are depressingly few videos on the subject.
@mayushkumar16234 жыл бұрын
For a beginner, ig, it is pretty nice to atleast write a cube by hand while learning. You get to understand a lot as to how a vbo is layed out. Model loading should be the next step, as it is not as easy as it sounds (this is a countless number of stressful days speaking). If you mess something up, and you go in to debug the loading procedure with absolutely no knowledge as to how it works on a basic level, it's gonna be a nightmare. Also, things go crazy when you step into the realm of tangents and bitangents, specifically when you are calculating them yourself!
@aaronwinter79114 жыл бұрын
wanna code review the godot engine? I wonder what you would think about it.
@joshuamaldonado17214 жыл бұрын
Unreal engine is also open source
@dmitryvasyliev24514 жыл бұрын
@@joshuamaldonado1721 I'll like to watch 10 hours unreal engine review. It's not a joke))
@xxDeath99Starxx4 жыл бұрын
So that's why assimp loads so many vertices Lmao thought I was going crazy when is loaded 3x vertices. I havent tried lighting yet.
@epic13434 жыл бұрын
i cant wait for you to finish so I can make a game with it
@AgentM1244 жыл бұрын
Perfect opportunity to make a game engine called coco, pea or wal based off of hazel.
@aodfr Жыл бұрын
It good idea for person learning 3D programing to construct raw vertex data for their first demo. After that they need to build some sort of mesh loader for example obj fies.
@FUNktshnl3 жыл бұрын
Why would you need every vertex the number of times it is used in a different surface (cube out of 24 instead of 8 points)? When you create 3d-Objects (for example a simple cube) with Blender you can export them to an OBJ-File. This is essentially a textual list of vertex-position-data (v={x,y,z} -> 8 positions), vertex-texture-data (vt={u,v} -> 14 texture coordinates), vertex-normal-data (vn={xn,yn,zn} -> 6 normals) and the combination of these three information as a triangular-face-representation (f={v0/vt0/vn0,v1/vt1/vn1,v2/vt2/vn2} -> 12 faces). Isn't it possible to use a combined indexbuffer for the triangular-face-representation?
@raduhabinyak68604 жыл бұрын
Yes one hour please
@thetruedjlivewire3 жыл бұрын
it makes more practical sense to use integration and then move onto sub components. why try to start using the internet by designing your own fpga architecture and then building the pcb etch. also what code classes and tutorials teach you(the free stuff) is going to be what something does. the basic code tutorials or classes aren't going to show you a layout for building up something someone would actually want to build.
@Remianr4 жыл бұрын
This guy at 17: Creates very simple 3D engine that can display simple cube Me also at 17: Creates _"simple"_ Python script that comes for me to my online lessons so I can sleep longer 😎
@ghostlucian126 ай бұрын
pragma once is not supported by every compiler, only MS compiler, i had problems with it in the past by g++, so using header guards is more safer, the only problem you have to update the header guards if you copy paste a file
@TechDunk4 жыл бұрын
Love this series!
@sigitsatriap65053 жыл бұрын
i love keep watching something that i don't understand
@aidennymes63354 жыл бұрын
why not have each triangle/face have a normal assigned to it? since all its vertices have the same normal vector anyways? that way you free up memory by removing redundant information in the buffers too.
@aidennymes63354 жыл бұрын
@Borgilian it works for triangles. and you can represent any kind of polygon with them e.g. complex shapes.
@user-dh8oi2mk4f Жыл бұрын
@@aidennymes6335 You can't set per-primitive data in OpenGL(I don't think you can do it in any other low-level graphics api either)
@adrianwheeler19364 жыл бұрын
Yo this video is very helpful, thanks bro
@Narblo4 жыл бұрын
You could derive the normal to have the others in shader but maybe that have performance drawbacks for your engine it depends on your target
@peremoyaserra27493 жыл бұрын
Is it that bad to calculate the normal per triangle? I have almost never stored them at all because if you save them you have to rotate them too, so just regenerating them from the geometry that's in the position you want doesen't look to be that bad.
@nahuelfernandez23524 жыл бұрын
I would love for you to extend the video as much as you think necessary.
@tedeusz834 жыл бұрын
I recently got involved with Raycasting technique :)
@Bonniebelle_00__3 жыл бұрын
say for me I like to view the stance of logical reduction first so seeing the cube be calculated is efficient enough by the own mind and solving a potential problem in the future but its good to decode and by that debug also but ill like to see what my mind come ups with first then the computers base
@aryanparekh93144 жыл бұрын
Which visual studio theme is that? I love it!
@brunomarques5258 Жыл бұрын
Cherno, I had one problem with premake that was critical, it failed to generate makefiles to my project for linux
@pranavgoel294 жыл бұрын
I love this series 😊
@typistkid90124 жыл бұрын
you can calculate the normals in a geometry shader too, and that's how I implement lighting.
@satyammishra55824 жыл бұрын
Model Loading comes with its own headache, writing a model loading class is something a beginner will find too hard, so its better to manually write the vertices.
@dmitryvasyliev24514 жыл бұрын
I'm not a beginner, so it's in my planes;)
@gioele334 жыл бұрын
Is it a problem if a don't use GitHub, but i just put a .rar with an Eclipse project in it?
@guywithknife4 жыл бұрын
Just register a github account for it and don't use it for anyone else? I know plenty of people who don't use github, but have an account for the occasional times they want to share something or interact with some open source project. Its free, simple and takes only a few minutes. You can do it anonymously if you really prefer not to give them any details.
@NeoChromer4 жыл бұрын
Do you accept only C++ / Game dev code ? Or do you also want to expand on Web development ?
@NeoChromer4 жыл бұрын
@N30 I did ?
@Orincaby3 жыл бұрын
Fun Fact: His name is The Cherno
@acidev4 жыл бұрын
Hello Yan, in this video you said about loading 3d models. Can you give me advice please about loading model from .obj files. When you load it, all indices are mixed. I can only load positions, normals and textures indices in different arrays. I can't bind different indices for different arrays. I can only load all my vertices in one array and use one indices array but this is very heavyweight. Does any better solution exist?
@akashthoriya4 жыл бұрын
Great video brother, Kindly let us know, what is the minimum laptop/pc requirement to follow your game engine series.
@contentprogramming4 жыл бұрын
nice review :)
@valizeth40734 жыл бұрын
Why would you ever use a raw array over std::array
@jesseburstrom59204 жыл бұрын
I spend most time making client simple and modular for sake of reusability but at high level program i get lot of ground work which i can use to my own benefit. So it is maybe high level game engine programming. I add enough complexity to make simple things i general possible for future use everywhere so 'it is there'. How to manage different files communication with server etc ohh it is complex. If i can also master ground level programming the better but hopefully i will not have to....
@thedeliverguy8794 жыл бұрын
More real than Unreal
@mitchellrobinson67984 жыл бұрын
Both loading model and hard coding it would be great for a beginner.
@perefm4 жыл бұрын
Nice review, I think it would be awesome to dedicate a video about Vertex Array buffer class and the layout generation... or maybe you already have done it? oh, god... there are so many interesting videos in the channel and I have so few time :( EDIT: oops, you already did one video on this! I'll check it asap! :)
@abhijatpandey14904 жыл бұрын
man plz can you make a tutorial/series of making a game using opengl as ur opengl series mostly focuses on the theory and fundamentals... :)
@nikki-deprecated3 жыл бұрын
finally, build instructions that just say "use clion" lmfao
@amrutakelkar75294 жыл бұрын
1hr+ is ok cherno 👍
@nikondrat38754 жыл бұрын
will you continue creating the 3d engine?
@ogSmero4 жыл бұрын
I'm 22, should I even start to understand how to create engines or is it too late for me? I am looking towards OpenGL, C++. It's a tricky stack (it seems to me).
@guywithknife4 жыл бұрын
Why would it be too late? Its never too late to start learning something new. What is your programming skill level like? If you are an absolute beginner to programming, then yeah, I would recommend learning with something else (you won't yet be able to make use of the reasons why C++ is popular -- control over low level memory and performance details -- yet anyway, so no need to worry about it. Python + PyGame might be a good choice, or Javascript and one of its game libraries -- I quite like Pixi.js for graphics). Everything you learn will translate to C++ later, but you will get results much faster. If you're just starting out, learning to program and getting results in terms of little games (to keep motivation up) is much more important than learning C++ or building the fastest best code available. On the other hand, if you already know how to program (in any language), then jumping into C++ isn't a bad idea just because that's what's popular, so there's a lot of code and articles out there dealing with game development in C++. It also depends on your goals. If you want to make games, then don't build an engine. Just pick an existing one like Unity, Unreal, Godot, etc. You can spend years on an engine and never make a game if you're not disciplined or careful, while these engines will get you started very quickly and contain features you'll likely never build yourself. On the other hand, if your goal is to learn, then building a toy engine is fantastic. Its also a ton of fun. But unless you're experienced and have a specific goal in mind that existing engines aren't good at, then building a custom engine in order to make a game is not a good idea and not a good use of time. So only do it if 1) that's what you want to do -- either for fun or to learn -- and your goal isn't necessarily to actually create anything other than test games, or 2) you have some very specific needs that existing engines don't address well. Also, try make sample/demo games as early as possible. That way you're forced to think about it in a top down fashion: what does gameplay-programmer-you need to implement this little demo? Remember, the whole point of an engine is to provide a convenient and reusable tool to make and run the games gameplay-programmer-you dreams up, so think of the UX this version of you requires (not necessarily in terms of visual UI tools, but also in terms of data formats (I like Toml for human readable data nowadays) and API's or abstractions. At least, that's my advice as a non-game-developer who doesn't work in the industry and has never used a real engine to make games, but has been programming for a long time, worked in many industries (telecoms, aerospace, consumer electronics, banking/finance and more) and has built a number of toy engines and games. You can learn a LOT from writing an engine in C++, but make sure that's your goal because unless you have a careful plan to stick to, the chances of actually making a proper game with a custom engine aren't very high. Which is ok if your goal is learning, but if you want to actually release a game, maybe start with unity or whatever.
@ogSmero4 жыл бұрын
@@guywithknife Thank you for your comment. the goal is to write an easy game for yourself. why not engines? I really do not like that my small and very simple game will weigh 50-200MB. I do not like it. I think the SFML library can give me almost everything I need for my little game, and one of the best things about it is that it will only weigh a couple MB. Well ... I hope so :)) P.S. I just don't understand why use a powerful engine for a simple and easy thing, in this case the weight of the engine will weigh 80-90% of the total weight of the game.
@guywithknife4 жыл бұрын
@@ogSmero in any case, good luck with your game!
@ogSmero4 жыл бұрын
@@guywithknife my friends say that I have a view of games (development) as in the 90s, they say "why do you need to there are ready-made engines, and no one cares about the size of the game, what difference it weighs 20MB or 210MB" Do you think I really should bother so much about the weight of the game and the language? The choice fell on C ++, firstly, because earlier (during my studies) I bought a book by Stephen Prat, my hands didn’t reach, and now I’m afraid that it’s in vain, and secondly, I am sympathetic to the language, there is something in it alluring, but difficult ... often think "maybe it's easier to make a toy in Java", I wrote all this very messily to you, sorry.
@guywithknife4 жыл бұрын
@@ogSmero it sounds like its something you want to do, perhaps just as a challenge to yourself. Unless your goal is the end result, the game, rather than the process (for this project), then I say go for it. If your goal is the game, then I think you'd be better off using premade tools such as Unity, but if you want to learn, or want to see how things work by doing it yourself, or you want to challenge yourself or any other reason other than "I want to have a finished game" (you can still have a finished game, but if that's your goal, using something like Unity just makes it more likely you'll finish it), then there's no reason not to. C++ has its gotchas and quirks and isn't the easiest language. For learning to program, I would recommend something else just because its easier to make progress and therefore less likely you will lose interest. But if you want to learn C++, go for it. Plenty of people learned it on their own, many at a young age. I learned C++ myself from online resources when I was about 16. Sure, my code maybe sucked back then, but my point is, yes, C++ isn't the easiest, but its not insurmountable either and you don't have to learn everything there is either (and many of the newer C++ versions actually make some things easier too IMHO). It sounds like you really want to try it, so I suggest that's what you do. You have to make sure its interesting for you, after all. If you hit any roadblocks and feel like giving up, I would suggest trying something else (like unity) instead for a bit and then come back to it. Personally, I find working in C++ rewarding, even though there are perhaps often better choices available now. I wouldn't worry about the weight of the game. I mean, its your first game, you're learning. You're not trying to make a commercial game for a gameboy or something.[
@goldenlava10194 жыл бұрын
I wanted to try to add mobile support to Hazel, so I was wondering if anyone had any tips or any idea of how to start development on mobile devices, preferably Android.
@ahmadayazamin33134 жыл бұрын
I don't know if you will come across this comment, but I do have a question that I would love to have answered. I am actually building a game and a game engine and I would like it to be reviewed (the engine ofc). However, the language I am using is Haxe, and considering that this is a C++ channel, I was wondering if you accept code from other languages. For your information, Haxe is very similar to Java and C#, so reading it may not be as hard.