BASIC 3D GAME ENGINE based on Hazel! // Code Review

The first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/thecherno11201
Patreon ► / thecherno
Instagram ► / thecherno
Twitter ► / thecherno
Discord ► thecherno.com/discord
Send an email to chernoreview@gmail.com with your source code, a brief explanation, and what you need help with/want me to review and you could be in the next episode of my Code Review series! Also let me know if you would like to remain anonymous.
This video is sponsored by Skillshare.

Пікірлер: 188

  • @TheCherno
    @TheCherno3 жыл бұрын

    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

  • @astaghfirullahalzimastaghf3648

    @astaghfirullahalzimastaghf3648

    3 жыл бұрын

    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.

  • @MyRandomChannel24

    @MyRandomChannel24

    Жыл бұрын

    @TheCherno I am Trying to make a Game Engine in C# how do I make a Game Engine Could You Do a Game Engine Series in C# Please Maybe or Convert Your C++ Code to C# of If you have a C# Course for Making a Game Engine It would be much appreciated, Thanks Cherno

  • @dmitryvasyliev2451
    @dmitryvasyliev24513 жыл бұрын

    Thank you for this review ALOT!

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    I'll do my best to improve the code)

  • @kovesik

    @kovesik

    3 жыл бұрын

    Дмитрий Васильев

  • @nexovec

    @nexovec

    3 жыл бұрын

    Actually him OMG

  • @iyappansriram9854

    @iyappansriram9854

    3 жыл бұрын

    Dmitri you're actually good. Be proud! Good luck on coding!

  • @Kitulous

    @Kitulous

    3 жыл бұрын

    нифига он твоё имя без акцента произнес я аж офигел [rough translation] oh my god he uttered your name without an accent i was pleasantly surprised

  • @sinkler123
    @sinkler1233 жыл бұрын

    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.

  • @fdelduquenobre

    @fdelduquenobre

    3 жыл бұрын

    Agree. I really don't care if its 12 hours long, will watch it all in small parts when I got some spare time

  • @bobas5948

    @bobas5948

    3 жыл бұрын

    same.

  • @nerdmommy7114
    @nerdmommy71143 жыл бұрын

    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.

  • @nexovec
    @nexovec3 жыл бұрын

    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!

  • @morgan3964
    @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!

  • @patrickwilmes
    @patrickwilmes3 жыл бұрын

    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!

  • @scoutthespirit1133
    @scoutthespirit11333 жыл бұрын

    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

  • @SrbijaCG
    @SrbijaCG3 жыл бұрын

    Im learning so much from you, mate. Just go on as long as you want. I honestly appreciate it so much.

  • @xNothing2Lose
    @xNothing2Lose3 жыл бұрын

    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

  • @treet1282
    @treet12823 жыл бұрын

    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.

  • @zoltankurti
    @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.

  • @jukit3906

    @jukit3906

    2 жыл бұрын

    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.

  • @zoltankurti

    @zoltankurti

    2 жыл бұрын

    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.

  • @jukit3906

    @jukit3906

    2 жыл бұрын

    @@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

  • @DanyBittel
    @DanyBittel3 жыл бұрын

    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.

  • @bitmammothOG
    @bitmammothOG3 жыл бұрын

    This is awesome! Please keep up the code reviews in this format or longer :)

  • @Abdo2000
    @Abdo20003 жыл бұрын

    This was very informative! It would certainly be awesome to watch 1h+ code reviews!

  • @Flashfake
    @Flashfake3 жыл бұрын

    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.

  • @digitaleepacko2591
    @digitaleepacko25913 жыл бұрын

    I am so glad i found your channel. This is awesome. Keep up the good work! Thank you for sharing your knowledge.

  • @scoutthespirit1133
    @scoutthespirit11333 жыл бұрын

    I hope you keep this video series going, its extremely helpful, thank you.

  • @NordicFrog
    @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.

  • @cankarkadev9281
    @cankarkadev92813 жыл бұрын

    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.

  • @tzimmermann

    @tzimmermann

    3 жыл бұрын

    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.

  • @VgManiac

    @VgManiac

    3 жыл бұрын

    @@tzimmermann Don't forget to join The Cherno discord server and talk to others about your work! :)

  • @tzimmermann

    @tzimmermann

    3 жыл бұрын

    @@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!

  • @nokkturnaldev
    @nokkturnaldev3 жыл бұрын

    These videos are my favourite. Very helpful!

  • @tomaszurbanski3057
    @tomaszurbanski30573 жыл бұрын

    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-Games
    @JM-Games3 жыл бұрын

    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.

  • @firstname32yearsago65
    @firstname32yearsago653 жыл бұрын

    Really enjoying this kind of videos

  • @generichuman_
    @generichuman_3 жыл бұрын

    Awesome content. One of the best resources for game development in C++ on KZread. 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.

  • @TechDunk
    @TechDunk3 жыл бұрын

    Love this series!

  • @MusicForLifePL20
    @MusicForLifePL203 жыл бұрын

    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.

  • @amiralizadeh9480
    @amiralizadeh94803 жыл бұрын

    I really like these code review series

  • @ruadeil_zabelin
    @ruadeil_zabelin3 жыл бұрын

    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.

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    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_zabelin

    @ruadeil_zabelin

    3 жыл бұрын

    @@dmitryvasyliev2451 Indeed. Don't forget to make things properly const, even when passing by value (like this string_view parameter).

  • @billypersistent6127
    @billypersistent61273 жыл бұрын

    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.

  • @adrianwheeler1936
    @adrianwheeler19363 жыл бұрын

    Yo this video is very helpful, thanks bro

  • @judedavis92
    @judedavis922 жыл бұрын

    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 🤩

  • @e.9628
    @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.

  • @caocaosama
    @caocaosama3 жыл бұрын

    I would even watch a 10 hour code review :D

  • @JracoMeter
    @JracoMeter3 жыл бұрын

    I'd watch hour long reviews. These videos are very informative on how code works together.

  • @lazykazuo
    @lazykazuo3 жыл бұрын

    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.

  • @chrism4664
    @chrism46643 жыл бұрын

    Live stream would be great actually! That way we can walk through ask questions and point things out!

  • @browaddup3289
    @browaddup32893 жыл бұрын

    One hour code reviews would be great!

  • @pranavgoel29
    @pranavgoel293 жыл бұрын

    I love this series 😊

  • @Erikdevable
    @Erikdevable3 жыл бұрын

    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.

  • @VineetNairhero
    @VineetNairhero3 жыл бұрын

    Welcome back❤️

  • @tomaszurbanski3057
    @tomaszurbanski30573 жыл бұрын

    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.

  • @ahmadshiddiqn
    @ahmadshiddiqn3 жыл бұрын

    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...

  • @mms0537
    @mms05373 жыл бұрын

    Cherno how about a Series on DirectX?

  • @malimbar2
    @malimbar23 жыл бұрын

    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.

  • @xxDeath99Starxx
    @xxDeath99Starxx3 жыл бұрын

    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.

  • @lennysmileyface
    @lennysmileyface2 жыл бұрын

    I started with a hardcoded cube just to get something rendered and implemented textures before loading meshes.

  • @tedeusz83
    @tedeusz833 жыл бұрын

    I recently got involved with Raycasting technique :)

  • @contentprogramming
    @contentprogramming3 жыл бұрын

    nice review :)

  • @Haellsigh
    @Haellsigh3 жыл бұрын

    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!

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    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

  • @guywithknife

    @guywithknife

    3 жыл бұрын

    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.

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    ​@@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)

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    @@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.

  • @guywithknife

    @guywithknife

    3 жыл бұрын

    ​@@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 :(

  • @jhonsnow5534
    @jhonsnow55343 жыл бұрын

    Wow I am so impressed how perfectly you pronounced his name. What is your origin, Cherno?)

  • @INeedAttentionEXE

    @INeedAttentionEXE

    3 жыл бұрын

    Chernokov or Chernokovia, is Russian af, and Yan has some meaning in Chinese IIRC

  • @codingsaroj18
    @codingsaroj183 жыл бұрын

    I would like to have 1 hour code reviews.

  • @alexanderoguzie-ibeh2053
    @alexanderoguzie-ibeh20533 жыл бұрын

    The wait is over🐕

  • @olegartamonov3439
    @olegartamonov34393 жыл бұрын

    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?

  • @raduhabinyak6860
    @raduhabinyak68603 жыл бұрын

    Yes one hour please

  • @typistkid9012
    @typistkid90123 жыл бұрын

    you can calculate the normals in a geometry shader too, and that's how I implement lighting.

  • @inarifoxking
    @inarifoxking3 жыл бұрын

    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.

  • @Narblo
    @Narblo3 жыл бұрын

    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

  • @datdudeoj7673
    @datdudeoj76733 жыл бұрын

    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.

  • @epic1343
    @epic13433 жыл бұрын

    i cant wait for you to finish so I can make a game with it

  • @coenfuse
    @coenfuse3 жыл бұрын

    Even if code review goes beyond 2hr. I'd still watch it. If its fine to you then it's fine to me.

  • @Lars-ce4rd
    @Lars-ce4rd3 жыл бұрын

    What a talented 17 yr old! Bravo!

  • @aryanparekh9314
    @aryanparekh93143 жыл бұрын

    Which visual studio theme is that? I love it!

  • @akashthoriya
    @akashthoriya3 жыл бұрын

    Great video brother, Kindly let us know, what is the minimum laptop/pc requirement to follow your game engine series.

  • @aaronwinter7911
    @aaronwinter79113 жыл бұрын

    wanna code review the godot engine? I wonder what you would think about it.

  • @joshuamaldonado1721

    @joshuamaldonado1721

    3 жыл бұрын

    Unreal engine is also open source

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    @@joshuamaldonado1721 I'll like to watch 10 hours unreal engine review. It's not a joke))

  • @mayushkumar1623
    @mayushkumar16233 жыл бұрын

    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!

  • @thetruedjlivewire
    @thetruedjlivewire2 жыл бұрын

    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.

  • @perefm
    @perefm3 жыл бұрын

    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! :)

  • @MrScalzinator
    @MrScalzinator3 жыл бұрын

    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.

  • @FUNktshnl
    @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?

  • @Bonniebelle_00__
    @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

  • @aodfr
    @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.

  • @nahuelfernandez2352
    @nahuelfernandez23523 жыл бұрын

    I would love for you to extend the video as much as you think necessary.

  • @peremoyaserra2749
    @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.

  • @brunomarques5258
    @brunomarques5258 Жыл бұрын

    Cherno, I had one problem with premake that was critical, it failed to generate makefiles to my project for linux

  • @giganooz
    @giganooz3 жыл бұрын

    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.

  • @attilatorok5767
    @attilatorok57673 жыл бұрын

    if I have 30 minutes to watch a code review Ill have an hour to watch a code review

  • @goldenlava1019
    @goldenlava10193 жыл бұрын

    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.

  • @totallynuts7595
    @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.

  • @AgentM124
    @AgentM1243 жыл бұрын

    Perfect opportunity to make a game engine called coco, pea or wal based off of hazel.

  • @abhijatpandey1490
    @abhijatpandey14903 жыл бұрын

    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... :)

  • @jesseburstrom5920
    @jesseburstrom59203 жыл бұрын

    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....

  • @gioele33
    @gioele333 жыл бұрын

    Is it a problem if a don't use GitHub, but i just put a .rar with an Eclipse project in it?

  • @guywithknife

    @guywithknife

    3 жыл бұрын

    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.

  • @NeoChromer
    @NeoChromer3 жыл бұрын

    Do you accept only C++ / Game dev code ? Or do you also want to expand on Web development ?

  • @NeoChromer

    @NeoChromer

    3 жыл бұрын

    @N30 I did ?

  • @aidennymes6335
    @aidennymes63353 жыл бұрын

    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.

  • @Borgilian

    @Borgilian

    3 жыл бұрын

    Because that only works for simple things like a cube (or flat continuous surfaces).

  • @aidennymes6335

    @aidennymes6335

    3 жыл бұрын

    @@Borgilian it works for triangles. and you can represent any kind of polygon with them e.g. complex shapes.

  • @user-dh8oi2mk4f

    @user-dh8oi2mk4f

    10 ай бұрын

    @@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)

  • @amrutakelkar7529
    @amrutakelkar75293 жыл бұрын

    1hr+ is ok cherno 👍

  • @nikki-deprecated
    @nikki-deprecated2 жыл бұрын

    finally, build instructions that just say "use clion" lmfao

  • @jesseburstrom5920
    @jesseburstrom59203 жыл бұрын

    I woke up (7month) 2 last on employment benefit (= full salary somehow strange but might be 2 years). I see i can use Bevy (after V0.3) they have android plugin but not really available for flutter project yet maybe i will probably try to dive in and look at code. Really silly but i want to have random 3d dices with physics and ray tracing (hoping) even the easiest seems very complex. Is it possible to port Hazel to android and then how? I like all about game engines. Saw the Blizzard developer saying he wants to support 'indie' programmers on Skystone Games seems cool when have full project to show. Like mine is an engine to make engines so everyone can do it like the old days(games days... he) but like emulating a platform (on platforms) etc... great series Hazel!

  • @sigitsatriap6505
    @sigitsatriap65052 жыл бұрын

    i love keep watching something that i don't understand

  • @abcabc371
    @abcabc3713 жыл бұрын

    Why do u associate normals to vertices and not to the cube faces (poligons) !?!? 16:00

  • @satyammishra5582
    @satyammishra55823 жыл бұрын

    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.

  • @dmitryvasyliev2451

    @dmitryvasyliev2451

    3 жыл бұрын

    I'm not a beginner, so it's in my planes;)

  • @thedeliverguy879
    @thedeliverguy8793 жыл бұрын

    More real than Unreal

  • @nebuliam9562
    @nebuliam95623 жыл бұрын

    You should write a Vulkan backend for hazel :)

  • @nikondrat3875
    @nikondrat38753 жыл бұрын

    will you continue creating the 3d engine?

  • @mitchellrobinson6798
    @mitchellrobinson67983 жыл бұрын

    Both loading model and hard coding it would be great for a beginner.

  • @yccm-abhi2366
    @yccm-abhi23663 жыл бұрын

    I want to ask you one thing, did you close the series of the 3D Game Dev (Minecraft) we want episode 35 pls. 🙏 That would be really appreciated. Thank you !!!

  • @GameslordXY
    @GameslordXY3 жыл бұрын

    Unrelated: Will you be disecting some more videoes on More Cerno anytime soon? A LOT of new PS5 things shown. Or rather new things from previously shown games. I was really surprised by Raytracing in Miles Morales shown best by Digital Foundry. Those damned sweet reflections are basically everywhere. I am sure Microsoft has something awesome to show, to demonstrate. I am sure ... . What could it be? 🤔 You never really commented on the Godfall, did you?

  • @valizeth4073
    @valizeth40733 жыл бұрын

    Why would you ever use a raw array over std::array

  • @elinolasco5195
    @elinolasco51953 жыл бұрын

    React to Demon’s Souls gameplay trailer 2. I think it’s important to point out that the game has a performance mode and a cinematic mode. Performance mode runs at dynamic 4k and 60 fps with lower resolution textures while cinematic mode runs at native 4k 30 fps with better textures. And also, the game doesn’t utilize ray tracing.

  • @uncommonsensor
    @uncommonsensor3 жыл бұрын

    sweet