UA-cam is kinda dumb. I guess they’re gonna promote this until it gets a million views or something. This video was very poorly worded and most people missed the point (even people who think they agreed with me). I've just put out a better video explaining my opinion on the matter: ua-cam.com/video/TELHwCtvfFA/v-deo.html For those of you coming from CodeMonkey's reaction, his reaction has a cut up version of the second video that doesn't make much sense out of context. I recommend actually watching the video I linked.
Im not hating...but if you used pygame to make a 2d game thats literally lowest level programming possible. Thats arguably easier than a traditional 3d engine.
@@etopr4986 Do you mean high level? Btw I'm not writing this to be rude. But isn't a low level language like assembly or machine code? High level would be like all the known languages. Well from what I researched anyway.
@@shashikanthp3145 Good for you, but that doesn't mean it isn't overused. On any video where someone does something impressive at a younger age you see this joke at least 3 times in the comments.
But It literally doesn't matter? "Videogame time is over, Timmy" "But moooom, I made this game" "Cool beans, So?" "Limit doesn't count" "Are you playing a game?" "...yes" "Then as I said before, videogame time is over"
@@zz-ly4qd it is heavy, that's true, but most computers can Run Unity just fine, while it does take a lot of memory. it's totally worth it, the software itself is amazing, but I don't think it's right to say unity is for "lazy people" since programming itself requires a lot of work, regardless of what domain or field of it you choose, wheather that be AI,gamedev,webdev, etc....
@@zz-ly4qdyou just disrespected everyone who uses unity even though you still have to put work into it like mabey I just want to make a game like how is it lazy to make a game your python ect: is making an engine and a game , so what ? how is it lazy to make a game
Unity is the de facto game engine. Beginners to Pro's. Indies all the way up to more or less AAA. (not sure about AAA) It is like the main one that the business model was to give the engine tools to costumers at a reasonable price. Or you go with Source or Quake and make a mod out of a other game on the market. Totally acceptable title. Like he said this decision began YEARS ago. Better tittle. "Why I'm Glad I Didn't Use Unity or made mods for games" And instead focused on data science instead of game making tools.
@@Kednems You would to. Its the way of youtube now. I do no agree with it but how it is. We should blame youtube algorithms or ourselfs. Clickbait is annoying, it is like prices in shops, why be $1 when you can look cheaper and better with 99cents
Every proper craftsman needs to understand his tools. He doesn't need to recreate them for every project. So you have a point in not just accepting the magic of abstraction but not using a set of tools means you don't consider time a significant factor. A frame is both supportive and inflexible. Its usefulness depends on the situation.
The best option is learning low level development for fun, and using that knowledge on ready made libraries for quick development. There's no point on developing a library that already exists and has been well tested by millions of devs.
@@snooksv3172 Compared to what exactly? Possessing deep knowledge of how those frameworks have to function under the hood? I'll take the person with real knowledge over surface level knowledge any day of the week. Any numbskull can memorize apis. A true professional asks why.
Then again, I suppose they didn't promote Einstein when he was working at the patent office. Apparently he didn't put enough of his effort into memorizing the surface level details of whatever machines they were using at the time. He was too busy, you know, completely reinventing our understanding of time and space.
There's plenty of reasons to developing a library similar to what already exists. Even the wheel needs to be reinvented all the time. Otherwise we'd use wooden wheels on everything, and that's just insanity. It really depends on whether you want to do work by having deeper understanding and making things from ground up with those base understandings, or if you want to get good at executing recipes. The first is more time consuming, but allows you extreme flexibility and potential for serious innovation / originality. The second is extremely efficient, and allows you to get complicated stuff done fast, as long as you stay within the territory the recipes are made to handle (otherwise you will need to create hacks / systems on top of systems etc., essentially working around the approach you've chosen). I would much rather do the first, assuming I'd get good pay and have the time needed for it - but the second is better for dishing out prototypes and new combinations of existing functionality. Basically the first is truly creative: Creating something from nothing. The other is recomposition, creating something from what already is, but in novel ways. Both are legitimate, but frankly I think the more follow the line of reasoning of the first, the better (or maybe we're just oversaturated with the second, I don't know). For me, I prefer the first, even though my current path is the second. I suppose the grass is always greener.
@@JamesTsividis Of course. This project started many years ago when my first stone age tools were made. My first game will be completed.... soon. I'm so glad I didn't use Unity.
This topic is something I've been thinking about a lot lately. I've been working with Pygame for a while but recently started playing around with Godot. Starting with Pygame definitely allowed me to jump right into Godot and pick things up quickly, since I mostly understood how all the baked in features worked that I had to code myself previously. I think game engines are important if you're goal is to release a commercial game, as they drastically speed up the process, But building with Pygame has taught me a lot about Python itself and has absolutely made me a better coder (like you said).
@@AyushGupta-wn6zd You mean tell you about the kinds of games I want to make? i have all sorts of ideas. Racing games, sports games, family games, adventure games, etc. I have more ideas than I know what to do with.
Well, of course developing your own engine gives you more programming skills, but as a solo developer I prefer to actually make a game rather than programming the engine first, then the systems and game mechanics my game will actually have and then at least do the artwork. Seems rather useless developing your own game engine when there are plenty of them already on the market. Its whether you want to make a game or be background developer. Dont make game engines if you just wanna make games....
I wouldn't really say it's developing an engine, it's more like building a skeleton for your game. In my opinion, it's a lot more fun and fulfilling, and it'll also be more flexible for the game. It also gives more creative opportunities and I learn more than by using pre made engines, which I find a bit limiting and hard to push what you want them to do sometimes.
This is the problem everyone is missing. I myself would go with my own from scratch, I've been making graphics engine at my university for a long time and I surely can do impresive stuff, plus doing your own engine means much lower overhead and much higher degree of control. But then when I think about multi-platform (what if my PC game is successful and I need to port to Switch or even Android/iPhone?), the whole editor stuff for level development, animations are also a bitch to do from code, and the list goes on...
@@pifopifo1000 I am in the opinion that every game developer should (or at least try to) write their own 3D engine before using existing one like Unity or Unreal. It gives a lot of understanding how everything works on lower level and helps making more concious decision when working with big engines in the future.
@@Tasaq313 Luckily making games is just a hobby for me, since I have programming in school. But I will consider making my own game engine or at least trying in the future.
I think you're conflating unrelated ideas here. Developing a game without a game engine doesn't require you to develop an engine yourself. You can't develop an engine out of the blue. You'll build a game as a monolithic set of intertwined functionalities that can't work on their own. You will code only what you really need to code, and you won't build libraries unless they're actually gonna save you time and effort. No game engine originated before a game, or from the making of a single game; they were the coalescence of experience and in-house libraries that grew from repeated code and eventually into a framework and then into an engine. I have a small framework of my own for roguelikes (built on lua/love2d), and its origins are exactly that. I never intended to make one. It just emerged naturally from a few years of writing the same stuff over and over. And then, btw, developing a game without an engine probably still means you'll be using a framework that also comes with a lot of what you need already done for you, like pygame, love2d, raylib, etc.
Slight correction: Raylib isn't just a graphics library. It's a slightly more extensive than stuff like Pygame because it's got a physics module. *Please actually watch the video before commenting.* lol People seem to miss the word “I’m” in the title. Going without an engine has benefited *me* in the long run. Obviously you usually can’t easily make the same 3D games without an engine, but 2D games are pretty close, which is fine for my use case since it revolves around learning and not just making games. Also, I specifically reference Unity in the title because that's the engine I was considering using early on.
@@darakushitatamashi8837 there really aren't strict definitions as far as I know. It can be argued that Pygame isn't a graphics library either because it can play sounds.
I don't like classifying MonoGame/Raylib, etc. as graphics libraries, when they clearly handle more. I'd classify them more as game libraries -- they don't handle higher-level stuff like libGDX so they're not really game frameworks, but they aren't as low-level as raw OpenGL/OpenAL.
I couldn’t agree more with this video. I started learning unity and after using it for a few months I decided to take a different route. Since I already knew a tiny bit of c# I switched to MonoGame. Couldn’t be happier about that decision.
This is a very interesting take! As someone pursuing indie game dev who is more of an artist, I'm more interested in the end product and looks, rather than each bit of functionality, so I think I will be taking the game engine route.
Senior dev here. I absolutely agree with this point of view. I did write a simple renderer many ears back and because of it, I am much more able to grasp how the engines actually work, which helps with my understanding of optimizations and so on... Generally speaking, it's not a bad idea to write your own, stupid, barebone solution for almost anything before you'll use something that'll take care of it. Tangential to this is also the fact, that you'll typically use the engine so that you won't have to deal with transformations (for example) only to find out later that you'll still need to understand them ... and this goes for almost everything else. PS: I'm not advocating for people to write their own engines when they just want to just build a game, but it has its advantages. Maybe at least check the source code of Godot...
You can even check Unreal Engine 5 source code to take a peek on how cutting edge game engine are coded. Keep in mind that it is a source available software, unlike Godot which is a free software. But if your point is to study an engine, I think it is good enough.
@@bltzcstrnx Yeah, I work with UE. but Godot is simpler, less lines to read less separate code paths and so on... You need to understand how it works first - the simpler engine the better.
I had the exact same story as a kid! I was only allowed 30 minutes of screen time, but making games didn't count. I used game maker, but I spent hours and hours every day making games. Now I'm a professional game dev, and I couldn't be more grateful for that 30 minute limit when I was a kid.
That's great that you found a way to get skills to find a job while making games! I also love Python! Another option if someone wanted to learn game engine and still get easily transferable skills is to make multiplayer games. The stuff you learn about networking is also very transferable! Great video!
stuff like this completely depends on the kind of project you are trying to do and what your goal is lol, for smaller projects / to gain experience this makes a lot of sense, but if you're trying to get big stuff done you will need something that not only you but others can work with aswell
Most people miss the point of the video. Using a game engine is not cheating, although easier, but the point of designing your own game from the ground up is that you will learn a lot more from it if you'd like to make a career out of game development (primarily coding) then this may be a better route. But for hobbyist game developers, Unity or UE are great ways to start out.
Nobody ever talks about LOVE2D in stuff like this, it's a great little framework Edit: this is why you don't post a comment until you finish the video. Happy LOVE2D got some attention
theres always gonna be platforms or libraries which are superior in some ways to the popular ones. But never underestimate the importance of community support. If you have a technically amazing framework but it has not been widely adopted, you're usually better off picking the lesser framework which has a huge support community. This way you're less likely to be that unfortunate first person to identify an obscure bug, and pretty much every problem already has a solution or workaround which someone else has figured out
Totally agree! I used pygame to learn python. I enjoy the challenge of coding games etc at a more fundamental level. It's very satisfying to build a project from the ground up and get it working!
This ironically is made as I'm relearning python. I hope it won't be too difficult going the opposite way I came. Also that game (I think it's called super potato brah) has got excellent game design and a lovely colour palette. I love your games cause the remind me of old school stuff (pixel dungeon, card wars etc).
i also agree on that ! working on a little game using CSFML while learning C made me more confident with the language in general, after manipulating tons of linked list for example
Interesting point of view. I tend to think that if you can program in whatever language, and by that I mean you know enough how to string logic together to solve whatever problem, then you can turn your knowledge to most things. You can easily move to new languages, and whilst there's some specifics to game dev, or graphics api's it's all much of a muchness. So it then comes down to time - if you are talking 2D on limited platforms, then probably more so than if you wanted to go 3D on lots more target platforms. I think you'd spend so long writing something just to get the very basics running that unless you were really into it, use a game engine. You don't have to be completely limited by them though, you can have the best of both worlds and include your own native libraries if there's something the engine won't do
You’re so inspiring man. I’ve started learning python + pygame in advance for my gcse work (starting course work next year) and put my ue4 projects on hold. So glad I found your channel (currently following your platformer tutorial) PS: your games are astonishing!
True, it all comes down to goals. For instance, there was a small indie studio that had never made a game before that picked up game maker studio, made and released a game on steam in 27 days and sold like 1500 copies on it, which in turn helped fund their next game which has apx 67,500 sales (early access) with 95% positive on reviews, and they also owe the engine owners nothing since it was an $80 up front cost. But, here's the funny thing since everyone likes to bring up performance. They were able to get said game to run at 60 fps on a watch and smart fridge... so basically if you approach it the right way then there's absolutely no reason to 'need' to code your own engine. But, like you were saying, it really depends on if their goal is to make games, build up their resume, or just want the unique challenge of doing it (etc.).
I enjoyed your video and can respect your opinion about whether to go with learning libraries or learning game engines. However, I've been using godot for around 3 years now and I've got to say it taught me so much I didn't know about programming. I think the limits are really into how in-depth you want to go with your learning, rather than the choice you make. I actually forced myself to learn vector math and shader development just because of my desire to be able to create a game that truly fits the vision I had of it. Since I'm working as a teacher, I noticed that nowadays people are willing to just search answers up on youtube about how to make what they want, and that's what makes them not able to make something truly original. That problem can even happen if you're learning to program from a library, since many people ask for help on stack overflow and just copy and paste code until it works in a frankensteinish way. I don't think I'd call that "learning" be it on a game engine or on pure coding from libraries.
I mean, I learned how to code with the RPG Maker 2000 and got my job with the skills acquired in that engine (Which doesn't even support code). "Using an Engine" and "engaging with programming languages and design patterns" isn't mutually exclusive, I think.
@@ryutoki Game design, art direction and a lot of similar skills can be learned on practically any engine. Some/most companies may want 'pure' programmers but people with mixed knowledge and assorted skills may come handy in many fields.
The only problem with Pygame is there are a lack of resources for learning it. For web development someone can learn html, css, and JavaScript through tutorials then make own projects and make for friends then be a web developer. I can’t find any guide which place to go to for pygame. Which parts to focus on. It leads wasting lots of time on things that are unknown you should work on or not
Web development is extremely unusual in how many resources there are for it. Also, I’m not specifically saying people should use Pygame. I was suggesting using *any* software to work from a lower level if you are considering working in CS.
@@DaFluffyPotato The reason why there’s a lot of resources for web development is because it’s a very high demand skill. As for game development, I want to get in the game development and make beginner games and then start making more advanced games. But I don’t know exactly where to start. I don’t know if I should go from Pygame to unity or start from an engine. It seems like knowing a game engine is like using word press or wix to make a website but with html,css, and JavaScript someone can do more detail. Similar to game development. But I’m trying to find a place to start to go from beginner, to intermediate , to advance in making games or from small to big games
"30 minute limit on games" That's brutal... not even me in my abusive dysfunctional violent household growing up had limitations to that extent. I had to ask permission for turning things on (which even at that time felt pretty humiliating already, kids are incredibly emotional aware, more than people think) but I never had a time restriction per se.
another thing that is a myth (the meaning of the word myth is "false belief" have in mind) is the notion that "kids won't play outside if you allow them to play games all day" Not even ONCE that was the case with me. I would NEVER change a day outside in the sun, playing with my neighbors or riding a bike, for a day inside playing games, NEVER ever did that.
so yeah, come to terms with the fact that your parents treated you like crap and don't feel like you have to give back ANYTHING to them, ever... that is for fools, that is another mechanism to keep people mentally enslaved... always have that in mind... feels lonely at times but eventually feels alright and then freedom pays off... you don't owe any of these people anything
As a 36 year old, I started with Godot and super happy about it. Already published 2 apps in a year. You can screw with a readily available tool (screw driver) instead of making one unless you enjoy the process of making tools. Apart from that, with readily available tools you are much faster.
Are you using GDScript? How is it in comparison to C# and other languages. People who criticize Godot generally make harsh comments on performance of GDScript. Is it really that bad?
@@03urukhai76 I have limited experience with C# (Unity). Never tried C# in Godot though. Performance-wise I heard C# is the winner, but GDScript is much easier, faster to write and more intuitive in my experience and it did a great job running my apps without humanly noticable lag in performance.
i actually learned most of my programming skills thru game development but using a framework instead of an engine. Because going with low level frameworks makes you write a lot of boilerplate codes which improves not just your coding skills but also your problem solving skilld
I love your videos so much, you inspire me a lot for learning coding and python, I would love to become such a knowing man like you! This is the most underrated coding channel I've known
Something to consider: 1) Not all engines are equal. Free and Open Source game engines, a-la Godot, serve as a nice middle ground for those developers wanting to jump into gamedev without being intimidated by the large amount of concepts that a developer has to learn all at once to do very simple things in frameworks. Engines (open source) allow you to get started very easily, while allowing more advanced developers to dig deeper in the engine and roll their own implementations of various tools if they believe their way is better. It's a nice middle ground. When I first began to write code, I used the LibGDX framework in Java, and the amount of time it took me to get something up and running was absurd. Not just because of the framework mind you, but because I was learning new programming concepts and paradigms all at the same time. 2) There are some folks who just want to make games, and have no desire to pursue programming as a career, which is fine. Engines are probably for you, though I will say upfront: you WILL be limited in what you can do by your lack of programming knowledge.
This isn’t universal advice. I know it works for you, but for people who can’t/don’t want to code EVERYTHING from scratch, the engines are good. You get more flexibility from coding everything sure, but for 3D itd be more trouble than it’s worth. I feel like many young people will be like, “wow I will listen and not get an engine!” And INSTANTLY be disappointed. I mean, they’ll be disappointed if they don’t spend enough time learning an engine, but you have better luck when things like physics are already packaged so you don’t need the extensive math for every last little thing. But glad it worked for you to switch.
To be honest, all over the video the UA-camr makes it clear this is for specific people, not everyone. In the video he even said a game engine is probably best for you if you want to put as little effort as possible or are interested in the game development industry. I agree with you that this isn’t universal advice. But the thing is the UA-camr makes that clear.
After almost 6 years of using a game engine as a hobby, I've finally decided to write my own game 'engine' for experience sake. With just a graphics library and all. Probably vulkan
Im glad i chose love2d honestly I previously used a game engine and to be able to control the rendering more freely was a chore often. That went for most processes. I really chose love2d for the freedom im given using it.
Great video, and I really agree with your rationale here. So many who want to get into game design end up just slapping-together premade and freely available Unity assets, the results are so void of any character. Although I'm further from completing my project due to my choice not to use a popular engine, there's a deep confidence involved with understanding how every element of the game's code works, from the ground up! Like a true sadomasochist, I'm currently working on a full 3D game engine (with dev tools) based off of GMK Studio 1.4. It's quite a challenge, but I love it a lot. Glad to see others are doing similar things! (:
i feel like i would get absolutely demolished if i even think about making my own 3d game engine, even if i was aiming for a computer science career. i would probably give up on games and focus on coding jobs. there is a good argument with how the faults of a game engines can be a road block, but it also works the other way where, a game engine can help railroad your decisions at times when youre feeling indecisive. option paralysis can really plague any kind of creative workflow
I used pure c++ and vulkan for implementing computer graphic concepts like light and skeleton animation. When we started implementing our games client on unity, I knew eveything and there was no need to learn stuff because I knew how stuff works inside engine.
One of the things my game design tutor has been telling my class over and over is not to think of our skillsets in broader terms. Learning a game engine is good if you specifically want to get into game design, but learning to code instead can make you infinitely more hirable in much more diverse fields (and that goes for the artists in the class as well). He wants us to think of ourselves as digital designers rather than specifically game designers and to have that awareness of where the skills we pick up can be useful and not just limiting ourselves to a career in an industry we probably won't like. Very few people in my game design class actually want to work in the games industry any more, including myself, even if many of us still want to make games.
This is very interesting video I didn’t know I need. I also started at 12 yo and was first trying Scratch, Corona SDK and pygame. But one time I tried Unity, and I just sticked with it because it seemed so intuitive, I’m not using half of the built in components now, since throw time I learnt and gain a lot experience, and I could say although engines usually have much more stuff done rather than doing stuff with graphics library, it’s a better option to start, because you’ll make your own systems later. But your video made me thinking of actually trying not an engine, like Monogame since it uses C# as well. So thank you very much for telling your story!
I prefer to use scratch (or at least, scratch inspired) because it's easy to use, doesn't give you a game engine, but allows for much much more problem solving skills. I mean, scratch has so many limitations that some programmers can't stand, but I love scratch for the limitations. Over the years, scratchers have created amazing things, from online multiplayer to full 3d games, to pen font engines, and even a gameboy color emulator! (if you're wondering, pen is turtle graphics, and scratch is all 2d) The limitations is what makes scratch awesome. why did I write this on a video that has nothing to do with scratch?
I'm in the "no engine" boat as well, although I'm mostly using Javascript. Plenty of options there as well: I like Phaser as a starting point because it has some systems built-in, but really starting from something like Pixi or Three is a great way to go. Hell, you can start making games using the built-in canvas API.
I feel like with JavaScript you are limited on the canvas tag? I’ve seen phaser and three.js which are surprisingly really good for JS but other than that, surely the canvas tag is only efficient for a simple snake game?
@@panasonicdiet3691 Yes, making games using Javascript does mean that you are limited to a web browser, or a web view of some sort inside an app. I'd say that the main limitations of it isn't the canvas tag itself, but the performance of Javascript engines. It is an interpreted language, after all.
The language that best supports making your own games entirely through code alone without an engine as of now is Java, which is currently the only language who's standard library grants access to OpenGL and the Apple Metal Graphics API (And is planning on Vulkan in the future I believe) without external libraries
@@theshermantanker7043 Yes, Java is an incredibly versatile platform., and you also get a large choice of libraries to use if you want to skip the boilerplate. It's also my favorite language to work with in general. Now to be fair, if you are really into raw graphics programming you can also use WebGL inside the browser without any library.
Great video! One point I'll bring up as a counter argument is that building games from scratch can be pretty difficult for beginners. If someone's just dipping their toes into development, they may want to start with an engine to ease into the learning curve. That said, there is no wrong way to get started, I'm glad this method worked for you!
AAA game dev here. skipping the engine is preferrable if you dont want to enter the AAA space as a game dev but as a solo or indie dev making your own is a waste of time. You'll feel greater personal ackomplishment but your customers dont care about how a game is made. 99% of the time a custom engine will look like shit next to an out of the box solution. Plus it wont provide any time saving shortcuts that solo devs really need. At the end of the day it's all about the final product. If you can take time or cost saving shortcuts to get that product released, go for it.
Making a game without in engine isn’t even close to the same as making an engine. (Especially for 2D projects.) I can whip up the basic systems necessary for many 2D games in a day.
This is a great topic and I definitely agree with your comment about transferable skills. I'm using monogame to develop my own engine and I find it so much more interesting to develop those systems rather than just getting games to work in someone else's engine.
I ended up struggling too much with low level libs and haven't produced any good game with them. This was too frustrating to feel like an idiot all the time and being stuck with no idea how to solve the problem I was facing. I finally decided to try engines and ended up using GameMaker for nearly every project came to my mind. Of course, I don't do very complex games but I feel much happier since I've been using that engine. I'm less frustrated, the problems I face seem more manageable and I at least end up producing some stuff. I often find myself wondering how it works under the hood but I still find this black box approach much more rewarding than trying, often alone, to make sense of everything that is very low level, highly technical and convoluted. So I guess the approach depends of the person and some will find abstractions are a good thing. That is not to say you're wrong. I loved your arguments and reasoning. I just wanted to share my personal experience.
I think many of the commenters who disagree, indeed many people who say you can't make a game engine from scratch or that it's impractical often conflate making a widely distributed general purpose game engine with making a game engine so you can make a specific game. If you already have an idea of a game you want to make, it's actually a very focusing kind of thought because it frames the design decisions you will make for your game engine. If you know you want to make a 2D game, then your game engine only needs to handle 2D graphics. That's much smaller in scope than a game engine that needs to handle both 2D and 3D graphics, as many commercial game engines do. The goal is not to build a general purpose tool for everyone. Rather, it's the exact opposite of that. You are building a tool for yourself, for your game, a tool that you intimately understand and can mold to your desires. Does this change when you add more team members? Sure. Of course, a smart person who built their own game engine probably wouldn't hire average industry programmers to work on her team. She would hire people with strong computer science backgrounds who themselves have built game engines and understand how they work. These people do exist, and many of them are excited to not have to work with third party engines. I built a 2D game engine from scratch in roughly one year of my spare time. I started in January of 2019, and by January of 2020, I had a 2D game engine that runs at 60 FPS drawing a game character on the screen, basically like a 2D platformer. During that year, I worked a full-time software job, ate well, and I always got two hours of exercise every day. My spouse also didn't leave me, and I was going snowboarding a bunch during the winter and still doing tricks off of jumps. I had to make very few lifestyle changes to accomplish this goal. It doesn't take nearly as much time as you think it does, and if you apply yourself, you will have something useful at the end of it. Most importantly, you will have learned so much more in the process. Just focus on making the game you want to make, and think of the "engine" as all of the stuff you have to do to make that work.
After learning a programming, you can safely learn engines, because in many cases it is faster and easier to make a game on the engine. If you work in a team with someone or want to implement an unusual and complex game (like No Mans Sky, Minecraft, etc.), here you can already think in the direction of SDL 2.0, for example.
I can't tell if my comment was lost or not, or if I accidentally cancelled it, so I'm making it again. This video would clearly be a lot more impressive if the game in the background was 3D rather than a 2D pixel art game. "No interest in 3D" seems strange for anyone interested in making games, especially considering 3D has been the standard for over 20 years, and it has only gotten easier and easier to do. Beyond that, 3D even makes many aspects of game development easier, including animation. Engines like Unreal are STANDARD now in game development. And not just low-budget indie titles like Final Fantasy 7 Remake or Borderlands 3, games I'm sure nobody here has ever heard of, but both were made in Unreal Engine. The main point of the video seems to be that people should just learn to be good programmers so they can get good programming jobs outside of game development. But programming in either industry can be soul-crushing for many. There are plenty of people who would rather have a different day-job and work on their own games on the side. Game engines certainly help them do that. The general tone doesn't seem to be that of a person that actually enjoys game design. It seems more like a person that just enjoys programming. There could be people with less skill in programming, but more interest in game design, art, modeling, etc., that would be able to make games that dwarf that of someone who merely thinks of games from the programming side. Of course a person should have programming knowledge to make games. But a key aspect of programming is to not fall in love with programming for the sake of it, but to use it as a tool. I had a good friend that often said a good programmer is a lazy one. They don't re-do work that has already been done well. In fact, issues in games like the Witcher and Cyberpunk can be traced to the developers not understanding contemporary engines and tools WELL ENOUGH, and instead re-inventing the wheel poorly. Cyberpunk 2077 was created in a proprietary engine, and we can see the results of that in wonderful glitch compilations. It doesn't even perform well, though they made it from scratch. As an independent game dev myself, my only wish would have been that I started learning Unity and Blender earlier, and gotten into 3D earlier, rather than resigning myself to only making 2D pixel-art games. 3D is a wonderful horizon, and game engines are there to let you get on with your vision.
If your aim is to be a coder AND isn't to make anything beyond SMALL 2D projects (probably even being just a hobby) and THEN get "regular software" jobs, then yes, you're absolutely correct, at the university I made my first games with C++ from scratch and that helped me a lot in my learning process. In any other scenario of game development, this is a horrible, horrible advice, for starters, you have to be a one man army (or have a small army made entirely of programmers that have roughly your same skillset), anyone that isn't a coder (sound engineers, artists, game designers) won't be able to get anywhere near your project (maybe if you make an editor just for that specific project which would multiply the project's completion time, and if you continue down that path, you're just making another game engine). This is the same as people saying that it's better to use low-level languages and avoid frameworks and libraries as much as possible, sure, you'll learn more (and that should be your starting point IF you want to be a coder) and it will certainly have better performance, but at some point you'll have to be practical, been there, done that and learned the hard way that reinventing the wheel is only useful when you just want to learn and experiment, but when you have to work in bigger projects with other people? it's usually not worth it.
Just use Unity, especially if you're interested in actually being paid for your work. It's no less of a programmer's paradise than PYGAME of all things lmao. I've been a "real" programmer for more than 25 years, and yes in pygame for a while, and I use Unity. It's amazing.
Would you consider doing a video discussing your perspective on the argument "Python isn't for game development, because it's not efficient enough". I'd really like to hear your experienced perspective on the matter, I'm sure others would too.
I used to develop 3d games without any engine, just C++ and DirectX 9 and some multiplayer library (I didn't do that from scratch). I think this helped me alot but now I do use a game engine (Unity) just because it takes too much time without one. When I was 13 years old, this didn't matter much but now....
For 2D, sure, have fun with that... Solo developer in 3D would have a hard time without an engine. By the time you reinvent the wheel you will already be burnt out. No thanks. Maybe there are some individuals out there who are very skilled and have a high tolerance for that kind of thing. Not me, I'd rather get started on the actual game right off the bat and save months of time and money.
Not really. I've made 3D games without an engine, and it's not as difficult as it seems. The difficulty varies widely depending on what graphics features you want. If you are going for realism and need fully featured PBR and GI solutions for your artstyle to work, then an engine will probably save a lot of development time (though it will still take a huge amount of development effort to make the art assets and scene the levels/world in that style). But if you're going for something simpler, like a more classic forward-rendered clean art style, or something very heavily stylized, it's often easier to make it yourself than try to shoehorn it into an engine designed for realism. At least that's been my experience.
@@notnullnotvoid I could see that. The graphics are certainly a big factor. For me I like the engines because it is easy to rapidly prototype ideas, then move forward if they are interesting.
the problem with python that i and many others have experienced is its speed. i too am a aspiring developer in python, and am looking for ways to make games in python. what is your solution to speed up the code execution? cython is one way but isnt that great as you have to use static ctypes to get a performance boost and jit doesnt seem to help a lot either.
Using pygame is not building games from the ground up ... you're using a (very highly abstracted) interpreted scripting language to move sprites around and toggle them. Pygame essentially is a tiny engine without many features. A real graphics library is something like DirectX or OpenGL. If you want to build your own engine, that's where you start, not with pygame lol. This just seems like you're trying to justify sticking to pygame and not learning about the amazing, feature-rich engines out there today that can outperform and outclassed pygame in virtually every way. Everything pygame can do is encapsulated within a tiny piece of Unity's 2D APIs and C# can either be intermediately (IL) or fully compiled into machine language. The guys who wrote pygame literally did all the low-level work for you, probably with OpenGL, and created the nice, high-level wrappers and APIs for your python scripts to trigger. Pygame is definitely cool, but it's not really viable for large commercial game projects and you're nowhere close to doing any sort of low-level programming or engine architecture lol. Write a good OpenGL or DirectX engine, then I'll pat you on the back and say "Well done, son!" ... if your video had been encouraging people to learn D3D or OGL and experiment with building small engines I would have fully agreed ... that's how I got my start in game dev, and I ended up falling in love with C# wrappers like SlimDx and SharpDx for almost 1:1 mappings of DirectX functionality in the C# environment. The things you can learn from that are invaluable, and a lot of companies will hire people with that sort of knowledge. But most of the game industry wants people proficient with Unity and Unreal.
Basically the same arguments apply to learning C++ instead of Python. And Vulkan instead of OpenGL, if you are prepared to write like 900 loc before a triangle appears on your screen. After the boilerplate it isn't that much worse, so it gets better.
@@DaFluffyPotato it depends on what kind of programming job you are looking for. In some places one language is completely irrelevant and the other one is dominant, goes in both ways. It's easier to pick up python after c++ than the other way around, I saw it directly. I studied physics, so the courses weren't really programming oriented, I guess this is the reason they introduced python first, because it's supposed to be easy. The second language was C. Whoever learned python first had their butts kicked by the C course, not to mention C++. (There were exceptions, bit generally speaking python didn't seem to prepare them for C styled programming. But anyone who knew C/C++ from before university aced the python course.
Thanks for your experience. That being said, I could summarize the video in: If you have a lot of time and want to build a lot of programming skills, dont use engines. If you just want to make videogames &&|| dont have much time, just use an engine. Turns out most people will choose last option for obv reasons
Is it weird that when I tried to learn python, I ended up dropping it in favor of the more verbose Java. Seriously, the lack of brackets, semicolons, etc scare me. I take comfort In Java and c#.
I would say most of the games would not even benefit from custom engine. But at the same time I would say it's quite effective way to learn how to structure your code better.
I started with gamemaker, While it was great at first I ended up stuck in it. It abstracted so much away from me that when I tried using anything else I just couldn't wrap my head around it, took me a long while to break free.
Well, with my 10-year GM programming myself, it really not abstracts many terms you would find in normal programming stuffs, especially when you are working with low-level stuffs, like 3D for example. GM packed quite a lot of low-level tools but easier to understand and get used to. I'd rather say Unity or Godot had changed too much of programming perspective in my opinion, because I don't have any problems working with other programming stuffs, but I stuck for very long when I working with Unity, which tie-in really hard with document-style layer engine, mathematical object-oriented operations, and ridiculously large libraries I had to learn.
Thanks for making this video. This motivated me to put down Unity and pickup MonoGame. Being closer to the code is much more important to me than having a bunch of functionality that I don't truly understand how it's working.
The video is cool, I agree that to * learn * making games with only a graphic library helps a lot, demystifies things and leaves the programmer with more capacity to develop what he wants. However, for professional and big games it is impossible to do everything from scratch, game engines were made for code reuse, they are frameworks that speed up the development and bring to the developers the latest in technology. I also made some games with a graphic library, in Java (2D) and also in C ++ with opengl (3D). However, I do not like the idea of using python, especially in games, it is as much as slow, especially if you are going to implement a lot instead of using ready-made things (his libraries are fast), apart from the extra abstraction that the language provides.
The video isn't about hating game engines, he's just saying if you're a beginner it's better to start with a rendering library which could give you the hints about what's really happening on the background of your game. And obviously if you have a GTA typpo game to build you surely should go for a game engine already built homie. Don't play with serious matters!
UA-cam is kinda dumb. I guess they’re gonna promote this until it gets a million views or something.
This video was very poorly worded and most people missed the point (even people who think they agreed with me). I've just put out a better video explaining my opinion on the matter:
ua-cam.com/video/TELHwCtvfFA/v-deo.html For those of you coming from CodeMonkey's reaction, his reaction has a cut up version of the second video that doesn't make much sense out of context. I recommend actually watching the video I linked.
Im not hating...but if you used pygame to make a 2d game thats literally lowest level programming possible. Thats arguably easier than a traditional 3d engine.
@@etopr4986 What do you mean by low level?
@@etopr4986 Do you mean high level? Btw I'm not writing this to be rude. But isn't a low level language like assembly or machine code? High level would be like all the known languages. Well from what I researched anyway.
@@TechOrionater I mean low level PyGame is literally just moving 2d sprites around its beyond simple. Its like really baby level "engine".
@@TechOrionater There are two different kinds of low and high level, in this case I dont mean close to hardware I mean not complicated
*This guy at 12:* Making games
*Me at 12:* Slowly closing the fridge to see the light turn off
This joke is so overused it's not even funny
@@herre3147 well 12 people actually think its funny
@@shashikanthp3145 Good for you, but that doesn't mean it isn't overused. On any video where someone does something impressive at a younger age you see this joke at least 3 times in the comments.
@@herre3147 It was funny and the first time I saw it mate
no but its true i was always fascinated at how the lights of the fridge turned off and clicked when you were about to close it
“The game time limit wont matter if I make the game.”
beeg brain
*CHONKY BRAIN*
i don't really call that as a big brain motive it is more likely that he's wise.
But It literally doesn't matter?
"Videogame time is over, Timmy"
"But moooom, I made this game"
"Cool beans, So?"
"Limit doesn't count"
"Are you playing a game?"
"...yes"
"Then as I said before, videogame time is over"
Just say you're play testing your game to find bugs, then it makes it sound like you're working on it rather than just playing it.
*P L A Y* testing
Exactly! That's why I chose Assembly.
LOL, one of the best comment here.
Bruh why not just reinvent the whole binary system and program with 0 and 1s
@@118andrey i dont like 1s, i think I'll go only 0s
Stopped the video at 2:00 for looking at "reinventing the wheel" comment but yours is better :D
I made gta 5 using binary
2 years later and we can say with 100% certainty that you made the right choice after the unity price change
Price is not d issue. It's learning & solving problems . Unity is for lazy people. It cannot run at every devices properly . Heavy resource taker .
@@zz-ly4qd it is heavy, that's true, but most computers can Run Unity just fine, while it does take a lot of memory. it's totally worth it, the software itself is amazing, but I don't think it's right to say unity is for "lazy people" since programming itself requires a lot of work, regardless of what domain or field of it you choose, wheather that be AI,gamedev,webdev, etc....
@@zz-ly4qdyou just disrespected everyone who uses unity even though you still have to put work into it like mabey I just want to make a game like how is it lazy to make a game your python ect: is making an engine and a game , so what ? how is it lazy to make a game
Unity fixed their price btw ( not trying to contradict your comment since it was a while ago though )
Your title should be, "Why I'm Glad I Didn't Use A Game Engine"
He gets more clicks by putting Unity in the title
Yh unity is better for views
Yeah exactly! But unity keyword can bring more views:) the reason I watched the video
Unity is the de facto game engine. Beginners to Pro's. Indies all the way up to more or less AAA. (not sure about AAA)
It is like the main one that the business model was to give the engine tools to costumers at a reasonable price. Or you go with Source or Quake and make a mod out of a other game on the market.
Totally acceptable title. Like he said this decision began YEARS ago. Better tittle. "Why I'm Glad I Didn't Use Unity or made mods for games"
And instead focused on data science instead of game making tools.
@@Kednems You would to. Its the way of youtube now. I do no agree with it but how it is. We should blame youtube algorithms or ourselfs.
Clickbait is annoying, it is like prices in shops, why be $1 when you can look cheaper and better with 99cents
Every proper craftsman needs to understand his tools. He doesn't need to recreate them for every project. So you have a point in not just accepting the magic of abstraction but not using a set of tools means you don't consider time a significant factor. A frame is both supportive and inflexible. Its usefulness depends on the situation.
All the people here are professional essay writers
"A frame is both supportive and inflexible" great quote!
@@EelcoHillenius That's a pretty good quote, but I would add "and open source is a welder"
@@LegendLength hes getting stronger
@@EelcoHilleniusThat's indeed a good point!
The best option is learning low level development for fun, and using that knowledge on ready made libraries for quick development. There's no point on developing a library that already exists and has been well tested by millions of devs.
I agree but hes also right that you learn a lot by developing your own stuff. Imma be sticking to unity tho.
And you’ll find it easier to get a job if you know the current frameworks.
@@snooksv3172 Compared to what exactly? Possessing deep knowledge of how those frameworks have to function under the hood? I'll take the person with real knowledge over surface level knowledge any day of the week. Any numbskull can memorize apis. A true professional asks why.
Then again, I suppose they didn't promote Einstein when he was working at the patent office. Apparently he didn't put enough of his effort into memorizing the surface level details of whatever machines they were using at the time. He was too busy, you know, completely reinventing our understanding of time and space.
There's plenty of reasons to developing a library similar to what already exists. Even the wheel needs to be reinvented all the time. Otherwise we'd use wooden wheels on everything, and that's just insanity.
It really depends on whether you want to do work by having deeper understanding and making things from ground up with those base understandings, or if you want to get good at executing recipes.
The first is more time consuming, but allows you extreme flexibility and potential for serious innovation / originality.
The second is extremely efficient, and allows you to get complicated stuff done fast, as long as you stay within the territory the recipes are made to handle (otherwise you will need to create hacks / systems on top of systems etc., essentially working around the approach you've chosen).
I would much rather do the first, assuming I'd get good pay and have the time needed for it - but the second is better for dishing out prototypes and new combinations of existing functionality.
Basically the first is truly creative: Creating something from nothing. The other is recomposition, creating something from what already is, but in novel ways.
Both are legitimate, but frankly I think the more follow the line of reasoning of the first, the better (or maybe we're just oversaturated with the second, I don't know). For me, I prefer the first, even though my current path is the second. I suppose the grass is always greener.
I'm out in the desert collecting sand for silicon. I'm starting from scratch.
Hahaha :D I hope you made your own buckets from scratch.
@@JamesTsividis Of course. This project started many years ago when my first stone age tools were made. My first game will be completed.... soon.
I'm so glad I didn't use Unity.
@@wartem have you created electricity yet?
What a dumb question. Uve already created a device, even though simple, capable of commenting on you tube. Hope you finish your game soon.
Ultimate DIY. I salute you.
this man was ahead of his time
How is that?
This topic is something I've been thinking about a lot lately. I've been working with Pygame for a while but recently started playing around with Godot. Starting with Pygame definitely allowed me to jump right into Godot and pick things up quickly, since I mostly understood how all the baked in features worked that I had to code myself previously. I think game engines are important if you're goal is to release a commercial game, as they drastically speed up the process, But building with Pygame has taught me a lot about Python itself and has absolutely made me a better coder (like you said).
Godot and Python have a similar coding system right? Not the same, but similar...
@@ZiRR0 GDscript (Godot's scripting language) is very pythonic.
C++ is faster and better for games development
It helps that Godot was built specifically to be user-friendly.
@@lmpstudio2321 “better” is a subjective term. It is more performant though
“Fine, I’ll do it myself”
This. I have a dozen games ideas burning inside me. I want people to play them before I die and it seems like the only way is just to do it myself.
@@cbalan777 lololol
@@cbalan777 why don't you tell me? Man, I've been thinking of what my first *unity* project should be
@@AyushGupta-wn6zd You mean tell you about the kinds of games I want to make? i have all sorts of ideas. Racing games, sports games, family games, adventure games, etc. I have more ideas than I know what to do with.
@@cbalan777 yeah, anything
I used to make games using scratch 2.0 because my parents rarely buys me any videogames, so I'd figured i can just make my own.
What did you use to make? They oftlenly costs some dollars and I'm broke af
@@kartoffel245 if you are talking about free game engine, you can use Godot(2d-3d), Unity(2d-3d)and Unreal Engine(3d)
Yeah I used to use scratch too. I stopped using it because of the garbage new 3.0 update
@@iagoaraujo617 thanks UwU
@@iagoaraujo617 Free?
Well, of course developing your own engine gives you more programming skills, but as a solo developer I prefer to actually make a game rather than programming the engine first, then the systems and game mechanics my game will actually have and then at least do the artwork. Seems rather useless developing your own game engine when there are plenty of them already on the market. Its whether you want to make a game or be background developer. Dont make game engines if you just wanna make games....
I wouldn't really say it's developing an engine, it's more like building a skeleton for your game. In my opinion, it's a lot more fun and fulfilling, and it'll also be more flexible for the game. It also gives more creative opportunities and I learn more than by using pre made engines, which I find a bit limiting and hard to push what you want them to do sometimes.
This is the problem everyone is missing. I myself would go with my own from scratch, I've been making graphics engine at my university for a long time and I surely can do impresive stuff, plus doing your own engine means much lower overhead and much higher degree of control. But then when I think about multi-platform (what if my PC game is successful and I need to port to Switch or even Android/iPhone?), the whole editor stuff for level development, animations are also a bitch to do from code, and the list goes on...
@@pifopifo1000 I am in the opinion that every game developer should (or at least try to) write their own 3D engine before using existing one like Unity or Unreal. It gives a lot of understanding how everything works on lower level and helps making more concious decision when working with big engines in the future.
@@Tasaq313 Luckily making games is just a hobby for me, since I have programming in school. But I will consider making my own game engine or at least trying in the future.
I think you're conflating unrelated ideas here. Developing a game without a game engine doesn't require you to develop an engine yourself. You can't develop an engine out of the blue. You'll build a game as a monolithic set of intertwined functionalities that can't work on their own. You will code only what you really need to code, and you won't build libraries unless they're actually gonna save you time and effort. No game engine originated before a game, or from the making of a single game; they were the coalescence of experience and in-house libraries that grew from repeated code and eventually into a framework and then into an engine.
I have a small framework of my own for roguelikes (built on lua/love2d), and its origins are exactly that. I never intended to make one. It just emerged naturally from a few years of writing the same stuff over and over.
And then, btw, developing a game without an engine probably still means you'll be using a framework that also comes with a lot of what you need already done for you, like pygame, love2d, raylib, etc.
This aged like fine wine!
TRUE BROTHER
Slight correction:
Raylib isn't just a graphics library. It's a slightly more extensive than stuff like Pygame because it's got a physics module.
*Please actually watch the video before commenting.* lol
People seem to miss the word “I’m” in the title. Going without an engine has benefited *me* in the long run. Obviously you usually can’t easily make the same 3D games without an engine, but 2D games are pretty close, which is fine for my use case since it revolves around learning and not just making games.
Also, I specifically reference Unity in the title because that's the engine I was considering using early on.
for me, it feels like that raylib is something between a graphics library and a game engine
@@darakushitatamashi8837 there really aren't strict definitions as far as I know. It can be argued that Pygame isn't a graphics library either because it can play sounds.
I don't like classifying MonoGame/Raylib, etc. as graphics libraries, when they clearly handle more. I'd classify them more as game libraries -- they don't handle higher-level stuff like libGDX so they're not really game frameworks, but they aren't as low-level as raw OpenGL/OpenAL.
@NeoFrags It does, but it's really more of a library.
How would you recommend to learn Raylib?
"if i made games myself the limit wouldnt apply"
sometimes my genius, it generates gravity
I couldn’t agree more with this video. I started learning unity and after using it for a few months I decided to take a different route. Since I already knew a tiny bit of c# I switched to MonoGame. Couldn’t be happier about that decision.
@Anton Karpov Yeah, it's not really a game framework, more of a game library so you still have to write your engine on top of that.
This is a very interesting take! As someone pursuing indie game dev who is more of an artist, I'm more interested in the end product and looks, rather than each bit of functionality, so I think I will be taking the game engine route.
Senior dev here. I absolutely agree with this point of view. I did write a simple renderer many ears back and because of it, I am much more able to grasp how the engines actually work, which helps with my understanding of optimizations and so on... Generally speaking, it's not a bad idea to write your own, stupid, barebone solution for almost anything before you'll use something that'll take care of it.
Tangential to this is also the fact, that you'll typically use the engine so that you won't have to deal with transformations (for example) only to find out later that you'll still need to understand them ... and this goes for almost everything else.
PS: I'm not advocating for people to write their own engines when they just want to just build a game, but it has its advantages. Maybe at least check the source code of Godot...
You can even check Unreal Engine 5 source code to take a peek on how cutting edge game engine are coded. Keep in mind that it is a source available software, unlike Godot which is a free software. But if your point is to study an engine, I think it is good enough.
@@bltzcstrnx Yeah, I work with UE. but Godot is simpler, less lines to read less separate code paths and so on... You need to understand how it works first - the simpler engine the better.
People few days ago: we shouldn`t start with Unity
DaFluffyPotato two years ago: "I did this before it became popular" :D
its all some level of abstraction. use whatever level of abstraction gives you the amount of flexibility you need. no need to reinvent the wheel
this is prob the best comment on this whole subject
I had the exact same story as a kid! I was only allowed 30 minutes of screen time, but making games didn't count. I used game maker, but I spent hours and hours every day making games. Now I'm a professional game dev, and I couldn't be more grateful for that 30 minute limit when I was a kid.
That's great that you found a way to get skills to find a job while making games! I also love Python! Another option if someone wanted to learn game engine and still get easily transferable skills is to make multiplayer games. The stuff you learn about networking is also very transferable! Great video!
Well said
stuff like this completely depends on the kind of project you are trying to do and what your goal is lol, for smaller projects / to gain experience this makes a lot of sense, but if you're trying to get big stuff done you will need something that not only you but others can work with aswell
Most people miss the point of the video.
Using a game engine is not cheating, although easier, but the point of designing your own game from the ground up is that you will learn a lot more from it if you'd like to make a career out of game development (primarily coding) then this may be a better route.
But for hobbyist game developers, Unity or UE are great ways to start out.
Nobody ever talks about LOVE2D in stuff like this, it's a great little framework
Edit: this is why you don't post a comment until you finish the video. Happy LOVE2D got some attention
Both Love2D and Lua are quite underrated...
@@hermes6910 Yes, but not for actual development.
I was looking to use Love2D, but I think the names of the libraries are quite juvenile, which turned me off of the framework quite quickly.
theres always gonna be platforms or libraries which are superior in some ways to the popular ones. But never underestimate the importance of community support.
If you have a technically amazing framework but it has not been widely adopted, you're usually better off picking the lesser framework which has a huge support community.
This way you're less likely to be that unfortunate first person to identify an obscure bug, and pretty much every problem already has a solution or workaround which someone else has figured out
Totally agree! I used pygame to learn python. I enjoy the challenge of coding games etc at a more fundamental level. It's very satisfying to build a project from the ground up and get it working!
Imma try this
Lets be honest you cant actually make a huge game in pygame, use unreal or unity
@@pitattataaboididid8682 99% of games aren’t ‘big’ games so most people probably don’t need to be too picky in that respect
This ironically is made as I'm relearning python. I hope it won't be too difficult going the opposite way I came. Also that game (I think it's called super potato brah) has got excellent game design and a lovely colour palette. I love your games cause the remind me of old school stuff (pixel dungeon, card wars etc).
i also agree on that ! working on a little game using CSFML while learning C made me more confident with the language in general, after manipulating tons of linked list for example
Interesting point of view. I tend to think that if you can program in whatever language, and by that I mean you know enough how to string logic together to solve whatever problem, then you can turn your knowledge to most things. You can easily move to new languages, and whilst there's some specifics to game dev, or graphics api's it's all much of a muchness. So it then comes down to time - if you are talking 2D on limited platforms, then probably more so than if you wanted to go 3D on lots more target platforms. I think you'd spend so long writing something just to get the very basics running that unless you were really into it, use a game engine. You don't have to be completely limited by them though, you can have the best of both worlds and include your own native libraries if there's something the engine won't do
You’re so inspiring man. I’ve started learning python + pygame in advance for my gcse work (starting course work next year) and put my ue4 projects on hold. So glad I found your channel (currently following your platformer tutorial)
PS: your games are astonishing!
True, it all comes down to goals. For instance, there was a small indie studio that had never made a game before that picked up game maker studio, made and released a game on steam in 27 days and sold like 1500 copies on it, which in turn helped fund their next game which has apx 67,500 sales (early access) with 95% positive on reviews, and they also owe the engine owners nothing since it was an $80 up front cost. But, here's the funny thing since everyone likes to bring up performance. They were able to get said game to run at 60 fps on a watch and smart fridge... so basically if you approach it the right way then there's absolutely no reason to 'need' to code your own engine. But, like you were saying, it really depends on if their goal is to make games, build up their resume, or just want the unique challenge of doing it (etc.).
I enjoyed your video and can respect your opinion about whether to go with learning libraries or learning game engines.
However, I've been using godot for around 3 years now and I've got to say it taught me so much I didn't know about programming. I think the limits are really into how in-depth you want to go with your learning, rather than the choice you make. I actually forced myself to learn vector math and shader development just because of my desire to be able to create a game that truly fits the vision I had of it. Since I'm working as a teacher, I noticed that nowadays people are willing to just search answers up on youtube about how to make what they want, and that's what makes them not able to make something truly original. That problem can even happen if you're learning to program from a library, since many people ask for help on stack overflow and just copy and paste code until it works in a frankensteinish way. I don't think I'd call that "learning" be it on a game engine or on pure coding from libraries.
I mean, I learned how to code with the RPG Maker 2000 and got my job with the skills acquired in that engine (Which doesn't even support code). "Using an Engine" and "engaging with programming languages and design patterns" isn't mutually exclusive, I think.
How did you get a job with those skills?
@@ryutoki i think he is an office boy or something
@@ryutoki Game design, art direction and a lot of similar skills can be learned on practically any engine. Some/most companies may want 'pure' programmers but people with mixed knowledge and assorted skills may come handy in many fields.
The only problem with Pygame is there are a lack of resources for learning it. For web development someone can learn html, css, and JavaScript through tutorials then make own projects and make for friends then be a web developer. I can’t find any guide which place to go to for pygame. Which parts to focus on. It leads wasting lots of time on things that are unknown you should work on or not
Web development is extremely unusual in how many resources there are for it. Also, I’m not specifically saying people should use Pygame. I was suggesting using *any* software to work from a lower level if you are considering working in CS.
Have you checked the book " Making Games with Python & Pygame" by Al Sweigart?
@@DaFluffyPotato The reason why there’s a lot of resources for web development is because it’s a very high demand skill.
As for game development, I want to get in the game development and make beginner games and then start making more advanced games. But I don’t know exactly where to start. I don’t know if I should go from Pygame to unity or start from an engine.
It seems like knowing a game engine is like using word press or wix to make a website but with html,css, and JavaScript someone can do more detail. Similar to game development.
But I’m trying to find a place to start to go from beginner, to intermediate , to advance in making games or from small to big games
@@sevil2467 I haven’t checked it. How far does it take you into it?
For pygame I essentially just grabbed the documentation on what everything was and then went free tying to make stuff from scratch
Normies: play games when allowed
Legends: make their own games if not allowed
This aged like fine wine
"30 minute limit on games"
That's brutal... not even me in my abusive dysfunctional violent household growing up had limitations to that extent. I had to ask permission for turning things on (which even at that time felt pretty humiliating already, kids are incredibly emotional aware, more than people think) but I never had a time restriction per se.
another thing that is a myth (the meaning of the word myth is "false belief" have in mind) is the notion that "kids won't play outside if you allow them to play games all day"
Not even ONCE that was the case with me. I would NEVER change a day outside in the sun, playing with my neighbors or riding a bike, for a day inside playing games, NEVER ever did that.
so yeah, come to terms with the fact that your parents treated you like crap and don't feel like you have to give back ANYTHING to them, ever... that is for fools, that is another mechanism to keep people mentally enslaved... always have that in mind... feels lonely at times but eventually feels alright and then freedom pays off... you don't owe any of these people anything
Thanks, this actually gave me a better understanding of where I should put my priorities. I want to go in computer science.
As a 36 year old, I started with Godot and super happy about it. Already published 2 apps in a year.
You can screw with a readily available tool (screw driver) instead of making one unless you enjoy the process of making tools. Apart from that, with readily available tools you are much faster.
Are you using GDScript? How is it in comparison to C# and other languages. People who criticize Godot generally make harsh comments on performance of GDScript. Is it really that bad?
@@03urukhai76 I have limited experience with C# (Unity). Never tried C# in Godot though. Performance-wise I heard C# is the winner, but GDScript is much easier, faster to write and more intuitive in my experience and it did a great job running my apps without humanly noticable lag in performance.
Wow.
i actually learned most of my programming skills thru game development but using a framework instead of an engine. Because going with low level frameworks makes you write a lot of boilerplate codes which improves not just your coding skills but also your problem solving skilld
Thumbnail: Why Im Glad I Didn't Use Unity
The Ad That Pop Up On My Screen: *Learn Unity*
I love your videos so much, you inspire me a lot for learning coding and python, I would love to become such a knowing man like you! This is the most underrated coding channel I've known
Something to consider:
1) Not all engines are equal. Free and Open Source game engines, a-la Godot, serve as a nice middle ground for those developers wanting to jump into gamedev without being intimidated by the large amount of concepts that a developer has to learn all at once to do very simple things in frameworks. Engines (open source) allow you to get started very easily, while allowing more advanced developers to dig deeper in the engine and roll their own implementations of various tools if they believe their way is better. It's a nice middle ground.
When I first began to write code, I used the LibGDX framework in Java, and the amount of time it took me to get something up and running was absurd. Not just because of the framework mind you, but because I was learning new programming concepts and paradigms all at the same time.
2) There are some folks who just want to make games, and have no desire to pursue programming as a career, which is fine. Engines are probably for you, though I will say upfront: you WILL be limited in what you can do by your lack of programming knowledge.
This isn’t universal advice.
I know it works for you, but for people who can’t/don’t want to code EVERYTHING from scratch, the engines are good.
You get more flexibility from coding everything sure, but for 3D itd be more trouble than it’s worth.
I feel like many young people will be like, “wow I will listen and not get an engine!” And INSTANTLY be disappointed. I mean, they’ll be disappointed if they don’t spend enough time learning an engine, but you have better luck when things like physics are already packaged so you don’t need the extensive math for every last little thing.
But glad it worked for you to switch.
To be honest, all over the video the UA-camr makes it clear this is for specific people, not everyone. In the video he even said a game engine is probably best for you if you want to put as little effort as possible or are interested in the game development industry.
I agree with you that this isn’t universal advice. But the thing is the UA-camr makes that clear.
After almost 6 years of using a game engine as a hobby, I've finally decided to write my own game 'engine' for experience sake. With just a graphics library and all. Probably vulkan
Im glad i chose love2d honestly
I previously used a game engine and to be able to control the rendering more freely was a chore often. That went for most processes. I really chose love2d for the freedom im given using it.
Same here
Great video, and I really agree with your rationale here. So many who want to get into game design end up just slapping-together premade and freely available Unity assets, the results are so void of any character. Although I'm further from completing my project due to my choice not to use a popular engine, there's a deep confidence involved with understanding how every element of the game's code works, from the ground up!
Like a true sadomasochist, I'm currently working on a full 3D game engine (with dev tools) based off of GMK Studio 1.4. It's quite a challenge, but I love it a lot. Glad to see others are doing similar things! (:
I learn use Unity 6 years ago I think was the best desicion because I have a job programming c# and kotlin ...
i feel like i would get absolutely demolished if i even think about making my own 3d game engine, even if i was aiming for a computer science career. i would probably give up on games and focus on coding jobs. there is a good argument with how the faults of a game engines can be a road block, but it also works the other way where, a game engine can help railroad your decisions at times when youre feeling indecisive. option paralysis can really plague any kind of creative workflow
Good advice. Keep up the great work!
Very intersesting opinions! Hope to see others video like this 😎
I used pure c++ and vulkan for implementing computer graphic concepts like light and skeleton animation. When we started implementing our games client on unity, I knew eveything and there was no need to learn stuff because I knew how stuff works inside engine.
good and helpful video. already subscribed with all notifications on. keep up the good work.
One of the things my game design tutor has been telling my class over and over is not to think of our skillsets in broader terms. Learning a game engine is good if you specifically want to get into game design, but learning to code instead can make you infinitely more hirable in much more diverse fields (and that goes for the artists in the class as well). He wants us to think of ourselves as digital designers rather than specifically game designers and to have that awareness of where the skills we pick up can be useful and not just limiting ourselves to a career in an industry we probably won't like. Very few people in my game design class actually want to work in the games industry any more, including myself, even if many of us still want to make games.
This is very interesting video I didn’t know I need. I also started at 12 yo and was first trying Scratch, Corona SDK and pygame. But one time I tried Unity, and I just sticked with it because it seemed so intuitive, I’m not using half of the built in components now, since throw time I learnt and gain a lot experience, and I could say although engines usually have much more stuff done rather than doing stuff with graphics library, it’s a better option to start, because you’ll make your own systems later. But your video made me thinking of actually trying not an engine, like Monogame since it uses C# as well. So thank you very much for telling your story!
I prefer to use scratch (or at least, scratch inspired) because it's easy to use, doesn't give you a game engine, but allows for much much more problem solving skills. I mean, scratch has so many limitations that some programmers can't stand, but I love scratch for the limitations. Over the years, scratchers have created amazing things, from online multiplayer to full 3d games, to pen font engines, and even a gameboy color emulator! (if you're wondering, pen is turtle graphics, and scratch is all 2d) The limitations is what makes scratch awesome.
why did I write this on a video that has nothing to do with scratch?
I'm in the "no engine" boat as well, although I'm mostly using Javascript. Plenty of options there as well: I like Phaser as a starting point because it has some systems built-in, but really starting from something like Pixi or Three is a great way to go. Hell, you can start making games using the built-in canvas API.
I feel like with JavaScript you are limited on the canvas tag? I’ve seen phaser and three.js which are surprisingly really good for JS but other than that, surely the canvas tag is only efficient for a simple snake game?
@@panasonicdiet3691 Yes, making games using Javascript does mean that you are limited to a web browser, or a web view of some sort inside an app. I'd say that the main limitations of it isn't the canvas tag itself, but the performance of Javascript engines. It is an interpreted language, after all.
The language that best supports making your own games entirely through code alone without an engine as of now is Java, which is currently the only language who's standard library grants access to OpenGL and the Apple Metal Graphics API (And is planning on Vulkan in the future I believe) without external libraries
@@theshermantanker7043 Yes, Java is an incredibly versatile platform., and you also get a large choice of libraries to use if you want to skip the boilerplate. It's also my favorite language to work with in general.
Now to be fair, if you are really into raw graphics programming you can also use WebGL inside the browser without any library.
I'd argue that using python / pygame for game dev is about as easy as Unreal with C++ or Unity with C#
Great video! One point I'll bring up as a counter argument is that building games from scratch can be pretty difficult for beginners. If someone's just dipping their toes into development, they may want to start with an engine to ease into the learning curve. That said, there is no wrong way to get started, I'm glad this method worked for you!
I agree with your approach 100%. Best of luck to you in your future endeavors!
AAA game dev here. skipping the engine is preferrable if you dont want to enter the AAA space as a game dev but as a solo or indie dev making your own is a waste of time. You'll feel greater personal ackomplishment but your customers dont care about how a game is made. 99% of the time a custom engine will look like shit next to an out of the box solution. Plus it wont provide any time saving shortcuts that solo devs really need.
At the end of the day it's all about the final product. If you can take time or cost saving shortcuts to get that product released, go for it.
Making a game without in engine isn’t even close to the same as making an engine. (Especially for 2D projects.)
I can whip up the basic systems necessary for many 2D games in a day.
What made you think of a mushroom shooting from its head? At 1:50
Yeah I always felt this way was the best too BUT more complex
This is a great topic and I definitely agree with your comment about transferable skills. I'm using monogame to develop my own engine and I find it so much more interesting to develop those systems rather than just getting games to work in someone else's engine.
I ended up struggling too much with low level libs and haven't produced any good game with them. This was too frustrating to feel like an idiot all the time and being stuck with no idea how to solve the problem I was facing. I finally decided to try engines and ended up using GameMaker for nearly every project came to my mind. Of course, I don't do very complex games but I feel much happier since I've been using that engine. I'm less frustrated, the problems I face seem more manageable and I at least end up producing some stuff. I often find myself wondering how it works under the hood but I still find this black box approach much more rewarding than trying, often alone, to make sense of everything that is very low level, highly technical and convoluted. So I guess the approach depends of the person and some will find abstractions are a good thing.
That is not to say you're wrong. I loved your arguments and reasoning. I just wanted to share my personal experience.
I think many of the commenters who disagree, indeed many people who say you can't make a game engine from scratch or that it's impractical often conflate making a widely distributed general purpose game engine with making a game engine so you can make a specific game.
If you already have an idea of a game you want to make, it's actually a very focusing kind of thought because it frames the design decisions you will make for your game engine.
If you know you want to make a 2D game, then your game engine only needs to handle 2D graphics. That's much smaller in scope than a game engine that needs to handle both 2D and 3D graphics, as many commercial game engines do.
The goal is not to build a general purpose tool for everyone. Rather, it's the exact opposite of that. You are building a tool for yourself, for your game, a tool that you intimately understand and can mold to your desires.
Does this change when you add more team members? Sure. Of course, a smart person who built their own game engine probably wouldn't hire average industry programmers to work on her team. She would hire people with strong computer science backgrounds who themselves have built game engines and understand how they work. These people do exist, and many of them are excited to not have to work with third party engines.
I built a 2D game engine from scratch in roughly one year of my spare time. I started in January of 2019, and by January of 2020, I had a 2D game engine that runs at 60 FPS drawing a game character on the screen, basically like a 2D platformer.
During that year, I worked a full-time software job, ate well, and I always got two hours of exercise every day. My spouse also didn't leave me, and I was going snowboarding a bunch during the winter and still doing tricks off of jumps. I had to make very few lifestyle changes to accomplish this goal.
It doesn't take nearly as much time as you think it does, and if you apply yourself, you will have something useful at the end of it. Most importantly, you will have learned so much more in the process.
Just focus on making the game you want to make, and think of the "engine" as all of the stuff you have to do to make that work.
After learning a programming, you can safely learn engines, because in many cases it is faster and easier to make a game on the engine.
If you work in a team with someone or want to implement an unusual and complex game (like No Mans Sky, Minecraft, etc.),
here you can already think in the direction of SDL 2.0, for example.
I can't tell if my comment was lost or not, or if I accidentally cancelled it, so I'm making it again.
This video would clearly be a lot more impressive if the game in the background was 3D rather than a 2D pixel art game.
"No interest in 3D" seems strange for anyone interested in making games, especially considering 3D has been the standard for over 20 years, and it has only gotten easier and easier to do. Beyond that, 3D even makes many aspects of game development easier, including animation.
Engines like Unreal are STANDARD now in game development. And not just low-budget indie titles like Final Fantasy 7 Remake or Borderlands 3, games I'm sure nobody here has ever heard of, but both were made in Unreal Engine.
The main point of the video seems to be that people should just learn to be good programmers so they can get good programming jobs outside of game development. But programming in either industry can be soul-crushing for many. There are plenty of people who would rather have a different day-job and work on their own games on the side. Game engines certainly help them do that.
The general tone doesn't seem to be that of a person that actually enjoys game design. It seems more like a person that just enjoys programming. There could be people with less skill in programming, but more interest in game design, art, modeling, etc., that would be able to make games that dwarf that of someone who merely thinks of games from the programming side.
Of course a person should have programming knowledge to make games. But a key aspect of programming is to not fall in love with programming for the sake of it, but to use it as a tool. I had a good friend that often said a good programmer is a lazy one. They don't re-do work that has already been done well.
In fact, issues in games like the Witcher and Cyberpunk can be traced to the developers not understanding contemporary engines and tools WELL ENOUGH, and instead re-inventing the wheel poorly. Cyberpunk 2077 was created in a proprietary engine, and we can see the results of that in wonderful glitch compilations. It doesn't even perform well, though they made it from scratch.
As an independent game dev myself, my only wish would have been that I started learning Unity and Blender earlier, and gotten into 3D earlier, rather than resigning myself to only making 2D pixel-art games. 3D is a wonderful horizon, and game engines are there to let you get on with your vision.
I'd like to give a shoutout to MonoGame, my framework of choice! Thanks to all who've helped to build and maintain it!
If your aim is to be a coder AND isn't to make anything beyond SMALL 2D projects (probably even being just a hobby) and THEN get "regular software" jobs, then yes, you're absolutely correct, at the university I made my first games with C++ from scratch and that helped me a lot in my learning process.
In any other scenario of game development, this is a horrible, horrible advice, for starters, you have to be a one man army (or have a small army made entirely of programmers that have roughly your same skillset), anyone that isn't a coder (sound engineers, artists, game designers) won't be able to get anywhere near your project (maybe if you make an editor just for that specific project which would multiply the project's completion time, and if you continue down that path, you're just making another game engine).
This is the same as people saying that it's better to use low-level languages and avoid frameworks and libraries as much as possible, sure, you'll learn more (and that should be your starting point IF you want to be a coder) and it will certainly have better performance, but at some point you'll have to be practical, been there, done that and learned the hard way that reinventing the wheel is only useful when you just want to learn and experiment, but when you have to work in bigger projects with other people? it's usually not worth it.
This reminds me of a video I made on my channel called "Why I like the BASIC programming language." I said some similar things.
Thank you so much. I was wondering what I should start coding with and I've decided.
Imagine not having every project hit a dead end because their engine screwed them over. Can't relate.
Unity entered the chat
3:43 - Yeah, but now you've gotta learn to make an engine, which is NOT a trivial task without some sort of footing in game dev.
You don't have to make a game engine . . . you can make a game using only code
This guy tells me to make a whole a$$ Game Engine while I still stuck at Hello World.
Lul u havve such a loooooooooong Way to go Dude :D
Good luck BRO
Just use Unity, especially if you're interested in actually being paid for your work. It's no less of a programmer's paradise than PYGAME of all things lmao. I've been a "real" programmer for more than 25 years, and yes in pygame for a while, and I use Unity. It's amazing.
@@antivert are game engine developers no longer needed :'(
Would you consider doing a video discussing your perspective on the argument "Python isn't for game development, because it's not efficient enough". I'd really like to hear your experienced perspective on the matter, I'm sure others would too.
I said that I was making a video along those lines at the end of this one
@@DaFluffyPotato Forgive me, I'm not an idiot at all. I'll just blame some kinda of auditory scotoma lol Looking forward to it
So many people in the comments are missing the point he was trying to make 🤦♂️
This was a really informative and helpful video for me, thank you for the upload!
And for 3D there's Panda3D programmable with Python
And Ursina, which is based on Panda3D, iirc.
And Lua has Love2D with the Love3D extension.
I used to develop 3d games without any engine, just C++ and DirectX 9 and some multiplayer library (I didn't do that from scratch). I think this helped me alot but now I do use a game engine (Unity) just because it takes too much time without one. When I was 13 years old, this didn't matter much but now....
Honestly unity is a good game angine as it’s very strong and gives you lots of options.
unity can be used for vrchat to export your avatar if you made one and can be imported to vrchat unity can be used for animations same as blender
For 2D, sure, have fun with that... Solo developer in 3D would have a hard time without an engine. By the time you reinvent the wheel you will already be burnt out. No thanks. Maybe there are some individuals out there who are very skilled and have a high tolerance for that kind of thing. Not me, I'd rather get started on the actual game right off the bat and save months of time and money.
Still pays off to some degree, fiddling around with lower level graphics APIs. I had a lot of fun with that stuff in college.
Not really. I've made 3D games without an engine, and it's not as difficult as it seems. The difficulty varies widely depending on what graphics features you want. If you are going for realism and need fully featured PBR and GI solutions for your artstyle to work, then an engine will probably save a lot of development time (though it will still take a huge amount of development effort to make the art assets and scene the levels/world in that style). But if you're going for something simpler, like a more classic forward-rendered clean art style, or something very heavily stylized, it's often easier to make it yourself than try to shoehorn it into an engine designed for realism. At least that's been my experience.
@@notnullnotvoid I could see that. The graphics are certainly a big factor. For me I like the engines because it is easy to rapidly prototype ideas, then move forward if they are interesting.
the problem with python that i and many others have experienced is its speed. i too am a aspiring developer in python, and am looking for ways to make games in python. what is your solution to speed up the code execution?
cython is one way but isnt that great as you have to use static ctypes to get a performance boost and jit doesnt seem to help a lot either.
First of all, this video isn’t about Python. And second, I just write well optimized code when necessary.
@@DaFluffyPotato yeah, i know this video isnt about python, i just had a question in general. thanks for the reply!
Using pygame is not building games from the ground up ... you're using a (very highly abstracted) interpreted scripting language to move sprites around and toggle them. Pygame essentially is a tiny engine without many features. A real graphics library is something like DirectX or OpenGL. If you want to build your own engine, that's where you start, not with pygame lol. This just seems like you're trying to justify sticking to pygame and not learning about the amazing, feature-rich engines out there today that can outperform and outclassed pygame in virtually every way. Everything pygame can do is encapsulated within a tiny piece of Unity's 2D APIs and C# can either be intermediately (IL) or fully compiled into machine language. The guys who wrote pygame literally did all the low-level work for you, probably with OpenGL, and created the nice, high-level wrappers and APIs for your python scripts to trigger. Pygame is definitely cool, but it's not really viable for large commercial game projects and you're nowhere close to doing any sort of low-level programming or engine architecture lol. Write a good OpenGL or DirectX engine, then I'll pat you on the back and say "Well done, son!" ... if your video had been encouraging people to learn D3D or OGL and experiment with building small engines I would have fully agreed ... that's how I got my start in game dev, and I ended up falling in love with C# wrappers like SlimDx and SharpDx for almost 1:1 mappings of DirectX functionality in the C# environment. The things you can learn from that are invaluable, and a lot of companies will hire people with that sort of knowledge. But most of the game industry wants people proficient with Unity and Unreal.
It's a framework, not an engine.
Basically the same arguments apply to learning C++ instead of Python. And Vulkan instead of OpenGL, if you are prepared to write like 900 loc before a triangle appears on your screen. After the boilerplate it isn't that much worse, so it gets better.
Except it’s easier to get a job with Python than C++. The language used wasn’t even related to the point I was making though.
@@DaFluffyPotato it depends on what kind of programming job you are looking for. In some places one language is completely irrelevant and the other one is dominant, goes in both ways.
It's easier to pick up python after c++ than the other way around, I saw it directly. I studied physics, so the courses weren't really programming oriented, I guess this is the reason they introduced python first, because it's supposed to be easy. The second language was C. Whoever learned python first had their butts kicked by the C course, not to mention C++. (There were exceptions, bit generally speaking python didn't seem to prepare them for C styled programming. But anyone who knew C/C++ from before university aced the python course.
Thanks for your experience. That being said, I could summarize the video in:
If you have a lot of time and want to build a lot of programming skills, dont use engines.
If you just want to make videogames &&|| dont have much time, just use an engine. Turns out most people will choose last option for obv reasons
You’re very talented man. I’m showing my son all of your videos 👏🏾
Is it weird that when I tried to learn python, I ended up dropping it in favor of the more verbose Java. Seriously, the lack of brackets, semicolons, etc scare me. I take comfort In Java and c#.
Ikr !!
@@fodk7021 glad I'm not the only one xD
I would say most of the games would not even benefit from custom engine. But at the same time I would say it's quite effective way to learn how to structure your code better.
Fun fact: Rockstar created its own engine and they developed all games with their own engine. Even GTA 5 :)
tl;dr, reinventing the wheel gives you a deeper knowledge, rather than just knowing how to use the tools already made for you
I started with gamemaker, While it was great at first I ended up stuck in it. It abstracted so much away from me that when I tried using anything else I just couldn't wrap my head around it, took me a long while to break free.
Well, with my 10-year GM programming myself, it really not abstracts many terms you would find in normal programming stuffs, especially when you are working with low-level stuffs, like 3D for example. GM packed quite a lot of low-level tools but easier to understand and get used to. I'd rather say Unity or Godot had changed too much of programming perspective in my opinion, because I don't have any problems working with other programming stuffs, but I stuck for very long when I working with Unity, which tie-in really hard with document-style layer engine, mathematical object-oriented operations, and ridiculously large libraries I had to learn.
Thanks for making this video. This motivated me to put down Unity and pickup MonoGame. Being closer to the code is much more important to me than having a bunch of functionality that I don't truly understand how it's working.
Here is my point: I think you are right , but ive been making games with unity for 6 years and i like it
The video is cool, I agree that to * learn * making games with only a graphic library helps a lot, demystifies things and leaves the programmer with more capacity to develop what he wants. However, for professional and big games it is impossible to do everything from scratch, game engines were made for code reuse, they are frameworks that speed up the development and bring to the developers the latest in technology. I also made some games with a graphic library, in Java (2D) and also in C ++ with opengl (3D). However, I do not like the idea of using python, especially in games, it is as much as slow, especially if you are going to implement a lot instead of using ready-made things (his libraries are fast), apart from the extra abstraction that the language provides.
The video isn't about hating game engines, he's just saying if you're a beginner it's better to start with a rendering library which could give you the hints about what's really happening on the background of your game. And obviously if you have a GTA typpo game to build you surely should go for a game engine already built homie. Don't play with serious matters!
This was a great answer. It really forces people to take sides and gives them a good answer about what options they have.