"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." - Linus Torvalds
That is true. What you'll find is that a lot of developers are constrained by the projects they work on, and of course there's inevitable politics involved in all corporate environments. Want to use that new cool technology? Can't, because the project is constrained by legacy stuff which we need to support. Fact is, you often can't do things the way you'd like to. Rank and file developers quite often have little influence on the direction, or decisions taken by middle management. It's frustrating.
Those paintings Cherno's wife is doing, that skill would work well as background art like in Cuphead. All he has to do is take a picture of the work and upload it as a picture in the background of the game. Cherno's graphical skills are very clean, so he would need to have good line work to work with his wife's painting style (Clear silhouette).
I'm making a game engine because I like doing it too. It's very discouraging sometimes to try to talk about it in some game development circles because so many people don't understand the joy of architecting something complex like that, but also learning throughout the process. I'm specifically looking at building an engine focused on building rich, interactive multiplayer experiences, although right now I'm solely focused on 2d. Been loving your content on Hazel, and look forward to more.
I’m also writing a game engine. I guess I do it for the same reason you do it, because I love doing it. I’ve never played games but was always interested in how they worked. I’m also making UA-cam videos on the development of it because I just love to explain stuff. At school I was one of the very few who actually enjoyed standing in front of class to present stuff. Saying that you shouldn’t make a game engine because we’ve got Unreal or Unity is like saying we don’t need indie games because there’s already AAA games. If you enjoy doing something then just do it, no matter if it’s been done before. You’ll learn a lot, and it WILL be worth it!
The only good reason NOT to make an engine is that you will never be able to pull out all the work that 100+ devs can deliver. That is literally the only good reason NOT to.
I love building libraries and APIs because of that "a-ha" moment when someone consuming them realizes they now have the tools to do something amazing that no one else (including me) have ever thought of, or that their existing task has gotten so much easier.
Writing my own engine mostly because of the passion and the freedom. Also, it's a good way to learn new things and to practice your skills! Engines like Unreal or Unity are big systems that needs to be flexible to suit to a lot of users needs. All this comes with a relative cost. And they are not flawless.
Why I'm making a game engine? Because you showed me that it's not that difficult. I just didn't know where to start and your videos helped a lot with that. Thanks!
One thing I like about creating my own engine is the fact that I know it like the back of my hand. Though I don't really use your tutorials anymore, you taught me pretty much everything I know about C++ and OpenGL. Thank-you.
I'm working on my own engine for a lot of the same reasons you are cherno. Firstly because I love it, it's extremely fun to me. And secondly because I want to create a game someday from the ground up (with my wife too funnily enough). Seeing your story and dev blogs is highly inspiring to me. When I talk about this hobby with my software dev coworkers they bring up a lot of concerns like the ones you talked about (why build an engine when there's ue4/unity) and it's hard for them to understand that I'm doing it for fun, I'm building skills, and I'd like to be a professional engine dev someday for a AAA studio.
Building these kinds of things just for fun is one of the most inspiring and amazing work someone can do. Look at Andreas Kling, making Serenity, it's nuts what you can build with patience, time and a good attitude. Keep the good work!
Bro, you are destined for greatness. There is something innately and undeniably SPECIAL about you!! Everyone better watch out!!! I can’t wait to see what you’re going to accomplish!!!
I’m not building a game engine - nor am I particularly interested in games, anymore. But as a fiction writer I love to absorb the might in monologues such as this one. Success is the exhaust fume of a purposeful, passionate journey; a journey one explores best for the simple joy of it, first. There is nothing to be gained from counting potential gain, but, in my experience, you gain everything from a dedication to craft and creativity. Cheers for the content; I’ll crack on with more writing and keep ya on my radar. S’always good to soak up inspiration from everywhere you can find it.
I'm making my own game engine too and I'm doing so for multiple reasons: 1. Along with other specifications, my engine is heavily focused on color manipulation to a point where I'm not sure other engines can adequately meet the requirements. 2. I want to be able to work quickly and efficiently in a certain style and with an environment I have a lot of control over, both for making games by myself and for making games for others. 3. I'm learning so much more and faster by having to do something that complex than I would with other methods. And not just in coding but also in math and painting among others as well. 4. Even though my business model doesn't need it to be that successful, it would be nice if I could sell licences for it in the future when it would be complete enough and easy enough to use. 5. I love doing this. It's so good when you manage to do something you thought was impossible or too hard for you to achieve even just a day or two before.
The Hazel series is really high-quality so far, and I really like your style of video. However, it's gotten so big now that in a lot of the videos I'm getting lost in the codebase and the conceptual understanding of how every individual component integrates with the entire engine. Really good work so far; please don't give up on this monumental task.
Not working on a game engine myself, but I am using what I learn from the various series on this channel to make a program that allows the user to animate models, use and define their own shaders/effects, and allow them to render their creations either to image or video files
Right on. I'm building my own UI library, because a) I need it for my apps and b) the available UI systems didn't quite have what I want or work the way that I prefer. And it's fun and educational.
Great video Cherno. I'm a junior software engineer at the moment for a VOIP company out in Arizona with a dream of getting into the game industry, and hearing you talk about your love of the technical aspects of game engine programming is inspiring. When you said you were 25, my heart sank just out of, "what is wrong with me" since I myself am 24 and just feel like I should be at a better place in my technical skills. I started programming when I got into college back in 2014 and feel like there are so many gaps in just my general knowledge of programming, so I take advantage of watching your videos when I get the chance to help improve my skills and come up with little tiny projects here and there to get better. Appreciate the videos and keep doing what you do!
I'm making not my game engine, but my own gui library, with event system, widgets, and so one. When i found your channel, i immediately thought i won't find in anywhere else. Your OpenGL and Hazel series is just a masterpiece - you really won't find it anywhere. Your experience was so important for me. Thank you so much.
"I'm building a platform that will enable me to be creative" - Yes, that's exactly my feeling too - and is why I follow your videos. My domain is scientific visualization (at least in part) and am re-writing the graphics part from scratch - that is why I find what you have to say so important and useful.
I’m also somewhat working on a game engine. Although rather than building a full engine, I’m working on a couple smaller games and building a set of libraries to do what I need, as I need it. I’m doing it because I like the learning experience, and enjoy building all these primitives and low level code, and it gives me a better understanding of the things I’m using to build a game with.
[01:05] I'M SO GLAD ABOUT YOUR ANSWER! ♥♥♥ IT IS THE BEST ANSWER and IT IS SO CORRECT! When we have passions, we pursue them with determination! The goal isn't to make money, but to achieve the real goal of succeeding at one's passion! Revenue later is ok. LoL
I'm currently writing what I think is a game engine, specifically a rhythm game engine. It all started because as a programmer I've never worked with opengl and really wanted to challenge myself to learn a new tool. After some time I found your opengl series and without a doubt that was the biggest help that i received from all the video tutorials. This engine has been my longest project ever and now I'm more happy than ever. Anyway, this is my story :D
I am 43 years old and your dream was my dream too. My balance was mostly about design and visualization. Unfortunately It was not good times for creating games (especially in Turkey) to make that dream come true at 1990's. Now, you have all the tools and support because of the internet. Go and live your dream man. I am watching you and learning from you these days because i am up for making my dream to be real.
I am learning to build a game engine because of you Cherno. If you accidentally saw my comment I really would like to thank you. Remember I picked computer science for my major simply because my friends did. And the whole world is talking about AI, cloud computing... I was searching for C++ tutorials before starting my new semester just for quick revision and that brought me to your channel, 5 months ago. I cannot even compare myself to you considering you already have programming experience probably in high school but I literally started my hello world program at university, 2 years ago. After finish watching your 90~ vids about C++ I tried to watch your hazel series. And I did a little research on game engines. I found that game engines are built based on stuff that I am learning but thought useless which are linear algebra and Newtonian. I found a way possibly for me to apply those and more important, I love games. I am from Hong Kong where people do computer science for finance and I literally cannot find a company doing large scale game related projects for internship, but also I am not professional. To be honest what I could do now is simply copying most of the code in your engine and try my best to understand what you explained. Still, you gave me the motivation to take courses and learn more about stuff like computer graphics. Your passion in engine development affected me a lot.
@Darren Munsell Are you for real? Qt is a GUI Framework, it is not designed and optimized to run like a game. Yes it has "3D" but nothing like a proper Game Engine Renderer. The Qt 3D Module is very basic and meant to visualize 3D stuff in industrial applications. It's capable of doing something like the Maya Viewport and not actual Game Graphics. You would have to write the Renderer completely yourself if you wanted to do a game that looks even somewhat good. It also has no Physics System, no Animation System, no Particle System, no Level Editor, no Collision, nothing for Gameplay like an Entity Component System or Behaviour Trees. In short it has nothing a proper Engine has. A GUI Framework having some support for 3D visualization doesn't make it a Game Engine. Making a game with Qt is almost as much work as writing your own engine from scratch. Engines can and do use Qt (CryEngine) to for example do the User Interface of their Level Editor but thats it. Qt itself is nowhere near being a Game Engine.
I completely understand “because I want to” and absolutely agree… many people don’t understand this.. I write stuff all the time just because I want to and I’m proud of it in the end.. of course excited to show people my creations… their first question is either “why” or “so how do you sell it, who wants to buy it.”… I dunno… it’s not really for sale but if someone wants it they can have the code… lol
Lot's of great content here! Keep it up! I only regret I didn't find this channel sooner (and it comes from the developer with 22+ years of experience).
Yan, I think you and I would get along really well together. We sound like the exact same person. I am also an Australian software engineer and musician who loves composition (especially film/game music) with too many ideas of things to do and not enough time to do them in! I think it's awesome you quit your job to spend time on all your ideas and have this platform (in UA-cam) which allows you to pursue what you want to do. I would love to be in a position like you are one day :)
Hi cherno, you're right. you're creating a game engine because you want it to, and that's the best motivation and satisfaction you need. I'm crafting a new compiler because a like compilers constructions and I dont care about making money or if it the worst compiler you've never seen, I'm making it because I want.
When I got into programming it was making mods for Minecraft for myself and a couple friends. When this happened it was back in the early days of Minecraft where your mods basically hooked straight into the underlying engine developed by mojang. As I got better at programming I wanted to learn to program games and most of the resources were saying things like "download this game engine and learn to program the game through that cause it's about making games not engines" and to me that felt like a cop out, like I was just writing a mod for the engine rather than building a game (as my early Minecraft mods were more involved than what you have to do to make something like a basic unity game). So instead I learned to use libraries like SDL and Sfml... I watched some of your videos and some videos by others at first and soon I started trying to build my own engines without relying on video tutorials. Now I watch your hazel videos because it's interesting seeing how others do things differently from how I do it... Sometimes I come back and change my engine cause it's like "hey that is a great idea" and other times the way you do things aren't fully compatible with how I implemented it... Basically it's exposing myself to other ideas so that I can learn more. So to me, it's about learning how things work. I am certain if I were to ever try to join a game jam that I would probably want to learn how to use an actual game engine rather than trying to write my own engine everytime but right now that isn't my intent.
For me the learning part is extremely important. For example I used Behaviour Trees for a while now and learned (at least a bit) how to utilize them for my needs. But my understanding can reach the next level, if I build a Behaviour Tree once myself to get a deeper understanding of it. That's why I created a branch of Hazel and finally implemented one with a demo in the sandbox app. And I loved it, it was fun to get a better insight. As far as I understood you in your "Why I quit EA" video, that is part of your motivation too (pls correct if I am wrong).
Hi, Yan! I am making a game engine for the purpose of better understanding what goes on behind games, stuff that you don't see or even know about. I am currently going through your Sparky game engine playlist and have been for close to two months now, making my own engine for a school project, to pass a Graphical Programming Systems class. Thank you very much for all your content! Thanks to you I now have a basic grasp of OpenGL and much better handle of C++. You're awesome! Keep it up! :)
I was right. Keep making such videos. Hopefully you will complete Hazel by 2021 and learn everything you need because you are very hardworking and I would love to see your engine be implemented to make a Game and would proud of your creation. When someone would make an awesome successful Game using Hazel I could say, my man Cherno made the Game Engine because of which the game has achieved it's vision and blown everyone's mind. Till then take it one step at a time and always be motivated. And yes you are doing a brilliant job at educating us. Keep it up.
I totally get it and understand where you are coming from cherno. I am currently building a 2D game engine and some game development tools. I eventually want to make a game with the engine and then monetize the tools. I do it because I simply love it. I am also doing it all by myself which is hard sometimes. I only have so much time in the day to work on it as well as having many teenagers in the house(not as many anymore) which makes me busy on other levels as well as having a full time software engineer job. But I keep pushing for it because I love doing it. :)
I feel the same, the more I keep designing the UML of my 2D engine for my dream game, the more it makes sense to write my own engine. I had the most fun in month designing the architecture of my engine.
I am looking forward to follow your videos and learn making engine from scratch and maybe if am able to contribute something back to Hazel. I would say we are quite similar, I find making game artistic and needs a kind of flair that I might be lacking but I love how I can enable people to use that flair and zest to make games by making engines. The biggest reason for me being drawn to engine development is you know bringing in effects from the real world, to be used in games and simulations. That was my fascination earlier and then later I got bombarded my so many things involved in it, got deviated a bit and hopefully I am on the right track now !
I understand you! Look at the story of Blender. There were so many 3D software and the creator of Blender just wanted to do a good software for everyone! Just live ur passion!
I hope your channel does not go superficial. Reaction videos and stories are nice but we the guys that been here forever are still waiting for educational videos on the "how it is made" side of an engine. Kudos from Cape Verde
Thank you for the hard work TheCherno! I also have fun developing game engines rather than games and doing it with pleasure as hobby. My goal is to understand everything in detail. After some years of failures and retries in my odyssey, I am happy that I found you and your tuturials, which help me a lot in getting finally something like structured code instead of the spaghetti code I normally produce during my "lets try this quick ..." phases. The journey was very hard until now, cause I needet to learn first C++, OpenGL, etc. (sadly before your tutorials...) Now with your tuturials everything is going very well. Again big thanks to you and your community!
I'm also writing a game engine. And mostly out of sheer curiosity of how games work, and that's one of my main reasons I decided to study computer science. Basically, my only knowledge source back then was the Game Engine Architecture book by Jason Gregory, and it was a very dense book for me when I started learning to program 10+ years ago. Besides that, I found your videos and started to dive deep into game engines again with a much broader skillset and it's fair to say I'm also passionate about it.
I'm making a game engine for a number of reasons. Mostly, like you, because I enjoy doing it. Another really important reason is because I learn things. I learn so much not just about game engine programming but things about software development in general. Lastly, because I have ideas that I would like to see in a game engine, this give me a reason to do it. For example, testing is really important and testing in existing engine has always been a bit of a pain. Other concepts like DI aren't supported out the box with other engines (although there are some great third party extentions for it). All of these things make it a fun and usful thing to do in my spare time, regaurdless of how the project ends :)
I'm also trying to make a "mini game engine" by myself in quarantine, to understand how the c++ works in depth. I've made some simple games without game engines, just coding, but now I'm challenging myself to create a "mini game engine" and after doing that to make a game with it. I have some "experience" with game engines, firstly I tried Constructor 3 (a very simple game engine for beginners) and then Unity. Also, I learnt a lot of stuff from you. Thanks for every video that you made! My friend also started progamming and I told him if he doesn't understand something ask me or watch your videos.
Becoming a full time software engineer for me started from the curiosity of how computers work on their fundamental level when I was still in school because I was watching very early in my life my brother making electronic circuits for a hobby and I was learning from him. I was always interested on how game engines work because I was also considering that they were too complicated pieces of software for a single person to write, requiring a deep knowledge of the hardware capabilities to balance the performance that you can get out of it with the complexity of what you are trying to create and ultimately make it become a tool which will give you the ability to create games in a much easier manner than having to write them from the ground up each time! Great work Cherno!
I am building or shall I say I built a full 3D engine on my own UA-cam channel. The reason is simple: I get way more performance than what commercial game engines can offer me. Also my engine is extremely lean and has no bloat which is something that can't be said for some commercial game engines. Another advantage is that my engine matches my needs EXACTLY and works as I need it to, which is a HUGE advantage as opposed to using a third party engine. And the final reason for coding my own engine is because like you, I like to code engines.
I feel u man. Build something from the base is so damn fun! Especially if we have the resource and the skills to do that! Who knows in the future, someone will push our base game engine further. Even if not, [building one of the most complicated software known to humanity] is some accomplishment in itself!
thank god there's the ultra geeks (not nerds) of the world that are willing (and love and get excited and motivated) to sit down and do all the technical stuff to make a game exist. You sound like a fellow Kiwi to.
After playing around with various engines I found I preferred working on my own tech. Though I do try an existing game engine every once in a while. Like you I enjoy the technical side of making a game the most. It's also a platform for me to try new techniques and try to improve my programming skills. My latest engine is fully 2D and the focus is on combining a minimalistic ECS with multithreading and a Lua scripting environment. It's also an experiment in doing less OOP and use a more structured and data oriented programming style. The knowledge that I pick up while doing this work actually carries over to my non-gaming day job, which is a nice bonus.
I think showing stuff like that is a great way to showcase your skills - which actually is a brilliant idea because your value goes up as long as the potential employers go. And you can't lose, because you also teach people and build your little community that will support you. On a side note - you also seem like a nice guy :) So all I can see for you is WIN. Keep it up! :)
I am 15, and you partly inspired me to start developing my own game engine. For a few years, I had been using the processing 3 graphics library for Java, but as my projects got more complex I realized it simply isn't fast enough (especially for any 3D). So, my inspiration for creating an engine is: to replace processing with something faster (using lwjgl VS JavaFX), to learn what goes into an engine, to have fun, and finally, I want to see what limits Java can be pushed to, I considered using C++, but there are plenty of game engines or frameworks in c++. Many people have said Java and the jvm are too slow for game dev, but I alot of that is old news from java's early days, and I want to see what Java is capable of. I have really enjoyed the dev process so far.
I started doing my engine because at time I wanted to make a game, but game engines weren't as accesible as they are now, I remember having to pay 15k to havok in order to use the physics engine in Source Engine, but then once they were free, I realized i liked making my own engine more than designing game mechanics, after i finished uni and began to work I couldn't dedicate as much to it as I wanted to, but now with the quarantine and a more flexible job I'm back into it, even though my engine is in a fairly advanced stage now I really enjoy watching your series!
I understand you man I'm also a software engineer but I also like producing music or do electronics or 3d designs because that's how I feel, that's what I want to do. I sure am not perfect at each of them but I enjoy my time doing them and that's what's important to me. Greate channel. best of luck.
Your videos is simply amazing, especially the c++ series. I've always want to delve deeper in c++ but years of using only c# and java makes it kinda hard to dabble in it I guess. Your insight in c++ is simply amazing and I learn a lot of things from it. Keep up the good work Cherno!
Building a Game Engine... for Research in Data Parallelism and Networking. Got to get those Papers Published. Awesome content i am looking forward to see your approach on building an editor system.
Sorry for not watching the full video but really thank you for doing this series on building a game engine, I always had a dream of building an engine and your videos are really helpful on learning about engine architecture. I really want to support you on patreon sometime since you do a nice job my guy. EDIT: I have been following your tutorials on Linux using SDL/CMake just because im used to it and CLion likes CMake. Im also building this engine because I really want to learn more about these things because I find it interesting and I want to try and build a Minecraft like block game in it.
I haven't had built a gaming engine but I did spend 8 months building an Alexa client from scratch in C++. Now I get to take everything I learned into my day job.
I love to make a game engine cause it makes me feel like I'm creating a world that I can do/create whatever I want whenever I want, That the main reason why I love making a game engine, It's fun :)
I would love to build a game engine at some point in my life. The short answer to why would also be "because I want to do it". The long answer is: I love low-level system programming, but as I work as a backend software engineer, things rarely get as low level as I'd like (even though sometimes they do). Also, I love challenges and games, so it would be a win-win situation. Probably I'll never take it off the paper, though.
I'm making a game engine of my own! It started off with the frustration with the engine of my previous job. We just kept making games on a broken piece of software, ducttaping it together. After that I focused on making it web-oriented, because alternatives are far too big to be used on the web. It's not really a game engine, but more of a framework, as it doesn't really have an editor like Unity for instance does. But the download size is way smaller than anything that does anything similar, which is one of my primary goals.
Love your channel and I have the exact same opinion. I've had people ask me why I'm writing a game engine and why am I not just using Unity and even people thinking I'm just against game engines which is not true. Plain and simple as you said I started to write a game engine because I thought it was fun and satisfying to learn how to do it. My engine is not completely built from scratch (it uses MonoGame to abstract OpenGL, OpenAL, input and stuff like texture loading away) but it's still been great to learn how an engine is structured and how the engine interacts with the development tools like the editor. Eventually I want to release a game with it but I'm not rushing it too, I just have a small game that I use as a testbench for engine features for now. I'll probably even end up eventually taking MonoGame out and making my own OpenGL and Window abstraction in the future. Programming the engine for me is often more fun than programming the gameplay of a game and when I do just want to make a game fast I use Unity or Godot.
People ask me the same thing... "What's the point of making a game engine if you are not going to make money or be productive with it?" I wonder if people ask as others "why are you going to this cool jazz bar?" or "why are you drinking this cold beer?" Life is not always this utilitarian. I applaud your take!
I used to want to make a game engine, but that was years ago before I knew about them and how games and engines happen. You mentioned in a video that games used to be made, then engine were drawn from them to make either sequels or...an engine. I had learned that years ago and so gave up on that. All this before I even got into Unity and C#. So I stuck to modding and improving great, or once great, titles. ♥♥♥
i tried a few times years ago to make a game engine - I didn't try to build the rendering engine - I used Ogre3D for that, but it was really fun and interesting. I ended up stopping after a year, but it was a really amazing feeling getting my own voxel world up and running then using geometry shaders to make it look far less blocky. Seeing the algorithms i wrote and concepts I struggled to understand come to life and work, and often very well was incredible. the hardest concept for me was network synchronization with minimal bandwidth use (I wanted to write an engine for an mmo) and movement algorithms that didn't look janky. I'm far from an amazing programmer, but damn those were good times.
I also enjoy building my own engines all the time, I find it helps understand the underlying tech that is often overlooked. It also allows me to focus more power into areas such as networking rather than say physics. Plus then its all yours :D
15 years before i tried making several game engines with the goal of making an actual game and learning all the technical side of things, but there was no real teaching materials at that time for making engines for games (There was no thecherno, handmadehero or anything like that). Therefore it was really hard to figure it out and i got stuck all the time - especially with collisions and physics. But i made a ton of stuffs, tech-demos, game prototypes, full applications and i learned a ton from it and very much enjoyed it - since then i have a passion of doing technical programming for games or multimedia. Now many years later, i have the knowledge now to make everything i want - but i am much older now and have a family with kids and dont have time to write games or engines anymore :-( But in my daily work (not related to any game tech), all my knowledge from that past is still very useful to me, so i dont regret any second of it. Nowadays i am focusing more on making smaller/medium sized programming libraries to make life of people easier. But i am still dreaming about making a full game sometime, written in my own little engine - maybe when my daugther is a little older and keen enough to learn programming... Maybe my passion for making tech stuff is the reason why i like watching people like you teaching others, showing how its done. But still even in the year 2020 there are not that many people on the internet, which teaches everything you need to make games - from the ground up.
What you say is so right and true. Because it is fun. I tried to write my own Renderman/Pixar renderer in the 90s from several papers. Of course it was silly but it was fun and I learned lots. Right now I’m writing a KSP mod using Unity. Still fun but less ambitious!. Good luck with Hazel
4 роки тому
I'm writing my own little game engine. Motivation started when I needed some easy platform on which release my thesis project "shadow rendering using view frustum splitting methods". Now as I am studying computer graphics as my field of study on master's degree I continued in order to ease my project. Now I am starting with vulkan rendering as my next thesis I would like to do work about GI with RTX.
4 роки тому
Also, you motivated me to do videos about it so I finally started with the first video.
When I got my first computer back in 2011 I was so fascinated on how games with 3D world were able to run on a physical hardware, thats why I got into computers because hopefully one day I would get to develop a game engine and create my very own game with said engine. And your content has been ever more helpful in teaching me how to achieve that goal of mine. Thank you
I recently startet building my own game engine. It startet out as a 'lets code something hacky over weekend' in javascript (not my first choose language, it just has the complete UI handling solved so an easy pick for some simple game thingy). Basicly build framebuffer/main game system etc but than really fast run into performance problems with large quadtrees etc. So i went on and startet writing my own game engine in c++. Im fairly experienced in golang, but golang has the memory management problems, so i decided this would be a nice project to lern cpp and opengl. So im basicla absolutly on your side of: i wanne build things from the scratch to understand them und figure out new things. Theres are 9-5 worke devs and there are passionate devs :) driven by curiosity! Btw. i wanted to add i really love your videos. Clear talking - fact driven explainations - im working through your game engine and your c++ lists so far and its really helpfull.
I built an OpenGL game engine with a cryengine editor like interface back in 2001 for 3 years, nothing came of it but I learned a lot and had fun, however being in a small team starting any project from the ground up is a much better experience then going solo. You learn more in a shorter time span and can bounce ideas with other people.
Hey, I'm also trying to make a game engine. For all that 4 years being game developer using Unity game engine, I learned a lot of things including the engine limitations: starting from the architecture you use and ending up with basic data manipulation issues; and I always catch my self thinking: I know how to do it right. So I decided to try to make my own game engine with everything being right, because otherwise those ideas would chase me forever. I don' want to exclude Unity from my live(It is my main tool at job overall), however I believe my effort would worth it. Btw, I tried to use premake and visual studio, but it was such a pain to fix anything if it breaks and doesn't work as I expect, so currently I make everything using clang, new windows terminal (it is pretty nice :D) and vscode. I found out it is a lot easier and satisfiable to write a C program which would compile and link you main program than to learn visual studio and other build tools. P.s I think the hidden reason why people make game engine nowadays --> it is cool ; )
I once set aside a few weeks to make a game around 10 years ago. I fell into the "trap" of writing my own game engine, and it was like 70% finished when I ran out of time. I never even managed to really start developing the game itself. But I don't consider that time lost - I had fun doing it and learned a lot. The engine part seemed more interesting anyway. Today a fairly experienced programmer (not necessarily a good one) and a LOT of my experience comes from silly little projects that didn't seem to serve any purpose at the time. Also I know how wonderful it feels to completely lose yourself in a project, or to simply play with cool hardware. I remember the first time I used OpenGL and how cool it was to control something more powerful than the CPU!
Thank you Cherno!! I hate when people assume you're an idiot for wanting to learn about things, and I think that's the primary reason I'm working on my game engine. I feel like there's a huge gap of knowledge in application programming for new graduates (of which I am). School tends to be super focused on web stuff nowadays, and doesn't really teach anything at all about (PC) application development. Also, one of my favorite quotes from Casey muratori is in response to the question, "why write a game engine? No need to reinvent the wheel?" And he says, "there are no improvements that you can make to a wheel, because that is the best you can get for a tool for that purpose. Game engines are nowhere near perfect, and the more people we have innovating, the better we can make game engines for everyone." Or at least that's the gist of what he said :) I'm also trying to teach others how to make engines too (although I'm still learning a ton myself) at my other channel gameswithgabe.
Yes to all what Yan said. (!) I made a game with BASIC long ago, kept doing it. When friends available who wanted, we’d exchange games we’d made. ‘Found a game with a level editor, began to make both a game with a way to add to the game (still in BASIC, solo fantasy rpg dungeon crawler with dungeon level editor). Kept finding new games, making personal projects and languages. (Neural network experiments, more sophisticated games) ‘Found doom with editor, ‘found unreal with editor, made maps and practiced level design. ‘Found unrealscript and started modding. _All_ this was for fun; but then became a designer for a living. ‘Found unity, learned C#, learned Java, learned JavaScript. _Still_ went back to older language (QuickBasic) to make a 2-D game engine from scratch, borrowing ideas from an old book on doom techniques (for fun; programmers asked the same question: why?) ‘Enjoyed unity’s component based architecture, so decided to make a game engine with that in HTML5 (more programmer friends asking why; again to learn, for fun). Always learning, even when I teach, always looking to make that thing that sounds fun. Like learning C++ (again, for real this time, damn the pointers, full speed ahead!), found _this_ channel, making games in lower levels of C/C++ to learn and have fun. These skills do help my work, for sure, but as I tell anyone who would listen, I’d be doing this even if I weren’t paid. [/story] Yan, thank you for being a Creator, you make. That’s the word you’re searching for. Along the way, you’re also a Teacher, and thank you. :) And, if your family project would enjoy it, Hot Iron Productions would be happy to consult for free. (Barter for the lessons you’ve provided in C++) Cheers!
You're absolutely not going to compete with Unreal. But you're providing a good resource for those wanting to learn. Kudos to you for finding an angle you can pursue which gives you a good living, and you don't have to work for someone else.
I want to make a game engine because: -I want to build one. -Learning and experience -Unreal and Unity isn't enough for me. -I want to build a game studio using the in-house I built to build games I want to make. With a great team that can improve the engine. -Its difficult but also fun -Use of C/C++ and Python (scripting) I honestly don't know where to start to build a game engine. I have books on graphics programming and game engine architecture. I'm learning a lot with those books and your videos.
@@davidboygenius6843 open gl is even low-level api but SDL is written using multiple APIs like open gl, direct x and open gl es so it supports multiple platforms
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." - Linus Torvalds
That is true. What you'll find is that a lot of developers are constrained by the projects they work on, and of course there's inevitable politics involved in all corporate environments. Want to use that new cool technology? Can't, because the project is constrained by legacy stuff which we need to support. Fact is, you often can't do things the way you'd like to. Rank and file developers quite often have little influence on the direction, or decisions taken by middle management. It's frustrating.
indeed
True. Getting paid for us sometimes is seen as a side-effect (not that we don't care lol).
and when u start getting paid and deadlines all the time.... quality will suffer a lot... we take so much shortcuts bc if management said so.
Linus Torvalds do programming to disrespect othe programmers. He is litterely the worst programmers to have on your project
this man is an absolute legend. my day lights up each time i watch his videos
Same with me.
The fact that you and your wife are planning on making a game together -- that sounds so romantic!
Or a fast track to a divorce 👀
@@st9761 bro
Genital Jousting?
@@st9761 Let's not get too dark here and wish them luck :)
Those paintings Cherno's wife is doing, that skill would work well as background art like in Cuphead. All he has to do is take a picture of the work and upload it as a picture in the background of the game. Cherno's graphical skills are very clean, so he would need to have good line work to work with his wife's painting style (Clear silhouette).
I'm making a game engine because I like doing it too. It's very discouraging sometimes to try to talk about it in some game development circles because so many people don't understand the joy of architecting something complex like that, but also learning throughout the process. I'm specifically looking at building an engine focused on building rich, interactive multiplayer experiences, although right now I'm solely focused on 2d. Been loving your content on Hazel, and look forward to more.
I’m also writing a game engine. I guess I do it for the same reason you do it, because I love doing it. I’ve never played games but was always interested in how they worked. I’m also making UA-cam videos on the development of it because I just love to explain stuff. At school I was one of the very few who actually enjoyed standing in front of class to present stuff.
Saying that you shouldn’t make a game engine because we’ve got Unreal or Unity is like saying we don’t need indie games because there’s already AAA games. If you enjoy doing something then just do it, no matter if it’s been done before. You’ll learn a lot, and it WILL be worth it!
have subbed, always keen to see those with a passion share it.
I'm the same exact way. I've played games my whole life but I've always tried to learn more about HOW and WHY they work like they do.
The only good reason NOT to make an engine is that you will never be able to pull out all the work that 100+ devs can deliver.
That is literally the only good reason NOT to.
Me three? ... me three!
Why build a personal game engine? Because it's fun, and because learning.
I love how every video I watch of his that answers a question, has a single sentence summary in the top comment.
His hair shows how advanced his game engine has become
TressFX
Building a game engine is so rewarding yet so painful at the same time. Learning to make a working engine is my dream and I'm going to keep at it.
@@lithium25693 Because creatively it's what I want to do.
lithium: He is making existing ENGINEER better by teaching him how to make game engines :D
I love building libraries and APIs because of that "a-ha" moment when someone consuming them realizes they now have the tools to do something amazing that no one else (including me) have ever thought of, or that their existing task has gotten so much easier.
Writing my own engine mostly because of the passion and the freedom. Also, it's a good way to learn new things and to practice your skills! Engines like Unreal or Unity are big systems that needs to be flexible to suit to a lot of users needs. All this comes with a relative cost. And they are not flawless.
I get asked a very similar question all the time! "Why I'm building my own operating system?" Same answer!
man, you made my day 😂
Hows it going though?
God speed sir
Terry have you returned?
You sir, have earned a subscriber! :)
Why I'm making a game engine?
Because you showed me that it's not that difficult. I just didn't know where to start and your videos helped a lot with that. Thanks!
One thing I like about creating my own engine is the fact that I know it like the back of my hand. Though I don't really use your tutorials anymore, you taught me pretty much everything I know about C++ and OpenGL. Thank-you.
You’re 25?!?!? What have I been DOING with my life?!
I'm working on my own engine for a lot of the same reasons you are cherno. Firstly because I love it, it's extremely fun to me. And secondly because I want to create a game someday from the ground up (with my wife too funnily enough). Seeing your story and dev blogs is highly inspiring to me. When I talk about this hobby with my software dev coworkers they bring up a lot of concerns like the ones you talked about (why build an engine when there's ue4/unity) and it's hard for them to understand that I'm doing it for fun, I'm building skills, and I'd like to be a professional engine dev someday for a AAA studio.
Honestly skills or knowledge is a highly paid skill too. 😉
"Because I want to " nice and simple.
Building these kinds of things just for fun is one of the most inspiring and amazing work someone can do. Look at Andreas Kling, making Serenity, it's nuts what you can build with patience, time and a good attitude. Keep the good work!
Bro, you are destined for greatness. There is something innately and undeniably SPECIAL about you!! Everyone better watch out!!! I can’t wait to see what you’re going to accomplish!!!
I'm fairly new to programming and your videos help me improve further than I could ever by myself. Keep going. :)
Martin4ata This is what the community is all about :)
I’m not building a game engine - nor am I particularly interested in games, anymore. But as a fiction writer I love to absorb the might in monologues such as this one. Success is the exhaust fume of a purposeful, passionate journey; a journey one explores best for the simple joy of it, first. There is nothing to be gained from counting potential gain, but, in my experience, you gain everything from a dedication to craft and creativity. Cheers for the content; I’ll crack on with more writing and keep ya on my radar. S’always good to soak up inspiration from everywhere you can find it.
I'm making my own game engine too and I'm doing so for multiple reasons:
1. Along with other specifications, my engine is heavily focused on color manipulation to a point where I'm not sure other engines can adequately meet the requirements.
2. I want to be able to work quickly and efficiently in a certain style and with an environment I have a lot of control over, both for making games by myself and for making games for others.
3. I'm learning so much more and faster by having to do something that complex than I would with other methods. And not just in coding but also in math and painting among others as well.
4. Even though my business model doesn't need it to be that successful, it would be nice if I could sell licences for it in the future when it would be complete enough and easy enough to use.
5. I love doing this. It's so good when you manage to do something you thought was impossible or too hard for you to achieve even just a day or two before.
Best part thing about you're videos is they are very informative.
The Hazel series is really high-quality so far, and I really like your style of video. However, it's gotten so big now that in a lot of the videos I'm getting lost in the codebase and the conceptual understanding of how every individual component integrates with the entire engine. Really good work so far; please don't give up on this monumental task.
Not working on a game engine myself, but I am using what I learn from the various series on this channel to make a program that allows the user to animate models, use and define their own shaders/effects, and allow them to render their creations either to image or video files
Right on. I'm building my own UI library, because a) I need it for my apps and b) the available UI systems didn't quite have what I want or work the way that I prefer. And it's fun and educational.
Great video Cherno. I'm a junior software engineer at the moment for a VOIP company out in Arizona with a dream of getting into the game industry, and hearing you talk about your love of the technical aspects of game engine programming is inspiring. When you said you were 25, my heart sank just out of, "what is wrong with me" since I myself am 24 and just feel like I should be at a better place in my technical skills. I started programming when I got into college back in 2014 and feel like there are so many gaps in just my general knowledge of programming, so I take advantage of watching your videos when I get the chance to help improve my skills and come up with little tiny projects here and there to get better. Appreciate the videos and keep doing what you do!
I'm making not my game engine, but my own gui library, with event system, widgets, and so one. When i found your channel, i immediately thought i won't find in anywhere else. Your OpenGL and Hazel series is just a masterpiece - you really won't find it anywhere. Your experience was so important for me. Thank you so much.
"I'm building a platform that will enable me to be creative" - Yes, that's exactly my feeling too - and is why I follow your videos. My domain is scientific visualization (at least in part) and am re-writing the graphics part from scratch - that is why I find what you have to say so important and useful.
I’m also somewhat working on a game engine. Although rather than building a full engine, I’m working on a couple smaller games and building a set of libraries to do what I need, as I need it. I’m doing it because I like the learning experience, and enjoy building all these primitives and low level code, and it gives me a better understanding of the things I’m using to build a game with.
I'm a game developer, building game engine just to know what happens under the hood of a game engine ! And it's pretty cool journey with you so far!
[01:05] I'M SO GLAD ABOUT YOUR ANSWER! ♥♥♥
IT IS THE BEST ANSWER and IT IS SO CORRECT!
When we have passions, we pursue them with determination!
The goal isn't to make money, but to achieve the real goal of succeeding at one's passion!
Revenue later is ok. LoL
I'm currently writing what I think is a game engine, specifically a rhythm game engine.
It all started because as a programmer I've never worked with opengl and really wanted to challenge myself to learn a new tool.
After some time I found your opengl series and without a doubt that was the biggest help that i received from all the video tutorials.
This engine has been my longest project ever and now I'm more happy than ever.
Anyway, this is my story :D
I am 43 years old and your dream was my dream too. My balance was mostly about design and visualization. Unfortunately It was not good times for creating games (especially in Turkey) to make that dream come true at 1990's. Now, you have all the tools and support because of the internet. Go and live your dream man. I am watching you and learning from you these days because i am up for making my dream to be real.
I am learning to build a game engine because of you Cherno. If you accidentally saw my comment I really would like to thank you.
Remember I picked computer science for my major simply because my friends did. And the whole world is talking about AI, cloud computing...
I was searching for C++ tutorials before starting my new semester just for quick revision and that brought me to your channel, 5 months ago.
I cannot even compare myself to you considering you already have programming experience probably in high school but I literally started my hello world program at university, 2 years ago. After finish watching your 90~ vids about C++ I tried to watch your hazel series. And I did a little research on game engines. I found that game engines are built based on stuff that I am learning but thought useless which are linear algebra and Newtonian. I found a way possibly for me to apply those and more important, I love games.
I am from Hong Kong where people do computer science for finance and I literally cannot find a company doing large scale game related projects for internship, but also I am not professional. To be honest what I could do now is simply copying most of the code in your engine and try my best to understand what you explained. Still, you gave me the motivation to take courses and learn more about stuff like computer graphics. Your passion in engine development affected me a lot.
Cherno: "Why I'm MAKING a Game Engine?"
also Cherno: "Because Unreal Engine 5 isn't enough for me"
Darren Munsell QT is not a Game Engine
@Darren Munsell Are you for real? Qt is a GUI Framework, it is not designed and optimized to run like a game. Yes it has "3D" but nothing like a proper Game Engine Renderer. The Qt 3D Module is very basic and meant to visualize 3D stuff in industrial applications. It's capable of doing something like the Maya Viewport and not actual Game Graphics. You would have to write the Renderer completely yourself if you wanted to do a game that looks even somewhat good. It also has no Physics System, no Animation System, no Particle System, no Level Editor, no Collision, nothing for Gameplay like an Entity Component System or Behaviour Trees. In short it has nothing a proper Engine has. A GUI Framework having some support for 3D visualization doesn't make it a Game Engine. Making a game with Qt is almost as much work as writing your own engine from scratch. Engines can and do use Qt (CryEngine) to for example do the User Interface of their Level Editor but thats it. Qt itself is nowhere near being a Game Engine.
Graphics rendering and networking is ALL that's needed to make a commercial or indie game? Interesting.
Because Unreal Engine is too big
I deal too much with motivation but I watch your videos and suddenly I want to do things and I learn from it! Thanks Cherno!
I completely understand “because I want to” and absolutely agree… many people don’t understand this.. I write stuff all the time just because I want to and I’m proud of it in the end.. of course excited to show people my creations… their first question is either “why” or “so how do you sell it, who wants to buy it.”… I dunno… it’s not really for sale but if someone wants it they can have the code… lol
Lot's of great content here! Keep it up! I only regret I didn't find this channel sooner (and it comes from the developer with 22+ years of experience).
Yan, I think you and I would get along really well together. We sound like the exact same person. I am also an Australian software engineer and musician who loves composition (especially film/game music) with too many ideas of things to do and not enough time to do them in! I think it's awesome you quit your job to spend time on all your ideas and have this platform (in UA-cam) which allows you to pursue what you want to do. I would love to be in a position like you are one day :)
Hi cherno, you're right. you're creating a game engine because you want it to, and that's the best motivation and satisfaction you need. I'm crafting a new compiler because a like compilers constructions and I dont care about making money or if it the worst compiler you've never seen, I'm making it because I want.
When I got into programming it was making mods for Minecraft for myself and a couple friends. When this happened it was back in the early days of Minecraft where your mods basically hooked straight into the underlying engine developed by mojang. As I got better at programming I wanted to learn to program games and most of the resources were saying things like "download this game engine and learn to program the game through that cause it's about making games not engines" and to me that felt like a cop out, like I was just writing a mod for the engine rather than building a game (as my early Minecraft mods were more involved than what you have to do to make something like a basic unity game). So instead I learned to use libraries like SDL and Sfml... I watched some of your videos and some videos by others at first and soon I started trying to build my own engines without relying on video tutorials.
Now I watch your hazel videos because it's interesting seeing how others do things differently from how I do it... Sometimes I come back and change my engine cause it's like "hey that is a great idea" and other times the way you do things aren't fully compatible with how I implemented it... Basically it's exposing myself to other ideas so that I can learn more.
So to me, it's about learning how things work. I am certain if I were to ever try to join a game jam that I would probably want to learn how to use an actual game engine rather than trying to write my own engine everytime but right now that isn't my intent.
For me the learning part is extremely important. For example I used Behaviour Trees for a while now and learned (at least a bit) how to utilize them for my needs. But my understanding can reach the next level, if I build a Behaviour Tree once myself to get a deeper understanding of it. That's why I created a branch of Hazel and finally implemented one with a demo in the sandbox app. And I loved it, it was fun to get a better insight. As far as I understood you in your "Why I quit EA" video, that is part of your motivation too (pls correct if I am wrong).
Hi, Yan! I am making a game engine for the purpose of better understanding what goes on behind games, stuff that you don't see or even know about. I am currently going through your Sparky game engine playlist and have been for close to two months now, making my own engine for a school project, to pass a Graphical Programming Systems class. Thank you very much for all your content! Thanks to you I now have a basic grasp of OpenGL and much better handle of C++. You're awesome! Keep it up! :)
I was right. Keep making such videos. Hopefully you will complete Hazel by 2021 and learn everything you need because you are very hardworking and I would love to see your engine be implemented to make a Game and would proud of your creation. When someone would make an awesome successful Game using Hazel I could say, my man Cherno made the Game Engine because of which the game has achieved it's vision and blown everyone's mind. Till then take it one step at a time and always be motivated.
And yes you are doing a brilliant job at educating us. Keep it up.
I totally get it and understand where you are coming from cherno. I am currently building a 2D game engine and some game development tools. I eventually want to make a game with the engine and then monetize the tools. I do it because I simply love it. I am also doing it all by myself which is hard sometimes. I only have so much time in the day to work on it as well as having many teenagers in the house(not as many anymore) which makes me busy on other levels as well as having a full time software engineer job. But I keep pushing for it because I love doing it. :)
Dude, you're a living inspiration. You inspire me a lot. Keep up the good work!
I feel the same, the more I keep designing the UML of my 2D engine for my dream game, the more it makes sense to write my own engine.
I had the most fun in month designing the architecture of my engine.
I am looking forward to follow your videos and learn making engine from scratch and maybe if am able to contribute something back to Hazel. I would say we are quite similar, I find making game artistic and needs a kind of flair that I might be lacking but I love how I can enable people to use that flair and zest to make games by making engines. The biggest reason for me being drawn to engine development is you know bringing in effects from the real world, to be used in games and simulations. That was my fascination earlier and then later I got bombarded my so many things involved in it, got deviated a bit and hopefully I am on the right track now !
I understand you! Look at the story of Blender. There were so many 3D software and the creator of Blender just wanted to do a good software for everyone! Just live ur passion!
Thats not true, Blender was a commercial product in the beginning and went Open Source later.
I hope your channel does not go superficial. Reaction videos and stories are nice but we the guys that been here forever are still waiting for educational videos on the "how it is made" side of an engine. Kudos from Cape Verde
Thank you for the hard work TheCherno!
I also have fun developing game engines rather than games and doing it with pleasure as hobby. My goal is to understand everything in detail. After some years of failures and retries in my odyssey, I am happy that I found you and your tuturials, which help me a lot in getting finally something like structured code instead of the spaghetti code I normally produce during my "lets try this quick ..." phases.
The journey was very hard until now, cause I needet to learn first C++, OpenGL, etc. (sadly before your tutorials...)
Now with your tuturials everything is going very well.
Again big thanks to you and your community!
wtf.. he is 25, married, has a 4+ years exp at EA and is building a game engine??? im fucking 23! need to step up my game! (pun intended)
I'm also writing a game engine. And mostly out of sheer curiosity of how games work, and that's one of my main reasons I decided to study computer science. Basically, my only knowledge source back then was the Game Engine Architecture book by Jason Gregory, and it was a very dense book for me when I started learning to program 10+ years ago. Besides that, I found your videos and started to dive deep into game engines again with a much broader skillset and it's fair to say I'm also passionate about it.
I'm making a game engine for a number of reasons. Mostly, like you, because I enjoy doing it. Another really important reason is because I learn things. I learn so much not just about game engine programming but things about software development in general. Lastly, because I have ideas that I would like to see in a game engine, this give me a reason to do it. For example, testing is really important and testing in existing engine has always been a bit of a pain. Other concepts like DI aren't supported out the box with other engines (although there are some great third party extentions for it). All of these things make it a fun and usful thing to do in my spare time, regaurdless of how the project ends :)
You’re so talanted bro. Keep working on it and you’ll achieve big things in your life!
I'm also trying to make a "mini game engine" by myself in quarantine, to understand how the c++ works in depth. I've made some simple games without game engines, just coding, but now I'm challenging myself to create a "mini game engine" and after doing that to make a game with it. I have some "experience" with game engines, firstly I tried Constructor 3 (a very simple game engine for beginners) and then Unity. Also, I learnt a lot of stuff from you. Thanks for every video that you made! My friend also started progamming and I told him if he doesn't understand something ask me or watch your videos.
Becoming a full time software engineer for me started from the curiosity of how computers work on their fundamental level when I was still in school because I was watching very early in my life my brother making electronic circuits for a hobby and I was learning from him. I was always interested on how game engines work because I was also considering that they were too complicated pieces of software for a single person to write, requiring a deep knowledge of the hardware capabilities to balance the performance that you can get out of it with the complexity of what you are trying to create and ultimately make it become a tool which will give you the ability to create games in a much easier manner than having to write them from the ground up each time! Great work Cherno!
Me: "I want to make this thing that can do this..."
Everyone else: "Someone has already done that so just use theirs!"
Me: *sigh*
I am building or shall I say I built a full 3D engine on my own UA-cam channel. The reason is simple: I get way more performance than what commercial game engines can offer me. Also my engine is extremely lean and has no bloat which is something that can't be said for some commercial game engines. Another advantage is that my engine matches my needs EXACTLY and works as I need it to, which is a HUGE advantage as opposed to using a third party engine. And the final reason for coding my own engine is because like you, I like to code engines.
I feel u man. Build something from the base is so damn fun! Especially if we have the resource and the skills to do that! Who knows in the future, someone will push our base game engine further. Even if not, [building one of the most complicated software known to humanity] is some accomplishment in itself!
thank god there's the ultra geeks (not nerds) of the world that are willing (and love and get excited and motivated) to sit down and do all the technical stuff to make a game exist. You sound like a fellow Kiwi to.
Keep it going. Wishing you achieved something amazing. You will get there..
After playing around with various engines I found I preferred working on my own tech. Though I do try an existing game engine every once in a while. Like you I enjoy the technical side of making a game the most. It's also a platform for me to try new techniques and try to improve my programming skills. My latest engine is fully 2D and the focus is on combining a minimalistic ECS with multithreading and a Lua scripting environment. It's also an experiment in doing less OOP and use a more structured and data oriented programming style. The knowledge that I pick up while doing this work actually carries over to my non-gaming day job, which is a nice bonus.
I think showing stuff like that is a great way to showcase your skills - which actually is a brilliant idea because your value goes up as long as the potential employers go. And you can't lose, because you also teach people and build your little community that will support you. On a side note - you also seem like a nice guy :) So all I can see for you is WIN. Keep it up! :)
I am 15, and you partly inspired me to start developing my own game engine. For a few years, I had been using the processing 3 graphics library for Java, but as my projects got more complex I realized it simply isn't fast enough (especially for any 3D). So, my inspiration for creating an engine is: to replace processing with something faster (using lwjgl VS JavaFX), to learn what goes into an engine, to have fun, and finally, I want to see what limits Java can be pushed to, I considered using C++, but there are plenty of game engines or frameworks in c++. Many people have said Java and the jvm are too slow for game dev, but I alot of that is old news from java's early days, and I want to see what Java is capable of. I have really enjoyed the dev process so far.
I started doing my engine because at time I wanted to make a game, but game engines weren't as accesible as they are now, I remember having to pay 15k to havok in order to use the physics engine in Source Engine, but then once they were free, I realized i liked making my own engine more than designing game mechanics, after i finished uni and began to work I couldn't dedicate as much to it as I wanted to, but now with the quarantine and a more flexible job I'm back into it, even though my engine is in a fairly advanced stage now I really enjoy watching your series!
I understand you man
I'm also a software engineer but I also like producing music or do electronics or 3d designs because that's how I feel, that's what I want to do.
I sure am not perfect at each of them but I enjoy my time doing them and that's what's important to me.
Greate channel.
best of luck.
Your videos is simply amazing, especially the c++ series. I've always want to delve deeper in c++ but years of using only c# and java makes it kinda hard to dabble in it I guess. Your insight in c++ is simply amazing and I learn a lot of things from it. Keep up the good work Cherno!
Building a Game Engine... for Research in Data Parallelism and Networking.
Got to get those Papers Published.
Awesome content i am looking forward to see your approach on building an editor system.
+RESPECT .You are doing a great job .Learned a lot from you and will keep on .
Sorry for not watching the full video but really thank you for doing this series on building a game engine, I always had a dream of building an engine and your videos are really helpful on learning about engine architecture. I really want to support you on patreon sometime since you do a nice job my guy.
EDIT: I have been following your tutorials on Linux using SDL/CMake just because im used to it and CLion likes CMake.
Im also building this engine because I really want to learn more about these things because I find it interesting and I want to try and build a Minecraft like block game in it.
You really have a lot of spear time to make Hazel
I can see your really devoted to this, keep it up
Currently making a little game engine in school. It's been a good learning experience.
I haven't had built a gaming engine but I did spend 8 months building an Alexa client from scratch in C++. Now I get to take everything I learned into my day job.
I love to make a game engine cause it makes me feel like I'm creating a world that I can do/create whatever I want whenever I want, That the main reason why I love making a game engine, It's fun :)
I would love to build a game engine at some point in my life. The short answer to why would also be "because I want to do it". The long answer is: I love low-level system programming, but as I work as a backend software engineer, things rarely get as low level as I'd like (even though sometimes they do). Also, I love challenges and games, so it would be a win-win situation. Probably I'll never take it off the paper, though.
I'm making a game engine of my own! It started off with the frustration with the engine of my previous job. We just kept making games on a broken piece of software, ducttaping it together. After that I focused on making it web-oriented, because alternatives are far too big to be used on the web.
It's not really a game engine, but more of a framework, as it doesn't really have an editor like Unity for instance does. But the download size is way smaller than anything that does anything similar, which is one of my primary goals.
Love your channel and I have the exact same opinion. I've had people ask me why I'm writing a game engine and why am I not just using Unity and even people thinking I'm just against game engines which is not true. Plain and simple as you said I started to write a game engine because I thought it was fun and satisfying to learn how to do it. My engine is not completely built from scratch (it uses MonoGame to abstract OpenGL, OpenAL, input and stuff like texture loading away) but it's still been great to learn how an engine is structured and how the engine interacts with the development tools like the editor. Eventually I want to release a game with it but I'm not rushing it too, I just have a small game that I use as a testbench for engine features for now. I'll probably even end up eventually taking MonoGame out and making my own OpenGL and Window abstraction in the future.
Programming the engine for me is often more fun than programming the gameplay of a game and when I do just want to make a game fast I use Unity or Godot.
Keep up the great work, I like programming for fun.
People ask me the same thing... "What's the point of making a game engine if you are not going to make money or be productive with it?"
I wonder if people ask as others "why are you going to this cool jazz bar?" or "why are you drinking this cold beer?"
Life is not always this utilitarian. I applaud your take!
I used to want to make a game engine, but that was years ago before I knew about them and how games and engines happen.
You mentioned in a video that games used to be made, then engine were drawn from them to make either sequels or...an engine.
I had learned that years ago and so gave up on that. All this before I even got into Unity and C#.
So I stuck to modding and improving great, or once great, titles. ♥♥♥
i tried a few times years ago to make a game engine - I didn't try to build the rendering engine - I used Ogre3D for that, but it was really fun and interesting. I ended up stopping after a year, but it was a really amazing feeling getting my own voxel world up and running then using geometry shaders to make it look far less blocky. Seeing the algorithms i wrote and concepts I struggled to understand come to life and work, and often very well was incredible. the hardest concept for me was network synchronization with minimal bandwidth use (I wanted to write an engine for an mmo) and movement algorithms that didn't look janky. I'm far from an amazing programmer, but damn those were good times.
I also enjoy building my own engines all the time, I find it helps understand the underlying tech that is often overlooked. It also allows me to focus more power into areas such as networking rather than say physics. Plus then its all yours :D
15 years before i tried making several game engines with the goal of making an actual game and learning all the technical side of things, but there was no real teaching materials at that time for making engines for games (There was no thecherno, handmadehero or anything like that). Therefore it was really hard to figure it out and i got stuck all the time - especially with collisions and physics. But i made a ton of stuffs, tech-demos, game prototypes, full applications and i learned a ton from it and very much enjoyed it - since then i have a passion of doing technical programming for games or multimedia.
Now many years later, i have the knowledge now to make everything i want - but i am much older now and have a family with kids and dont have time to write games or engines anymore :-(
But in my daily work (not related to any game tech), all my knowledge from that past is still very useful to me, so i dont regret any second of it.
Nowadays i am focusing more on making smaller/medium sized programming libraries to make life of people easier.
But i am still dreaming about making a full game sometime, written in my own little engine - maybe when my daugther is a little older and keen enough to learn programming...
Maybe my passion for making tech stuff is the reason why i like watching people like you teaching others, showing how its done. But still even in the year 2020 there are not that many people on the internet, which teaches everything you need to make games - from the ground up.
What you say is so right and true. Because it is fun. I tried to write my own Renderman/Pixar renderer in the 90s from several papers. Of course it was silly but it was fun and I learned lots. Right now I’m writing a KSP mod using Unity. Still fun but less ambitious!. Good luck with Hazel
I'm writing my own little game engine. Motivation started when I needed some easy platform on which release my thesis project "shadow rendering using view frustum splitting methods". Now as I am studying computer graphics as my field of study on master's degree I continued in order to ease my project. Now I am starting with vulkan rendering as my next thesis I would like to do work about GI with RTX.
Also, you motivated me to do videos about it so I finally started with the first video.
Nice thought-sharing video. It it very maturing to think these things true a bit from time to time.
When I got my first computer back in 2011 I was so fascinated on how games with 3D world were able to run on a physical hardware, thats why I got into computers because hopefully one day I would get to develop a game engine and create my very own game with said engine. And your content has been ever more helpful in teaching me how to achieve that goal of mine. Thank you
I recently startet building my own game engine. It startet out as a 'lets code something hacky over weekend' in javascript (not my first choose language, it just has the complete UI handling solved so an easy pick for some simple game thingy). Basicly build framebuffer/main game system etc but than really fast run into performance problems with large quadtrees etc. So i went on and startet writing my own game engine in c++. Im fairly experienced in golang, but golang has the memory management problems, so i decided this would be a nice project to lern cpp and opengl. So im basicla absolutly on your side of: i wanne build things from the scratch to understand them und figure out new things. Theres are 9-5 worke devs and there are passionate devs :) driven by curiosity!
Btw. i wanted to add i really love your videos. Clear talking - fact driven explainations - im working through your game engine and your c++ lists so far and its really helpfull.
I built an OpenGL game engine with a cryengine editor like interface back in 2001 for 3 years, nothing came of it but I learned a lot and had fun, however being in a small team starting any project from the ground up is a much better experience then going solo. You learn more in a shorter time span and can bounce ideas with other people.
He who has a *why* can bear almost any *how*
5:23 I love her style!!
Cherno,you are right....you love teaching game engines we love learning game engines
.. Thank a lot @Cherno for teaching us this black box technology 🙏🙏🙏
Hey, I'm also trying to make a game engine. For all that 4 years being game developer using Unity game engine, I learned a lot of things including the engine limitations: starting from the architecture you use and ending up with basic data manipulation issues; and I always catch my self thinking: I know how to do it right. So I decided to try to make my own game engine with everything being right, because otherwise those ideas would chase me forever. I don' want to exclude Unity from my live(It is my main tool at job overall), however I believe my effort would worth it.
Btw, I tried to use premake and visual studio, but it was such a pain to fix anything if it breaks and doesn't work as I expect, so currently I make everything using clang, new windows terminal (it is pretty nice :D) and vscode. I found out it is a lot easier and satisfiable to write a C program which would compile and link you main program than to learn visual studio and other build tools.
P.s I think the hidden reason why people make game engine nowadays --> it is cool ; )
I once set aside a few weeks to make a game around 10 years ago. I fell into the "trap" of writing my own game engine, and it was like 70% finished when I ran out of time. I never even managed to really start developing the game itself. But I don't consider that time lost - I had fun doing it and learned a lot. The engine part seemed more interesting anyway. Today a fairly experienced programmer (not necessarily a good one) and a LOT of my experience comes from silly little projects that didn't seem to serve any purpose at the time.
Also I know how wonderful it feels to completely lose yourself in a project, or to simply play with cool hardware. I remember the first time I used OpenGL and how cool it was to control something more powerful than the CPU!
Thank you Cherno!! I hate when people assume you're an idiot for wanting to learn about things, and I think that's the primary reason I'm working on my game engine. I feel like there's a huge gap of knowledge in application programming for new graduates (of which I am). School tends to be super focused on web stuff nowadays, and doesn't really teach anything at all about (PC) application development.
Also, one of my favorite quotes from Casey muratori is in response to the question, "why write a game engine? No need to reinvent the wheel?" And he says, "there are no improvements that you can make to a wheel, because that is the best you can get for a tool for that purpose. Game engines are nowhere near perfect, and the more people we have innovating, the better we can make game engines for everyone." Or at least that's the gist of what he said :)
I'm also trying to teach others how to make engines too (although I'm still learning a ton myself) at my other channel gameswithgabe.
Yes to all what Yan said. (!) I made a game with BASIC long ago, kept doing it. When friends available who wanted, we’d exchange games we’d made. ‘Found a game with a level editor, began to make both a game with a way to add to the game (still in BASIC, solo fantasy rpg dungeon crawler with dungeon level editor). Kept finding new games, making personal projects and languages. (Neural network experiments, more sophisticated games) ‘Found doom with editor, ‘found unreal with editor, made maps and practiced level design. ‘Found unrealscript and started modding. _All_ this was for fun; but then became a designer for a living. ‘Found unity, learned C#, learned Java, learned JavaScript. _Still_ went back to older language (QuickBasic) to make a 2-D game engine from scratch, borrowing ideas from an old book on doom techniques (for fun; programmers asked the same question: why?) ‘Enjoyed unity’s component based architecture, so decided to make a game engine with that in HTML5 (more programmer friends asking why; again to learn, for fun). Always learning, even when I teach, always looking to make that thing that sounds fun. Like learning C++ (again, for real this time, damn the pointers, full speed ahead!), found _this_ channel, making games in lower levels of C/C++ to learn and have fun. These skills do help my work, for sure, but as I tell anyone who would listen, I’d be doing this even if I weren’t paid. [/story] Yan, thank you for being a Creator, you make. That’s the word you’re searching for. Along the way, you’re also a Teacher, and thank you. :) And, if your family project would enjoy it, Hot Iron Productions would be happy to consult for free. (Barter for the lessons you’ve provided in C++) Cheers!
You're absolutely not going to compete with Unreal. But you're providing a good resource for those wanting to learn. Kudos to you for finding an angle you can pursue which gives you a good living, and you don't have to work for someone else.
I want to make a game engine because:
-I want to build one.
-Learning and experience
-Unreal and Unity isn't enough for me.
-I want to build a game studio using the in-house I built to build games I want to make. With a great team that can improve the engine.
-Its difficult but also fun
-Use of C/C++ and Python
(scripting)
I honestly don't know where to start to build a game engine. I have books on graphics programming and game engine architecture. I'm learning a lot with those books and your videos.
Learn SDL 2 it's cross platform low level graphics library
@@raptorinc8331 What books or videos do you recommend to get started? What's the difference between learning Opengl vs SDL 2?
@@davidboygenius6843 open gl is even low-level api but SDL is written using multiple APIs like open gl, direct x and open gl es so it supports multiple platforms
@@davidboygenius6843 you can learn from internet sites and offcourse UA-cam videos
@@raptorinc8331 Can I use it to make 3d games too?