Acrylic Engine: Acrylic is tough and transparent, so when you are trying to explain how a certain type of engine works an Acrylic model lets you see everything working inside. or perhaps Glass Engine but that sounds application specific.
Think that might be a bit complex for this series. If you need help on networking, try to look up tutorials on creating a real time chat server. Should teach you client / server interactions and how to push out updates to connected clients. If your point is multiplayer games, the concept of a chat server can be used, instead of sending lol or whatnot to the chatroom(game match), you pass your current location and action (attacking, driving, etc) then the client games act apon that data. Something like this will get you started in the right direction in the fundamentals.
I'm going through your C++ and OpenGL series right now, I'm really hoping I can get up to a point where I can understand everything in this series. You're doing an amazing job explaining everything and I'm really exited to follow this series!!!
I suspect this will be the best game programming series ever -- especially because its not going to be rendering-centric. One of the first thing I discovered first hand is that its fairly easy to write a working 3D rendering engine that is poorly designed for an actual game. I wish I could afford to support this.
Spent my 20s working just to pay bills but, now being 32, I have quite my job to finally pursue my goals including becoming a programmer. You have been so helpful as I have been going through my online classes and this series on building a game engine is very exciting! Thank you very much!
Did you have any experience before you started your classes? I am completely clueless to coding and game development but I want to learn so bad. I don’t even know where to start because it seems so overwhelming.
@@Beelzebubby91Well, Cherno’s C++ series might be really good even for a beginner(that’s how I feel), while it might not be the best idea to learn C++ as your first language but you can try. I absolutely loved the C++ series, maybe give that a shot?
Thanks god you also have a opengl series. i just started the engine series and i am so excited, thanksfully i have a lot of time in hands since where i live there's going to be another lockdown so. i hope that in that period of time i can catch up to everyone else
Honestly the only real reason I want to build a game engine is to learn how they work. And as a exercise for me to get back into programming with C++ since I do know how it's just been a few years.
From my experience if you are build engine by your self it's better to build "Level editor" as separate application. Same with "Texture Editor", "Model Editor", etc. There reason for it is when I build something big, I always make some mistakes in design, before I start writing code. Maybe that GUI library that I decided to use it's bad. Or maybe I should have organize files differently, or something else. If you build engine as one gigantic application, mistake like that will make you rewrite lot of code. In my case usually take down whole project. But if you separate it in to few applications, each time mistake like that hits you, it won't hurt that much. You can live with it, or fix it, or in worse case relatively quickly rewrite it. I'm a proffesional programmer for 13years, and still at every project at some point I'm saying to my self "I should have done it differently".
Maybe call the engine "Prometheus" because it's kind of like you're bring "fire to man" -> bring "a professional Triple-A approach to building an engine to us simple hobbyists"
I am so freaking stoked... Looking ahead at topics and I am glad to see everything covered here ( because I don't have to go elsewhere... I get the Cherno man... the Cherno gets us...)
"Supporting other platforms in the future" I love that!!! I am mainly interested in the Vulkan graphics engine, and was looking to implement that in my own engine, but happy to start with OpenGL 😁
I can say building a game engine on your own is a massive endeavor, i've been at it for almost 2 years now and I'm still not at a point to make a games.
Suggest adding a content or asset management system. That way it stores things like textures, models, sounds, scripts, and shaders. That way they only get loaded once even if another file or object needs it and it can track what is and isn't using it. When it's no longer in use can tell memory manger to clean up. Later on you probably want a task manager to make use of multiple threads the best way possible.
I am not an experienced coder, but I do almost have my bachelor's degree in physics :D I only just realised there's obviously going to be physics related stuff in an engine, so that's going to be double interesting
Every now and then I remember (and it blows my mind) that you are offering all this expert tuition for FREE! I can only offer huge gratitude and respect in return, plus a small donation when I can. Thank you very, very much.
NAMES: -Upside Down Engine (built in Australia) -BueT Engine -Charno 3D -Chengine -Godly Engine -GES Engine (Game Engine Series) -Steady Engine (because it will be developed slowly, but steadily) -Bugless 3D (because you are perfect) -Cherno BB Engine -Tutor Engine thats all I got for now. Upside Down Engine is my favorite
Suggestion: Make it modular so that every subsystem can be easily switched e.g 3DRenderer -> 2DRenderer YourPhysicsEngine -> SomeVerySpecialPhysicsEngine and so on. thx
About the level editor I would suggest doing an XML system. What I mean is that instead of building a GUI tool for a level editor we can just write XML files which describe the structure of the scene objects in parent-child style, instead of writing code to create the UI one which will take us a lot of time. In this way it's gonna be easy editing scenes as just editing an XML file and the code that is going to read the xml file and build the scene , won't be something difficult also to implement.
Here an amazing name that is totally original "Engine." That what I'm calling mine. Just use a simple generic name, because it used to teaching not selling to a group of people. Some like [channel_name]_game_engine would be appropriate. Can't wait to see how this series. Much hype!
I'd be interested in seeing how to integrate Bullet Physics into a multi-threaded engine. It has build options to make it multithread-safe, but I've found a total lack of tutorials on the subject (except the single "demo" which is too simple)
The hardest challenge in mankind - write an entire triple A game title using only one cpp file called main, use no third party libraries, and use the native API object & shaders
You should make collision detection tutorials. Or if not then at least show how you implement already existing physics libraries such as Bullet or PhysX
This is incredible! I am just wondering if now that the scope has been determined, is there a known time frame for this series? Thanks so much, can’t wait to get started! De La
A few other systems that are important/useful are Audio (this is obvious but you forgot to put it on your list), Networking (hopefully), and possibly a way to support mods or even a full out mod system (which would work well in conjunction with hot-swappable assets).
@TheChernoProject You mentioned Entry Point Application Layer Window Layer(Input, Events,etc) Should Window Layer be apart of Application Layer? What do you think? Also, where do you offer private lessons? I am interested.
Why not open source the engine. Then the you can direct the volunteers and discuss the functions and features that they have added. I really am looking forward to your next video. It seems there is a fair amount of mac and linux people looking to contribute maybe it is best to keep it in opengl/vulkan. Also if the engine would be free to use it would greatly improve its growth and new features.
Besides the Graphic System, an Audio System is needed to build an (so to speak) interactive 3D Application. I think these are the core for user experience
lm making 2d tile game engine. line by line, l finished the collision system and the vector forces of one specific size object. now lm making all those methods to work with different size objects. first step by step.
Since it is summer here (meaning, no school. Yay!) I have no time limit so planned to make a game engine for big learning experience (and curve), and for my specific specific needs (since I have a potato computer, probably will do a lot of optimizations on it for my hardware). I'm worrying about how those specific engines would be put together and how they interact to each other tho. I'm stuck to that point.
What about Cheer Engine ? Ch - first two letters from "Cherno" cheer - because It'll be a cheerful adventure! And because I like cheerios... Crispy outside, melts in mouth... mmm
dunno if you made a name yet because i just now started watching this series and it was three weeks ago, but you could just call it ChernoEngine. It's not a bad name tbh.
Would you be creating the opengl context manually in this series or be using glfw since you talked about supporting multiple rendering APIs and DirectX needs raw window creation usually while opengl has GLFW?
Hi! I am actually a CS student from Madagascar and I really want to help/contribute to this project! I have some bases of C++ programming language but I never did something practical with C++ (I never did game dev before) and I am on Gnu + Linux (Elementary OS)! I hope to be helpful for what you are doing guys!
Since you emphasize you can't build unreal engine, name your game engine "real engine"
good one LMAO :p
hahahaha lol
Haha yes or since he can't build Unity, call it "Division"
Lmao
Genius :)
Acrylic Engine: Acrylic is tough and transparent, so when you are trying to explain how a certain type of engine works an Acrylic model lets you see everything working inside.
or perhaps Glass Engine but that sounds application specific.
Clever and catchy
The game engine has been called Hazel
Networking Layer please.
It is something I or most people I know have no real idea how to do so I am rooting to see how to do it.
that would be awesome and something that is very very unique about this series hope he do it
Can’t agree more!!!!
YES PLZ
Stein Codes yes, and please make more tutorials! They're really helping.
Think that might be a bit complex for this series. If you need help on networking, try to look up tutorials on creating a real time chat server. Should teach you client / server interactions and how to push out updates to connected clients. If your point is multiplayer games, the concept of a chat server can be used, instead of sending lol or whatnot to the chatroom(game match), you pass your current location and action (attacking, driving, etc) then the client games act apon that data. Something like this will get you started in the right direction in the fundamentals.
I'm going through your C++ and OpenGL series right now, I'm really hoping I can get up to a point where I can understand everything in this series. You're doing an amazing job explaining everything and I'm really exited to follow this series!!!
i would be glad to help you out over facebook if you need it :) C++ took myself alot time to learn honestly
I know this is old@@PflanzenChirurg but you still available to help out?
How did it go?
I suspect this will be the best game programming series ever -- especially because its not going to be rendering-centric. One of the first thing I discovered first hand is that its fairly easy to write a working 3D rendering engine that is poorly designed for an actual game. I wish I could afford to support this.
Spent my 20s working just to pay bills but, now being 32, I have quite my job to finally pursue my goals including becoming a programmer. You have been so helpful as I have been going through my online classes and this series on building a game engine is very exciting! Thank you very much!
Did you have any experience before you started your classes? I am completely clueless to coding and game development but I want to learn so bad. I don’t even know where to start because it seems so overwhelming.
@@Beelzebubby91Well, Cherno’s C++ series might be really good even for a beginner(that’s how I feel), while it might not be the best idea to learn C++ as your first language but you can try. I absolutely loved the C++ series, maybe give that a shot?
@@Beelzebubby91 i recommend you follow the chernos c++ series to get a grasp of the language
Same story here. Almost 10 years experience in a career I don't care for. Now it's all on me to finally take charge of things.
@zenith2808. I think learning C++ as a first language is fine, because if you understand C++ you can probably understand most other popular languages
Thanks god you also have a opengl series. i just started the engine series and i am so excited, thanksfully i have a lot of time in hands since where i live there's going to be another lockdown so. i hope that in that period of time i can catch up to everyone else
Honestly the only real reason I want to build a game engine is to learn how they work. And as a exercise for me to get back into programming with C++ since I do know how it's just been a few years.
Making a game engine for this exact reason, I just can’t seem to wrap my head around how an entire engine work
For me, it's exactly the same. And in my opinion, it's the only real reason why you should build a game engine for yourself
From my experience if you are build engine by your self it's better to build "Level editor" as separate application. Same with "Texture Editor", "Model Editor", etc.
There reason for it is when I build something big, I always make some mistakes in design, before I start writing code.
Maybe that GUI library that I decided to use it's bad. Or maybe I should have organize files differently, or something else.
If you build engine as one gigantic application, mistake like that will make you rewrite lot of code. In my case usually take down whole project.
But if you separate it in to few applications, each time mistake like that hits you, it won't hurt that much. You can live with it, or fix it, or in worse case relatively quickly rewrite it.
I'm a proffesional programmer for 13years, and still at every project at some point I'm saying to my self "I should have done it differently".
Maybe call the engine "Prometheus" because it's kind of like you're bring "fire to man" -> bring "a professional Triple-A approach to building an engine to us simple hobbyists"
And because Prometheus sounds like a badass name
Blizzard already used that
I'm glad you're starting on some of the more core features. There's already plenty of tuts on graphics and loading windows.
I love the analogy of debugging being like scaffolding. Very accurate
I am so freaking stoked...
Looking ahead at topics and I am glad to see everything covered here
( because I don't have to go elsewhere... I get the Cherno man... the Cherno gets us...)
"Supporting other platforms in the future"
I love that!!!
I am mainly interested in the Vulkan graphics engine, and was looking to implement that in my own engine, but happy to start with OpenGL 😁
I can say building a game engine on your own is a massive endeavor, i've been at it for almost 2 years now and I'm still not at a point to make a games.
Chernobyl seems a fitting name :3
😂
THIS ONE IS THE ONE!!!
лол))
Cherno Bill
Chernoble?
5:24 “I also have a full time job building game engines for EA.”
Oh... I’m sorry to hear that 😞
Noxid The Gamer well they probably pay him a lot cuz they have so much money. Or maybey they don’t pay him a lot because they want so much money
after reading game engine architecture for months i'm ready for these Game engine videos
It's a bit scary of how many different things you have to know to actually build your own engine from scratch
the hype is real
Suggest adding a content or asset management system. That way it stores things like textures, models, sounds, scripts, and shaders. That way they only get loaded once even if another file or object needs it and it can track what is and isn't using it. When it's no longer in use can tell memory manger to clean up.
Later on you probably want a task manager to make use of multiple threads the best way possible.
I am not an experienced coder, but I do almost have my bachelor's degree in physics :D
I only just realised there's obviously going to be physics related stuff in an engine, so that's going to be double interesting
HazelEngine (that new project i saw on your github with an empty repo)?
Every now and then I remember (and it blows my mind) that you are offering all this expert tuition for FREE! I can only offer huge gratitude and respect in return, plus a small donation when I can. Thank you very, very much.
Thank you for tutorial Cherno! I'm agreed that is much better to make a good foundation and infrastracture first.
NAMES:
-Upside Down Engine (built in Australia)
-BueT Engine
-Charno 3D
-Chengine
-Godly Engine
-GES Engine (Game Engine Series)
-Steady Engine (because it will be developed slowly, but steadily)
-Bugless 3D (because you are perfect)
-Cherno BB Engine
-Tutor Engine
thats all I got for now. Upside Down Engine is my favorite
Do you come from the land down under?
Add "real engine"
i like the idea of Chernobyl. cause this game engine will be da bomb XD
+1 on the 'GES Engine (Game Engine Series)' name
I'd love to see Box2D support! Also, Real Engine would be a great name!
Suggestion:
Make it modular so that every subsystem can be easily switched e.g
3DRenderer -> 2DRenderer
YourPhysicsEngine -> SomeVerySpecialPhysicsEngine and so on.
thx
excellent video, I was looking for something like this for a couple of weeks, thanks!
thank you for this series really definitely will suport you on patreon
I'm super excited about this series, thanks for putting it together! Let's goooo!! :)
Wow, I recently discovered your channel, but your instantly got me excited!
Thank you very mutch for your hard work and dedication!
About the level editor I would suggest doing an XML system. What I mean is that instead of building a GUI tool for a level editor we can just write XML files which describe the structure of the scene objects in parent-child style, instead of writing code to create the UI one which will take us a lot of time. In this way it's gonna be easy editing scenes as just editing an XML file and the code that is going to read the xml file and build the scene , won't be something difficult also to implement.
Me - Well I have nothing better to do. What should I do?
RUclips - Want to build a game engine?
Me - :O
me too
That’s amazing, Cherno!
just name it TheChernoEngine
Or simply ChernoEngine and it will be the "ChernoEngine"
How about ChE(r)ngine?
@@DridriLaBastos chernobyl engine
@@gamer-lo7vl ChernoBuild
@@jixs4v that was actually genius, too bad it's late
Cannot wait to contribute to this project!
Just call it Cherno, it sounds cool.
Pumped for this mate.
Thanks for your series you're a hero
Here an amazing name that is totally original "Engine." That what I'm calling mine. Just use a simple generic name, because it used to teaching not selling to a group of people. Some like [channel_name]_game_engine would be appropriate. Can't wait to see how this series. Much hype!
I'd be interested in seeing how to integrate Bullet Physics into a multi-threaded engine. It has build options to make it multithread-safe, but I've found a total lack of tutorials on the subject (except the single "demo" which is too simple)
The hardest challenge in mankind - write an entire triple A game title using only one cpp file called main, use no third party libraries, and use the native API object & shaders
The game will finish in 69 years
Engine name: Chernobyl
German Prostakov
😂
Chernobuild
3GChernobyl
Crater.cpp
You should make collision detection tutorials. Or if not then at least show how you implement already existing physics libraries such as Bullet or PhysX
I am following along with this series as a learning experience.
14:16 You can use multiple renderer apis?
That solves that issue for me.
What about networking and multiplayer? Some UDP socket layer would be awesome.
This is incredible! I am just wondering if now that the scope has been determined, is there a known time frame for this series?
Thanks so much, can’t wait to get started!
De La
0:00 subtitles: hey what’s up guys my name is *china*
Your handwriting reminds me you planning the sparky :)
-Milkshake Coffee Engine
-Beach Boys Weather (BBW Engine)
-HUGE (Hey what's Up Guys Engine)
-Fukushima
-Coffee Programming Party (CPP)
-NUNS (not using namespace std)
-RADIUM ENGINE
Main video starts at 5:59
Great video man..
love your vids cherno
What software license will your game engine use? That is an important thing to note since you'll be using the code base to teach people.
Would love to see some advanced topics, like BVH, frustum culling, ray casting etc.
A few other systems that are important/useful are Audio (this is obvious but you forgot to put it on your list), Networking (hopefully), and possibly a way to support mods or even a full out mod system (which would work well in conjunction with hot-swappable assets).
Hazel would be a cool name.
@TheChernoProject You mentioned
Entry Point
Application Layer
Window Layer(Input, Events,etc)
Should Window Layer be apart of Application Layer? What do you think?
Also, where do you offer private lessons? I am interested.
Bro finally
Why not open source the engine. Then the you can direct the volunteers and discuss the functions and features that they have added. I really am looking forward to your next video. It seems there is a fair amount of mac and linux people looking to contribute maybe it is best to keep it in opengl/vulkan. Also if the engine would be free to use it would greatly improve its growth and new features.
Name: EnCherno (Engine & Cherno) and rolls of the tongue like inferno :), and with namespace 'nch'?
Best one yet
yes
Nice one. Better than my idea: Cherngine (Cherno + engine)
thanks for the tutorial.
an advice for those who want to watch : speed x 2
here i am again, drunk and about to write a game engine with ya
CharnoEngine!
i will be following on LINUX
Wow, I thought your video was very informative, and you definitely know a lot about Gaming engines.
here we go
I love you, man..!
Cherno Engine
Besides the Graphic System, an Audio System is needed to build an (so to speak) interactive 3D Application. I think these are the core for user experience
Any suggestions?
lm making 2d tile game engine. line by line, l finished the collision system and the vector forces of one specific size object. now lm making all those methods to work with different size objects. first step by step.
"The Cher-noble"
Since it is summer here (meaning, no school. Yay!) I have no time limit so planned to make a game engine for big learning experience (and curve), and for my specific specific needs (since I have a potato computer, probably will do a lot of optimizations on it for my hardware). I'm worrying about how those specific engines would be put together and how they interact to each other tho. I'm stuck to that point.
The RAE - Realisticly Amazing Engine
Awesome.
how about audio support? 2d/3d audio?
8D audio
@@h.hristovthat would actually be quite interessting. Doing 8d spheres and shit
Thanks this will help!
Maybe call it "Hazel"
What about Cheer Engine ?
Ch - first two letters from "Cherno"
cheer - because It'll be a cheerful adventure!
And because I like cheerios... Crispy outside, melts in mouth... mmm
Please name this engine 'Chernobyl'. Thats by far the memorablest one!
Like your video and your haircut!
Only 61 likes? You should have at least 1K in 22 minutes!
dunno if you made a name yet because i just now started watching this series and it was three weeks ago, but you could just call it ChernoEngine. It's not a bad name tbh.
You should use Dear ImGui for the debug UI. Maybe use it to build a rudimentary editor for data manipulation.
Cherngine!
Name it "Hazel".
I programmed my engine myself. I don’t want to contaminate my code with people who might know what they’re doing better than me.
Would you be creating the opengl context manually in this series or be using glfw since you talked about supporting multiple rendering APIs and DirectX needs raw window creation usually while opengl has GLFW?
Actually if you made a series on directx and/or vulkan it would be good
Starting college in Computer Science this year, this series will be great :D
Hi! I am actually a CS student from Madagascar and I really want to help/contribute to this project! I have some bases of C++ programming language but I never did something practical with C++ (I never did game dev before) and I am on Gnu + Linux (Elementary OS)! I hope to be helpful for what you are doing guys!
How about building an operating system from scratch? That could be very exciting too.
That's basically impossible in this day and age.
@@techgo4431 What is the reason ?
@@techgo4431actually it’s just as possible as it was before. There are lots of tutorials on the internet. XV6 is pretty simple to look at to learn.
Are you gonna do a face revival???
bUt YoU CAn SeE hIS FaCE
@@bamberghh1691 but his real face tho , no one man can be so handsome no homo
@@shekhawat5917 just say no homo at the end no matter how gay it sounds saying no homo at the end nullifies everything lol
I don't even watch these for programming, I just mute the video and touch myself. No homo
God damn it, it made me ROFL 😂
For the name, maybe we could go with the idea of "community" or "together" or something of the sort?
20024/03/21, First day on this tutorial, may the gods and my will give me the strength to finish this series and learn as much as possible.
Yes
You mentioned you want to use ECS, have you looked at CGS (Component Graph System) as a alternative solution?