Thanks for watching guys, hope you enjoyed the video! Next episode is already available for Patrons on www.patreon.com/posts/22346807 ❤️
@krinjon1936 жыл бұрын
Thanks for the care you are taking in explaining stuff in detail. Really appreciate it.
@anchutkastierlitz5 жыл бұрын
Hi Cherno, is there a way to make a one time contribution to support your game engine project? (I don't want to do it on the membership basis)
@TheCherno5 жыл бұрын
@@anchutkastierlitz You can pledge any amount on patreon.com/thecherno and then immediately cancel your pledge, that's how most people do one time contributions. :)
@williammccoll55635 жыл бұрын
I thought you would name it TheCherno lol.
@mihai47544 жыл бұрын
Thanks Cherno !
@grcardozo6 жыл бұрын
The "Getting Started" docs could be called "Hazel in a nutshell"!
@gustavo4passos5 жыл бұрын
That saves time! You can also Shift-Right Click on a folder and click on "Open Command Window Here" to open cmd in that folder, if you prefer.
@voxelrifts5 жыл бұрын
What????
@treyquattro5 жыл бұрын
O'Really?
@luizandre123454 жыл бұрын
@@treyquattro LMAO
@ilyboc4 жыл бұрын
gosh XD
@tanxyrogue8476 жыл бұрын
That cmd trick you did has me face-palming, you have no ideas how many hours i've wasted cd-ing, just to get to the current folder
@KaterKarloMawMaw5 жыл бұрын
works also for powershell by just typing in powershell
@shanebenlolo48665 жыл бұрын
Is there a plug-in you have to download to be able to do what he did? Do you happen to know the name of it, I did not here him mention one.
@aimanal-eryani78095 жыл бұрын
You can also just press shift and right-click and you'll have the "Open cmd here" option
@momentime85825 жыл бұрын
@@shanebenlolo4866 I'm sure you have discovered it already, but for anyone else you need to install Git.
@akuma00094 жыл бұрын
Aiman Al-Eryani that what i always do
@fedinabli49722 жыл бұрын
Hello Cherno, i'm a 17 year old starting this series to advance myself in C++, really loving it, i would like to thank you for this opportunity.
@galismaАй бұрын
That means you are 19 now. I hope you have a cool engine finished >:)
@obi1jim3165 жыл бұрын
I had to watch the video on half speed and still had to pause it several times to finally get it. Piece of cake.
@giladreich8106 жыл бұрын
I like your new rabbit! I bought the exact same rabbit 2-3 years ago and sometimes it helps me code ;)
@pako_powr6 жыл бұрын
Would've been awesome if it was the Stanford bunny :D
@solaireofastora52124 жыл бұрын
@@pako_powr Hello \[T]/
@progressivemusicnepal4 жыл бұрын
Hi cherno, I would like to thank you for complete game engine series for free, never seen a video like this on KZbin some are too complex and some lacks useful information. I am a self taught graphics programmer so I have faced little bit difficulty in learning game engine architecture. The books about game engine are too expensive and advance too, there's no one in our country who can teach game engine. Your game engine series is like a gem to me this can help me to build a complete working game engine thanks a lot for giving a time to make this video.
@chriscruz4292 жыл бұрын
I can't believe how much more I learn from hid videos than what I've learned at school.
@WeirdBrainGoo2 жыл бұрын
Schools don't usually teach you to develop game engines, unless it's a vocational school or something.
@Dagrond2 жыл бұрын
Love this style. Not only did I see everything that needs to be done, but I more importantly know why.
@EternalEvanesce4 жыл бұрын
i have no plans of coding a game engine nor do i want to make games. Here just to see how it is built! The depth is just keeping me hooked
@veroxid3 жыл бұрын
I recommend after creating the engine project: save that as a project template; this way you won't have to do _all_ the setup for _every_ project, just the parts that changes from one project to the next _(like changing it from a DLL to a EXE)._
@JoseRodriguez-rx4ck4 жыл бұрын
In visual studio community 2019 I cannot see the "Project Defaults" section to access the "Configuration Type" is it only available for the full version? Is there a workaround? thank you
@MartinAndrovich6 жыл бұрын
Why "bin-int" and not "obj"?
@Jaredbud Жыл бұрын
Just now getting into the series. Love the depth that you've put into this. Been wanting to build a level editor in Unity to get something that fits my concept. This may be a better idea as I enjoy knowing how things work.
@lexsheyn2 жыл бұрын
This trick with repository cloning saved my day, thank you.
@frankjibe4 жыл бұрын
Cherno, I just wanna thank you for your videos. I'm learning so much through your channel.
@kombuchamp6 жыл бұрын
I always added readme and license after pushing local repository to the github so there is no conflict, never thought of the way to avoid it you showed here!
@stipser12 жыл бұрын
Should you make some sort of distributing solution (or maybe some version control integration) you can call it "Nutspread"
@PaulanerStudios4 жыл бұрын
16:25 the most software developer thing I’ve seen in my life... instead of typing 4 characters switch window, copy, switch window again, paste 😂
@aw1lt3 жыл бұрын
lmao yeah
@srijan46226 жыл бұрын
You are one of the best resources on the internet. Thank You so much!!!
@astronime6 жыл бұрын
your thought is unbreakably lucid and you explain things really clearly. thank you for this and your tutorial series
@consultingprestig20966 ай бұрын
Hi thanks for it. I would like question for CommandLine Debug. I don't have path file Hazel.lib. Why ? thanks
@AndrewFalgout6 жыл бұрын
YES.. I'm really excited about this series!! Thanks TheChernoProject
@yaseenkhattak18455 жыл бұрын
I am loving this series as i already used Unity engine for creating games and getting to learn the core mechanics of a game engine is awesome !
@XxxGuitarMadnessxxX5 жыл бұрын
I am absolutely excited that you put these videos out; thank you!!! I'm just now starting to code along with this series and I can't tell you how much I've learned from and enjoyed your other videos; especially as a new aspiring programmer. Thank you again and I hope to eventually catch up to your current-ish (I know the dev flow is ahead of these videos lol) video series code-alongs!
@matt-g-recovers3 жыл бұрын
The coolest thing about this is, other than everything (and saying the word declspec out loud) is learning cool stuff at every turn. I day job as an Android Java/Kotlin engineer in the automotive industry near Motor City and I can almost guarantee the concepts here will apply to making me better at my job;) (There is sincerity here so many overlaps, so many solutions recast as other problems and solved in CS).
@마로-g2e Жыл бұрын
한국에서 게임 프로그래머가 되기 위해 엔진과 그래픽스를 공부하고 있습니다. 자료가 부족해서 좌절과 실패를 많이 하고 있었는데, 좋은 퀄리티 영상을 제공해주셔서 감사합니다. 저도 언젠가 북미로 가서 훌륭한 개발 프레임워크를 만들고 게임 산업에 기여하고 싶습니다. 감사합니다 TheCherno
@thomasfrans11854 жыл бұрын
This is such a cool idea. Although it may not help much anymore two years after posting the video, i turned off addblock for all your videos, i'll give all of them a like and am subscribed. I really hope this series keeps going for a long time!
@gigik644 жыл бұрын
Great video dude, but really, use git init and then add a remote origin, that thing you did with the clone was quite twisted xD
@7c7c72 жыл бұрын
It's nice to learn the origin of the name of hazel. I heard about the engine before watching this video and I though it was a reference to the hazel eye color. Hazel eyes are those eyes with a changing color with the distance from the pupil and it fits the graphic challenges a game engine faces. Just though it's an interesting coincidence.
@MsJavaWolf6 жыл бұрын
I am not really interested in game engines, I still like watching your videos, I just pick small stuff up here and there. The thing with deleting x86 is one such small thing, I have wasted some compilations because I had the wrong config selected which I don't support anyway. Also in general I think it's really cool to see someone build a real project. It really helps you to see the big picture of software engineering.
@catorials4444 жыл бұрын
Took me hours cause I'm stupid, I actually made a "custom build system" in CMake, that functions almost exactly as what chemo said. The directory contains two CMake projects that each has a CMakelists.txt file in it. One is the Hazel/custom game engine that statically links with all OpenGL libs and outputs a dynamic link library in a lib folder in the root directory, and the other is the sandbox template project that adds the game engine as a subdirectory and links with it. The root directory contains another CMakeLists.txt file that controls the flow of the build system by adding subdirectories. All of these feel very very hacky to me and I'm no expert. If you want the sample code just reply and I'll be "glad" to share it to ya, though It's not the best it works fine I guess... cheers!
@MieysoFelix2 жыл бұрын
OH MY FRICKING FISH! That is such an amazing series. So, i've been following this series for a while now, so: std::cout > answer;
@VoylinsLife3 жыл бұрын
I'm following along with VS Code on linux, I hope that this series will be possible. ^^"
@todorsamardzhiev144 Жыл бұрын
8:33 I've always done it like this and felt embarrassment in front of others because I intuitively know there's a better way. It's a relief that I'm not the only one :D
@esben1816 жыл бұрын
I love how you always make my sundays non depressing by uploading a video. Normally I just waste my time because I’m so concerned of the fact that school continues the next day
@alexaustin6961 Жыл бұрын
Crazy how far Hazel has come since this
@EnryuTheUnknown5 ай бұрын
What a great series to watch and work with, i learned alot in this vid thx and great work.
@casvanmarcel6 жыл бұрын
I don't mind longer videos. That way you get more done and not become handmade hero
@gavinw776 жыл бұрын
Handmade hero vids were 1 hour + 30 minutes QnA, recent HH vids are 3 hours. I don't understand your concern.
@derstreber26 жыл бұрын
The two projects differ in several ways. (there may be more differences, likely are, and with time even more will likely become apparent) 1. Handmade Hero is completely programmed on stream, no code is typed in unless the camera is rolling. Only exception being in the rare cases that the stream goes down, and the local recording stops or becomes corrupted. To the best of my knowledge, it has only happened a handful of times, and Handmade Hero is approaching 500 episodes. 2. One of the goals of Handmade Hero is to write everything from scratch, no libraries. Only exceptions, if you can call them an exceptions, is the win32 api for interfacing with windows, and openGL for rendering. Noting that in the latter case he has already written a software renderer that does not require openGL. Edit: If I remember correctly he also showed how to use the stb_font library for font rendering, just to show how to use a lib in your codebase, but at the moment the win32 api is handling fonts. If I understand correctly, TheChernoProject's project will not be adhering to such rules. This will come with it's own benefits and drawbacks. And that is totally fine. Handmade Hero is great for what it is doing, and I hope that this project is equally successful for what it aims to be doing. In either case, much respect to anyone who can maintain a weekly regiment of work on a side project, and in a relatively consistent manner showing off such work to the eyes of hundreds, possibly, thousands of potential critics, plus balancing that with a full time job and family life etc. I'm looking forward to what is to come. Good luck.
@shaikantest764618 күн бұрын
"avoid spaces in paths" - it's good advices for native speakers, but in general case it's worth mention "avoid non-english letters as well" as it breaks even more tools than spaces and is quite a common problem
@admercs6 жыл бұрын
I second the request for CMake, gcc or clang, and Linux
@HermanWillems6 жыл бұрын
while using windows only libraries?
@themenko6 жыл бұрын
Meson > CMake
@npc69245 жыл бұрын
Adam Erickson If you're good enough with coding, you can do it without a tutorial. For a start, you'll want to compile all the dll(so) code with -fPIC and -fvisibility=hidden, and where the Windows version uses `__declspec(dllexport) void Print();`, you'll want to use `void Print() __attribute__ ((visibility("default")))`. For dllimport, just using external seems to work for me, but I'm doing this in C so idk what results it would bring in c++. Should I release my code for the Linux/gcc version?
@axeldahlberg70435 жыл бұрын
@@npc6924 That would be great :)
@dekinxxx6 жыл бұрын
You are remarkeble. Just wanted to let you know. Please keep teaching these
@jamesmnguyen6 жыл бұрын
It's not super important but you can link static libraries into each other. So the game can only need one link.
@jaredgray78725 жыл бұрын
That's exactly how I spin up a local solution for a git repository I've just created. Always thought there has got to be a better way but it works and it's basically no effort
@anup.deshmukh6 жыл бұрын
Wow i am super excited to learn so many things from you.
@haggard262 Жыл бұрын
I respect highly the approach, and I’m sure your implementation being framework centric was very successful. I’m looking forward to a non render foundational approach
@Conversion1082 жыл бұрын
TRIED THIS 4 TIMES TODAY FINALLY WORKED!!!!!!!!!!!!
@erin15692 жыл бұрын
You probably want to define a macro _ENGINE_START namespace Engine {_ _ENGINE_END }_ and write classes like _ENGINE_START_ _class X : public Y { ... }_ _ENGINE_END_ instead of writing _namespace Engine { ... }_ manually It's done like this in the c++ string library and it helps you with indentation and it clearly marks the end of the namespace so you won't get confused with the last _}_ if you'll decide to expand the engine with more namespaces, but it can confuse IntelliSense in some cases.
@playermat8574 Жыл бұрын
This is so in-depth..! You did amazingly :)
@Pedro_ZKS6 жыл бұрын
This is going to be EPIC
@peterninefingers6 жыл бұрын
Will you ever go for CMake instead of setting up all projects through VS? If not, why?
@haxterhuz83466 жыл бұрын
He said he'll use CMake in the future. Refer to Episode 2.
@TheAganthor6 жыл бұрын
Thanks for doing this! Can't wait for more!
@mydream89346 жыл бұрын
Duno if you know physics, but if you do not, it'd be nice to get one of your colleague to work with you on the physics part of this engine and upload it on his channel with explanation. There are not any more proper (advanced) videos about physics in games. There are some articles, but I have not seen any engine series/tutorial/videos with fully custom physics inside.
@AleksandarPopovic6 жыл бұрын
Good work man, and good luck!!!!!
@taintedrageXX3 ай бұрын
If you're not showing a "*.dll" file in your "bin" folder then make sure "Hazel" -> configuration type is set to "*.dll" and "Sandbox" -> configuration type set to "*.exe"
@viraatchandra84986 жыл бұрын
love you man, lets do this!!!
@mananbhardwaj3976 Жыл бұрын
Thanks for this great series looking forward to make my own game engine. Hoping to get it reviewed by you btw i am currently 12
@dpsrush6 жыл бұрын
your videos is the only one I watch with 0.75 speed XD
@jockinafrock6 жыл бұрын
Hey, @TheChernoProject, Great video series, really enjoying. Can you answer a question please? At 18:35 when you're adding Hazel.lib as a reference to Sandbox. I 've linked them, but when I open the Property Pages for Sandbox, I don't see the option listed in the property sheet. I can add it as an additional option, but wondered why, and will it break my code later ?
@sar.waitforit.castic24382 жыл бұрын
happened the same with me....did the missing .lib broke your code later?
@alexba88ify Жыл бұрын
Checking in to see if anyone has an answer to this haha, same issue :P
@remdev7510 Жыл бұрын
@@sar.waitforit.castic2438 I had the same problem, my namespace name was not the same in the cpp and header.
@bishop630810 ай бұрын
Have this same issue. At first it wasn’t compiling bc I accidentally put my __declspec(dllexport) in my cpp file instead of my header file. I am still missing the file from my cmd line prompt but this time it actually complies
@bishop63089 ай бұрын
Can confirm that vs won’t make an empty lib file so you need to do the dllexport and import steps
@vasileiosnl6 жыл бұрын
I watched you c++ series... great job! I noticed you have another game engine series named "sparky" I just watched the first two episodes. What will be the deference between Hazel and Sparky game engine?
@ma77bc6 жыл бұрын
This is going to be awesome!
@MatyyRdk3 жыл бұрын
That was great! I'mma go through the whole series. Watch me
@user_375a826 жыл бұрын
Interesting, I’m gonna follow along.
@kevinjad45064 жыл бұрын
It wouldnt run. it says hazel.dll is not a valid Win32 application. Any help?
@kevinjad45064 жыл бұрын
Okay, actually editing the solution file in vscode did not work to set the sandbox thing as start up project. So, I tried right clicking the sandbox and select set as startup project. That worked for me. Hope anyone finds it useful!
@kikouyou97494 жыл бұрын
@@kevinjad4506 thank you so much
@bersanguzel22634 жыл бұрын
Thanks. That work for me too 😥😃
@MBK66TR4 ай бұрын
Thanks. That work for me to
@FernandoOliveira19795 жыл бұрын
Wow, so many configs. I wonder how this will work in linux.
@limemmontassar36903 жыл бұрын
same here !!
@ericbower22566 жыл бұрын
YYYYEEEESSS! GOGOGOGOGOGO, Code has been spotted!
@aftonsenpai10 ай бұрын
cherno, it shows me Error LNK2001 unresolved external symbol main AzureForge C:\Users\LENOVO\Desktop\Kroft\AzureForge\Azure Forge\Azure Forge\MSVCRT.lib(exe_main.obj) 1 Error LNK1120 1 unresolved externals AzureForge C:\Users\LENOVO\Desktop\Kroft\AzureForge\Azure Forge\x64\Release\AzureForge.exe 1 when i build... where did i wrong?
@diamondcreeper09824 жыл бұрын
if you guys cannot get started with Cmake on windows add these after the add_library in your CMakeLists.txt set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) set(BUILD_SHARED_LIBS TRUE) include(GenerateExportHeader) generate_export_header(Your_Project_Name) and the copy the yourprojectname_export.h from the path that the built stuff go like cmake-build-debug to the directory that your code exists and then add #include "yourprojectname_export.h" to both the .cpp files and .h files and then add YOURPROJECTNAME_EXPORT before the functions like this YOURPROJECTNAME_EXPORT functiontype functionname(arguments); I hope this will get you started with CMake on windows after the first build you can remove generate_export_header(Your_Project_Name) from the CMakeLists.txt file
@P4R7Y24N72 жыл бұрын
Sir, you are a genius!
@MochammadIqbal296 жыл бұрын
Welcome indeed!
@sogekiin Жыл бұрын
Damn that sounds exciting! Is there a way to follow along on macOS?
@VoylinsLife2 жыл бұрын
I ran into an issue, I'm using vs code and linux, most of the things being done here are impossible for me to follow, I'm trying to find the linux way to do the things which you are doing but it's not very straightforward
@cjxordi4 жыл бұрын
I just started watching this series only because some time ago I did try to write somewhat engine... And I'm curious did I have same way of thinking. For example, window sizing and fullscreening by Alt+Enter is a tricky part. I hope you start with thread safetiness in mind, like logging has to be thread aware.
@setyourhandleyeah3 жыл бұрын
i am going to learn soooooooooooo much today
@navegct84576 жыл бұрын
yay a onoter video from my favorite youtuber. #Notifacation Squad!
@DomensionStudios9 ай бұрын
Thank you!!
@majedhk54605 жыл бұрын
finally I found easiest way to use and create my own Dll files .
@nishanth13916 жыл бұрын
You could have used the editor option to set the startup project. Why go through editing the config file when you could have done it via editor. And this would be easier for others to understand to. Right Click on Sandbox -> Select - "Set as StartUp Project" Iam just curious if there is any difference in doing this way.
@nishanth13916 жыл бұрын
@Mattie thank you thats very helpful to know.
@thorep5 жыл бұрын
is the __declspec and stuff like that explained in the c++ series?
@kniiig3 жыл бұрын
Visual studio just refuses to create a .lib file for me. even with the dllexport of Print
@monamodikgwete34236 ай бұрын
I really wanted to learn using Visual Studio and I did exactly every step you did but when I run it says Hazel.dll is not a valid win32 application. I then did the same steps in Code Blocks and the whole thing worked. Could there be something I did wrong in VS?
@enveraaa84144 жыл бұрын
Thank you
@martantoine99775 жыл бұрын
Great job
@dragur_studios6 жыл бұрын
Just a question.. Is this specifical only for your hazle engine? Or if i do modifications along the way can i make my own engine?
@cptray-steam4 жыл бұрын
This is awesome.
@benwettstein6226 Жыл бұрын
After spending a couple hours doing this, I have realized why people just use commercial game engines, this process takes a lot of work
@zen-ventzi-marinov5 жыл бұрын
With some people the like button gets smashed before the video even begins.
@alexanderdorenkamp3 жыл бұрын
Do you know any resources for learning how to set up projects like this, in general, is Visual Studios?
@FREAKBAlT Жыл бұрын
I'm doing a quick little "rewrite" of my engine, well.. more like a re-structure if anything. I've gotten pretty far in setting up the graphics part of it (last thing I did being a Vertex Array abstraction) but my engine is looking like a little project someone slapped together in OpenGL which is kind of what it is but I'm just trying to make my engine look a little more neat and more function..able. essentially I just made a new project and now I'm setting it up properly this time so it works great and I'm just going to "borrow" my old code and edit it to match this new format, game engine format.
@RamHomier6 жыл бұрын
These nuts!!
@Martyn00266 жыл бұрын
Mate, explanation at around 10:40 needs at least one diagram.
@MazaJesi913 жыл бұрын
How does it work with the project setup in Visual Studio Code for mac?
@ZeroSleap5 жыл бұрын
I actually have been enjoying making systems(elementary stuff) in a practice project in Unity.And i am really wondering if i really like to make games OR if i like making systems,and in extension a Game Engine. You have actually made me really think about that.And i thank you for that,and this series of course.Keep up the great work :)
@lionkor985 жыл бұрын
Same thing here, really unsure now. Keep in mind that you should just do whatever you feel good about.
@ZeroSleap5 жыл бұрын
@@lionkor98 It's like an identity crisis :P I love games and i play them a lot.But in my "game" project i only seem to make systems and systems everywhere,with no game design or anything coherent. So it seems i might just like making systems for the heck of it and not games...
@immanuelc8853 жыл бұрын
Why do you use a .dll file couldn't we statically import without a .dll file? if this is a dumb question im sorry, im still very new to c++.
@samiulislamsharan4 жыл бұрын
this is "NUTS" !
@cheapmeow8478 Жыл бұрын
I am following Project Setup video, and I don't find hazel.lib in my linker - command line, anything wrong? I have set Hazel project compile to dll and set sandbox's reference of Hazel.
@detectiverobin3383 Жыл бұрын
same.. can't find mine too. If u got a solution to this then please share it with me :)
@remdev7510 Жыл бұрын
I had the same problem, my namespace name was not the same in the cpp and header.
@bishop63089 ай бұрын
VS won’t give you a lib file with nothing in it so follow to the steps where he dllexports and imports functions
@elhamaryanpur5 жыл бұрын
I get unresolved externals error when building the sandbox! I did exactly everything you did!
@morganb9004 жыл бұрын
@@trackMythoughts that helped i got 3 errors stead of 4 xDDDDD
@bhargavpatel70965 жыл бұрын
when i try to build project it tells me unable to create dir ( the "bin-int" one ) but when i check the folder it is there but instead there is no bin folder i m on x84 platform does it have anything to do with it (ofc i hvnt deleted win32 from config platform) and opt dir are set correctly in properties of both project and linker opt dir too...... i cant fig out why this is happenin and its gettin 'noyin can anyone healp meeee......???? btw "msb3191" i error code if that might help..... and one more thing i am makeing this project in D drive......
@bhargavpatel70965 жыл бұрын
well ohk fuk idk what happened but when i started over again from start it worked..... i wonder where i made miss......
@Kingsan3716 жыл бұрын
Superb
@clodgozon39685 жыл бұрын
This might be weird, but I was actually excited when I saw there's an error about .dll file missing after I execute the program (I forgot to place it where the executable is).
@bishop63089 ай бұрын
If anyone reading this wants to get around that, go to your game project properties > Config Properties > Advanced Properties > Copy Project References to OutDir > Yes