my friend in class told me that he wants to learn in rust , by the time he told me that i was interested in C. Few months later he didnt even download the rustc compiler and i started building my engine. He asked me what am i doing after school , i told him that im working on my engine, he laughed and told me that i am not going to make next version of Unreal Engine (which lets be honest their way of doing some things is just bleh), i told him that my goal isnt to make game and publish it (even tho i would love to go away from the "dev projects" to a real shipped stuff), my goal was to just learn and do the code right, do the build system like "pack and go" type of style ( i dont download prebuilt libs, i have the source code of the libraries built along the project + i self host git with gitea in docker cuz aint no way i want my project to be in control of microsoft with github.). Then i asked him what is he going to do.... "I will go home and play dota and sleep". But i am the stupid for trying to create something i guess.
most chad person here, it is insane that you learned all of this things in only a few months and that you have such cool mentality like learning and also the libs stuff💪💪 good luck with your engine and don't worry about others, you can tell them I personally told you that you are cooler than them 😎
Te be honest, I'm thorn between C and Rust, because I love C for it's simplicity, but also find the lack of proper package management, features like pattern matching, and borrow checking kind of discouraging. I mean, I love C until I have to build somethong bigger in it.
Telling somebody that they limit their learning potential by not using an engine is wild. This is probably obvious but by increasing the depth of your knowledge you gain a proper understanding of why and how something works and you will be able to debug more easily. Yes, you will be less productive, but in my opinion the knowledge gained is more than worth it.
Honestly, for a simple game.... you will be less productive trying to learn an engine to make it. Learning a simple framework will let you make the game quicker. In higher quality. And let you learn more on top of all that.
Game engines are made in c++. From my point of view, having 'no engine' just gives you the space to make everything you want because there is nothing limiting you.
Writing an engine helps you even if you end up using a commercial engine later. I wrote several toy engines in the past. Now I am using Godot, not by choice, but because my team wanted to. All my experience writing my own engines in the past helped me see what Godot was trying to do, I was productive in Godot in like an hour, meanwhile everyone else was struggling lol.
@@TankLCDx They probably have then a professional engineer dedicated a full time job for exploring and bug fixing the engine. In that case, I can imagine how it is used for serious business.
AAA Game engine dev here. In all seriousness, if you want a job in the games industry - you need C++ and you need to have a pretty decent idea of how to write game engine code. Make a portfolio of projects, games, renderers, audio engines etc. Whatever it is - but make just make it. Do use engines - you need to understand the problems they solve. But custom engines are still a (big) thing in the games industry - and even if a studio isn't using a custom engine, I've seen studios rewrite Unity's renderer, and I know most UE studios will eventually have to add features / plugins or fix engine bugs in UE. If anyone tells you not to use C++ - ignore them.
It seems like the entire industry is consolidating onto UE5. This is somewhat disappointing as it seems that using inhouse engines encouraged more out of the box thinking.
Unless all your time is already spent on your responsibilities and necessities to survive, there is always time you can make for it. Now, whether you want to repurpose that time is a different matter, but then the issue isn't a lack of time, but whether you actually care enough about making games to use your time for it.
That's my main problem too. Right now, I am trying to build my Medium account and a gaming UA-cam channel for the future as a side income just in order for me to be able to quit overtime in the long term. And after that I will continue with my other plans and continue to build another UA-cam account. And slowly build my freedom and my exit to do the "Quit quitting".
I used to believe this, too. I finally solved it by not being hard on myself based on the "amount" I get done every day. Even if I don't get something done every day, I make it a point to at least look at what I've done, and try to do at least one thing no matter how big or small. I find that if I sit down to do at least do one thing, more often than not I end up doing more. And if I don't that's fine, too. As long as you learn something every day you gradually become better than you were. You progress even if your project doesn't.
Right I feel like you spend MORE time just learning how to use a tool. To make something than you do actualy just making the thing your wanting to create.
Building a game without an engine (a framework is ok) teach us the fundamentals of how games works behind the scenes, letting us solve problems faster and in more efficient ways. I have seen the source of a few small games made using a engine and they are often a huge mess, exactly because the devs didn't really knew what they were doing, resulting in a software full of bugs, poor performing, and hard to mantain.
Here's the problem I am facing. I like C++, AND I want to make games for a living one day. I don't like game engines like unity, godot or unreal (I've given each a fair shot), but I worry I may spend too much time reinventing the wheel (also, I don't like raylib either lol).
Try looking up handmade hero. He shows how to do stuff, from the ground up without using any libraries at all. It might help you reinvent the wheel quicker. As for your worries spending too much time reinventing the wheel: As long as you are not reinventing algorithms for well established problems, you aren't spending too much time. You are investing time going slowly at first to go quick later. And on the case you are reinventing algorithms... that will be valuable experience for once you encounter a problem the common solution don't work for, because some nuanced condition makes them not viable. Basically, spend the time you spend worrying about it by doing more work on/thinking on how to advance your project(s) instead. Because that time... is definitely being wasted.
@@cweasegaming2692 I think they were hoping for an explanation of why you don't like it rather than you simply repeating what you already said. If you were to explain why you don't like it, you might just give someone else an important insight into something that they hadn't considered before.
Finally, someone who tells it how it is. I am so tired of seeing C++ gamedev youtubers boast about how difficult it is. That mindset is so harmful to beginners, because it increases the intimidation factor 10 fold. Love your videos man!
I am 60k loc of C++ into my own game engine I wrote in raw vulkan. That includes my own matrix algebra lib and a functional windowed UI. Doing it is like accelerating freight train - at first it is hard and progress is slow, but as features and systems get added, it starts to take shape pretty quickly. After a year from writing 'main' I now have a complete content editor and now am implementing actual game systems.
Super valuable advice. Good managers would hire someone who has built a game using an engine, but great managers hire people who have built their own game engine (even if more simple) from scratch. It just means you understand what goes into the game engine, rather than just being able to use one. Then when you run into problems just using one, you understand the background processes and could likely debug way faster.
The good thing of knowing how things work under the hood is that when you use high level langs/frameworks you really understand what you are doing, you are a much better programmer. People who do not know the math involved here and/or the low level implementation details have no a clue what they are doing.
Currently learning OpenGL (GLFW) in VSCode, finally able to render TrueType text using a texture atlas to display an FPS counter, moving an object with the keyboard and making input independent of frame rate, V-sync, and screen recording with FFmpeg. Just this seemingly basic stuff took so long to implement, the learning was a massive uphill battle, getting all the dependencies, header files and static library files linked was a nightmare, and the debugging was painful, but in the end it feels much more useful and I feel I’ve learnt way more than had I used an engine.
This is a reassuring video. I decided to focus my learning efforts in C programming because I'm interested in low level programming but was worried about if I should be spending my learning time on other things, but I'm sure now that I want to focus on C and then eventually move on to C++
Learning for fun is usually different from learning to obtain a marketable skill. For example, I learn game programming for fun, and I earn my living with enterprise databases. It is important not to confuse what the market demands with what you find amusing to learn.
@@clray123 Yeah youre right. The main reason I was worried is that, as how I have just begun my course, im still far away from a job, so its not like I have any stable income or anything yet. But going to continue down this path for fun while doing my best on my degree
Good video :D Maybe I will try create game in C++, but right now want to finish my first game in UE ;) Maybe I will back to this video and channel in February when my first game will be finished :)
I kind of want to make my own game engine using c++ and opengl, i just think it would be a massive flex and really cool to make your own way of doing things.
Instead of jumping in head first, you should first learn making a game using a regular graphics Library like raylib. Once you understand how it works you can make your own using opengl
yes that is true, but you should also make a game from scratch with it or make a game from scratch first as the other comment here says, because you will make a better engine like so
I've spent the morning learning raylib, I'm making snake with it and I'm already making notes on how my engine will do rendering, once I've finished my game in raylib, I will try to make a basic engine that can make simple games like snake and pong.@@lowlevelgamedev9330
I think the stigma against making your own engine is dying off now that people really saw the danger of being a slave to a commercial engine's license terms. And C++ is now easier to use than ever, and there's a ton a very useful open source libraries for every game system that can get you running in a day with a good amount of those having friendly licenses (not all for sure). Also having access to the full source is so useful, I've worked Unity jobs for many years and it always came to trying to hack around the black box trying to get it to do something custom.
As someone who does use game engines, hearing that "not using a engine limits your learning potential" blew me away because even I know that making things from scratch makes you learn a lot. I stick to engines typically because I want to focus on game making and not re-invent the wheel but I've entertained (and tried) doing graphics rendering in different languages. I didn't succeed but I did learn a lot from it.
Thank you for the reminder. I really enjoy Unity and Unreal, but some things are overcomplicated. Before making games I worked professionally in C++ and this is a great reminder that a certain 2D project I'd ike to do but dread doing in an engine would be FAR simpler to build with C++ and SDL.
I agree with the idea at 3:20, but measuring a projects worth in lines of code isn't always indicative of it's learning value. For example, I'm working on a simple interpreter in Go which isn't even 500 lines yet, but I've still learned heaps and have a functioning project.
I use zig for my, still very early in development engine but I 100% have to agree, the skills you learn will help you learn a lot more than just running Unity or Godot since you also learn how each engine feature works under the hood, it helps that engine dev is also pretty fun
I was literally trying to figure out how to make my first c++ project with glfw when i got hte notification for this, i was fighting for my life in visiual studio when i get this smug notification telling me it wasent hard. I started crying immediately of course. Genuine question though, do you still use libraries like GLFW or GLUT in your larger projects or do you swap it out for something else?
Generally GLFW and GLUT are pretty good for any level of low-level game development. Sure, you may have those guys telling you "use VULKAN it's more performant" but honestly? If you get a good system in place, OpenGL can get you anywhere. Plus, it looks really damn good on any programming portfolio.
The lack of clarity of some of these concepts online and YT is actually a slight blessing. It makes things harder but it also means less competition. The more "complicated" something is, the less the common, time wasters who want a good paying job rather than enjoying the field invade our market and saturate it. Spoon feeding and excessive abstractions have invited shortcut developers into our field. This is something low level game dev here doesnt do thankfully otherwise he could only be making Unreal Engine 5 videos and pulling many views for virtually nothing. If you're struggling just take time to find out what each function or concept does in the documentation. Maybe test it independantly in a small practice project rather than trying to use it in your main one.
@@Solar_Messenger So true, ive been using blender for a long time and going from every tutorial being 90% nothing and 10% stuff i allready knew to, actual useful information? crazy
can hard relate to the nightmare that was setting up my first glfw project haha, this channel has some cmake setup videos that are helpful and you can also find github repos that come with glfw and glew/glad already setup which saves a lot of time
yess I use glfw, glut isn't really used anymore. I have a video called something like I linked all the libraries for you, you might want to check that out ;)
A dev that sticks to only learn how to use tools like Unity or React, will almost always get stuck when facing a problem that requires going outside the comfort zone of their chosen tools. Performance optimizations, silent failures in the build system that introduces failures, bugs that require knowledge of internal work to understand why they happen and how to fix them, and so on. It is good to always invest in knowledge we can transfer across our tooling
"it will be replaced by rust" People who are in the industry less that 10 yrs think that this is first Cpp killer. In next 10 yrs we barely will remember Rust.
It's not about if it or if it isn't a cpp killer. Even if it is, there's so much C++ code out there that it will take a very very very long time to replace it (if ever). It hardly makes economic sense to re-write projects in another language if they already work with current language. Also new projects might stop using C++ altogether (unlikely) but old projects will not vanish into thin air either.
both c++ and rust have weakness points and strength points, there are always use cases where c++ will be better and the other time rust might be better. rust is just fresh and it doesnt make sense to guess if it's going to be better than a language born a lot earlier
I feel like the reason why people think you're wrong for not using something like unity or godot, is because they're thinking of it in the context of just "making a game" and not learning how rendering works and not learning the many great techniques and skills you learn from doing it at a lower level and implementing your own optimisations and stuff
My intersect is also same as u. My plan for right now is to make 2d games using c++(custom engine). Iam very very sure that with enough experience we can easily able to match the commercial engines in 2d. As far as 3d is concern, i have no idea apart from the basics. But i really to go into 3d games. I guess that in future i will be able to go into 3d also.
@@lowlevelgamedev9330 That's what a C++ dev would say! lol PS: I had taken ~2 weeks break from C++ and I coded in another language entirely. When I came back, C++ syntax horrors hit me like a brick wall.
@@lowlevelgamedev9330 You probably have this perspective because of years of coding in C++. Imagine the people who just discovered for loops in python and try to learn what a class is in C++ lol.
I've made all my games from scratch and everything has worked out for me! Knowing how game engines work is invaluable and it isn't something you can learn through just slapping together pieces in Unity or Unreal. +1 to all solo engine makers!
good vlog. interested on how do you handle UI? it's hard to do ui without drag and drop tools. also how do you handle porting to many different platforms? such as android, web, ios. If we wanted to target web, wasm is gonna take insane amount of compile time. The game mechanic itself is the easiest one in c++
ui is ineed hard, I have my own ui library, for menu stuff it is a declarative style where you just say you want buttons amd they appear all responsive and stuff, the other option I have is to specify wjat percentage to use. And yes I can port to other platforms because all the things I use are cross platforms but I never tried anything else except linux
I work fulltime as a webdev and I'm trying to be a fulltime indie dev, so its take a lot of my free time, unfortunately I have to use an engine to maximize my productivity and realease small games while I cant afford a bigger game, but I do mess around with a little cmake and c++ whenever I get more time, untimely I want to be onwer of inhouse products and making my engine is the way
it is very hard to succeed in gamedev I'll tell you that but good luck bro 💪 also you should probably also do yt or something so people can see your games
If you like programming and want to learn a lot of stuff, while also trying to make a game, working on your own engine is a great thing to do. If you wanna **just** make games, I wouldn't recommend it though. Remember, the user doesn't cares about how you make the game, but rather what you make.
A wise developer once said: "Every game engine is sh*t". Whether you use Unreal, Unity or others, each of these engines have their own quirks. While making your own is fun and all if you really want to open up a business in the gaming space, you better use an existing engine. This way you get easier access to developer and artists to build the game your company wants to build. The current trend is moving away from custom game engines, especially in larger teams.
I would add though - that doesn’t mean the need for game engine specialists is reducing. Because of these quirks you mentioned, you often still need to fix, replace or optimize features in those engines - and you need a solid understanding of engine architecture to do that. Also - while the industry is “moving away” from custom engines… there are companies today writing engines that will be in use for the next ten years or so.
For me there is only one excuse why I still use Unity. Sometimes you want to protipe some abscure shit, like, for example, minecraft terraian generation but using cellural automatos and while you still have motivation to write this stuff it's better to spend your time on realising algorithm nether the setuping 3D scene using openGL. Also it's where cool to have posobility to inspect your game from other angles and tweak varibles in run time from editor. But, let's be honest, you need that stuff to balance and make your game fun, not to write it right
Love the vid i have horrid flashbacks of C++ mem errors, but this made me want to jump back in. Just for clarification you are telling folks no engine, just use my lib instead? I would be interested to know what libs you use, you mentioned opengl ( which was the case 20 years ago still the same?) what are you using for physics? Would love to take a look at your git if its publicly available. Keep up the good work!
glad to have tou back on my team 💪, I have my own libraries and stuff and I hage videos about them but my point is not for people to use them, but ratjer use any library or make their own 💪
People will forever want to bring other people down to their level. As you pointed out, being able to understand the things that go into making something like Unreal Engine makes a person more valuable than just using Unreal Engine. We've already reached a point where things are so bloated it takes a PC space heater running on 800W of power to do what should be possible in 200W or less because everyone's just trying to make generic tools for people who have no technical background.
Making a 2D terraria-like game is by no means easy. The AABB collision requires a lot of tuning. It's not the usual "if maxX > minX and ... etc.", you have to take into account the last position, and then you have to take into account jumping near a wall, if you jump diagonally and you hit the edge of a wall, you must disable last position temporarily so that you avoid getting stuck, etc. There's a lot of tuning that goes into a 2D game. Calculating the radius to engage/disengage enemies, creating dynamic spells, etc. is easy conceptually or it might seem easy conceptually but in practice it requires a lot of thought and effort. I speak from experience.
@@lowlevelgamedev9330 That's true, low level programming as opposed to using an engine is more straight forward as it forces you to be aware of all details and build everything from the ground up. With an engine however things can get harder as you have to glue your code to the engine's functionality/editor and that takes a long time to learn. Nice vid.
I agree that making a game engine is not a requirement to make a game, neither it will be better because of it, but as you've said, someone has to learn how to make a game engine in order to improve existing engines or creating new ones, and making a game from scratch is a good way to learn the basics, and there are dozens of libraries if you want to skip parts like the physics or networking.
This is why i like using pygame i definitely learned more when i was using that instead of godot but man i just really needed a good way way to get into multiplayer development and godot's got a really decent multiplayer integration with steam
Not sure about that. The thing is, MS is rewriting a lot of core systems in Rust. If they ever get around to rewriting DirectX it will likely be in Rust, which will be a push in that direction. Otherwise, I don't see Zig and Odin getting much traction in game dev outside hobbyists because of the closed nature of most platforms. Odin is pretty cool though.
@@zoeherriot Do research on Rust build times. There is NO WAY that Rust is replacing C++. Just not happening. I wanted to love Rust, but upon deeper dive it just isn't the language. I agree with you, Odin is super cool.
@ I work with rust. Rust is already being used in AAA gaming in tool chains, we are aware of build times. You should try doing an UE build if a large project sometime. One hour of code, 8 hours of cook time… really gets up there. ;)
@@dragonalong6860 I don't need to do research on Rust build times, I've experienced them myself. The extra time spent building (which is *not that long*, by the way) is more than worth the runtime errors that are avoided by ensuring safety at compile time.
@@ultrasquid579 People more experienced than me will say that the safety features are easily avoidable once you do it long enough or design your code effectively. I've seen people compile Rust projects for relatively simple projects, and they took a long time. There's also no way to EVER optimize the front end of the compiler (even if you do optimize the back end of the compiler), so you're stuck with slow build times. Jonathan Blow (whom I despise politically), Ginger Bill, and Ryan Fleury have all talked about Rust not being ideal for game dev.
What's your opinion on frameworks? I'm a coder first and foremost and I gravitate more towards frameworks. I've used XNA, libgdx, and love2D, and I've learned to code in C#, Java, Kotlin and Lua as a result. I think it's a good middle of the road approach: I don't have to do everything from scratch, but it also doesn't hold my hand.
yess I agree with that, I made my own framework but it is the same thing as using a different one. Usually there os no need to do everything from scratch
to me it seems like a lot of the time, it's easier to make your games from scratch instead of using a game engine because you have more control over problems with the game
I started programming in rust before C++ but rust has like 10x the friction. I fell for the meme 💀. I love reinventing the wheel!!! And no one can stop me
I'd say that it really matters what your goal is, if you want to make a game engine in C++, you're better off not doing it if it's not for the right reasons. I think there is a clip from Pirate Software on the same topic.
"Quality in a service or product is not what you put into it. It's what the customer gets out of it." - Peter Drucker I have far more respect for someone who has actually released something on Steam than for someone who spends their time creating low-level tech demos and claims superiority because of it.
Learning how to write the game from scratch is definitely the way to go if you care about the programming aspect of game dev more than the design aspect. But C++ isn't really the best way to do it, imo. During the little time I spent doing c++, I tried my best not to do what people nowadays call "modern c++" (extensive use of templates, embracing oop and the rest of the mess that is c++). You could say I mostly did C with just a few some C++ features. I think some of the new "data-oriented" systems programming languages that emerged during the past decade (no, not rust) would be much better suited (tens of times more pleasant to work it, after all, the joy of programming is the main reason we do this in the first place).
You mentioned that companies have an incentive (be it technical, monetary or something in between) to use their own engines. However, we are seeing a shift where giant publishers like CDPR are switching to Unreal for their future titles. I'd like to know what your opinion is on that. Personally, I feel like it's a double-edged sword. UE5 is definitely pushing the boundaries to what makes a good engine, but I feel that the games that have recently come out have not utilized the architecture to its full potential. It could be due to a need for shift in the philosophy of certain aspects of game development that would be needed to actually make use of these newer features. What's instead happening is that the developers are being very sloppy with their collective work. The end result is an unoptimized homogeneous experience. This needs to change. Either through developers fully embracing what UE5 has to offer, or by realizing that just slapping the Unreal tag isn't going to make their games automatically better - and that it would be more optimal for them to engineer a workflow that specializes in delivering the vision of the games in question. Both of those routes involve taking financial risks that most companies aren't willing to make. They're giving the general audience this fake perception of them pushing the limits by shifting to UE5, but behind that veil of false marketing it's all the same safe tried and tested traditional practices. It's a lose-lose.
This is not about games. Systems programming (using language like C/++ or Rust) is a different discipline than application programming (using a high-level language, or in case of games, a game engine). Most people who do system programming are not all that interested in applications. Most people who do applications are not at all skilled in systems programming. It does not hurt to know a bit of both, especially to know how engine works under the hood for troubleshooting of application issues, but realistically you focus on one area or another. And if you set out to write applications using a systems programming language, sooner or later you will find yourself implementing your OWN engine, thus wasting effort and potentially quality compared to what dedicated engines are already capable of.
I have no problem to write game engine or write code in graphics API. It isn't that hard. But I'm curious to know, if I made game in C++ with own engine top of SDL and wrapping graphics API, can I outsource game porting to consoles? What I mean is that is there capability of any company that ports game to consoles, to use custom engines. Sure I know how to make sure that C++ compiles (I do have tricks to ensure that), I can use rendering framework to get multiple rendering backends, I can document game engine but.. I don't know what the porting companies answer I don't use some "established" game engine like Unreal Engine, Godot or Unity. If custom engine requires porting & testing myself, that is issue.
my issue is not how difficult is, but how long it takes to do something, even if you taking already designed patterns or include existing libraries, it still takes so much work to make something that is already included in a major engine. I guess aside from the scope of the game you're intent to make, it depends on if you want to make games or you want to learn graphics programming.
0:34 point of order, web dev can also be from scratch game development. You can write your own engine to use with html canvas or WebGL and this way you already have native networking and browser support.
I highly disagree with the "it isnt that difficult" on the collisions, if you really want to make a game you'll have to avoid your way or checking collisions, by implementing this like a quadtree, spatial hashing, do things like swept AABB to avoid collisions tunneling and so on.
I'm kinda doing this too, except with Rust. I wanna make a game, but also want to learn Rust for my career, and figured, why not do both? Learn Rust and make a terminal game to start. Then go from there.
Personally I see not much good reason to make games without an engine. I use Godot and think that's mostly optimised enough for my needs, and don't get me wrong I do have respect for Devs who use no engine. Even though I do think programming is an art in if itself, I prefer using games as a medium to present something artistically, where the programming itself isn't that obviously artistic to the player when compared to the 3d modelling, texturing, lighting, animation, and story I have presented. Although code is just a means to an end I still find it deeply enjoyable, yet I do not have the patience for c++ from scratch development just for my silly horror game.
As a web developer I can totally relate to this. So many web developers insist on using frameworks like React or Vue. Using a web framework is like using a game engine and it has lots of cool features, but I just like building things in vanilla JavaScript. To me using a framework or a game engine is just taking all the fun parts out of development and leaving the boring and mundane things in.
I never liked game engines. They feel like a "black box" where every time I *drag and drop* I feel like I'm copy-pasting 1+ million lines into my script which I barely understand. Sure there's documentation, but there's also way too many hidden rules. As John Blow once said, "You don't need a 10 million line game engine to make a 5000 line game"
For me learning how to make an engine, for me is for the challange and learning etc. That and because I get full control and do not owe fees towards companies or have to worry about them all the suden droping support or what have you. Plus to me building your own engine is what i feel like is what makes yoru game stand out from the TWO monoplostic engines out there..... aka unity and unreal that ALL the tripple AAA games are doing...... instead of making it unique by making there own engines..... etc. That and the experncince you get from it allows you to work in higher postions or work for your self over time.
don't take someone who's inexperienced in your field's opinions about it. the most stupid thing i heard is someone disliking a game because it wasn't made using an engine and that limits your knowledge, every single person in the gamedev industry knows it's the exact opposite
Low level stuff just sails over my brain. I think that saying it's easy is kinda disingenuous. It may be a very valuable skill to make your own engine, but don't go around saying it's easy
Hah hah, well, it's no longer the best/most popular language for applications (desktop applications shifted to languages like C# then essentially died as web apps become more popular). But in games, finance, systems programming - C++ is still king.
I built a game in two weeks using c++ for my final project, no libraries except the graphics.h (some deprecated graphics library with very limited functionality).
Me, who is using C for my Calculator. Are actually this good projects? Like f.e. I go to an Interview and they ask: "what have you done?" And I answer then: "I made a 3D libary for my Calculator". Like is this even good?
Hello! Friend, tell me you have not worked with UWP start menu start. I wanted to try to integrate my game or application. so that it starts together with the start window. Do you know how to do this?
yo never did things like this but it has to do with registers probably and maybe install kits can help but Inever used any. Search the web and also chat gpt might actually know how to do things like this 💪
So, there are some codes for the console, " \033[H " this puts the cursor of the console (the white flickering line) to top left corner (resetting it). Now this works for window terminal, because there is the plain old cmd and I think it's another code you can ask ChatGPT. With that code you type cout
Well, you write it, build it, test it, and it kinda works. Great. Then it's time to deploy it for linux, windows, mac, psX, xbox, web, etc, etc... That's where your real pain begins.
that is actually the main reason big companies use inhouse engines. If you have a very big game and your engine has a performance or a bug on xbox for example, you need some low level acces to fix it, also that isn't that hard to do, you can for example use railib that ports to everything
@@lowlevelgamedev9330 I just mean that multi-platform build (which is for granted in general purpose engines) implies doing a lot again for each target platform, if you create your own engine. Yes, raylib makes it easier, but it is indeed a tradeoff if you need full control. So, it's wise to be aware of it ahead, and plan the targets accordingly. But this only has sense if one really wants to publish (to various platforms) a game on self-made engine. I agree 100% that the main pros of creating an engine from scratch are really skill-set and understanding 'the ropes'. If this is the main goal then nothing can give more than such an exercise.
More than this i will create a CPU and GPU then will create a Code Language for my CPU and GPU then will make my game...I want to eat a pizza; i will learn agriculture, then cerate wheat, Before agriculture i will study learn all Botanics, Botanics isn't enough because animals bugs birds eat seeded agriculture for that i will learn to create anti-bug for my farm, for that i will learn all chemistry then i will produce my anti-bug poisons, this is not enough, for that i will learn to create anti-bug poisons not to affect humans, i wll seed my farm then will get flavour, oh here for making flavour i must learn to make machines for tons of wheat, For that i will learn machine engineering etc. etc...
It may not be, but it will be fucking impossible to actually finish and ship. You will not be willing to implement the immense amount of work needed to make the game actually production ready. People are not stupid for choosing engines. No real studios use raw code.
the problem with the engine is precisely the finishing part, because it is very hard to modify an engine or fix some problems that might arise, so actually the finishing part is where not using an engine is easier, while the first part of the project is easier done with an engine
also I'm not claiming that studios don't use anything, but rather they use their inhouse engine, tho there are games made without an engine like Minecraft Terraria, Stardew Valey, Celeste
my friend in class told me that he wants to learn in rust , by the time he told me that i was interested in C. Few months later he didnt even download the rustc compiler and i started building my engine. He asked me what am i doing after school , i told him that im working on my engine, he laughed and told me that i am not going to make next version of Unreal Engine (which lets be honest their way of doing some things is just bleh), i told him that my goal isnt to make game and publish it (even tho i would love to go away from the "dev projects" to a real shipped stuff), my goal was to just learn and do the code right, do the build system like "pack and go" type of style ( i dont download prebuilt libs, i have the source code of the libraries built along the project + i self host git with gitea in docker cuz aint no way i want my project to be in control of microsoft with github.). Then i asked him what is he going to do.... "I will go home and play dota and sleep". But i am the stupid for trying to create something i guess.
most chad person here, it is insane that you learned all of this things in only a few months and that you have such cool mentality like learning and also the libs stuff💪💪 good luck with your engine and don't worry about others, you can tell them I personally told you that you are cooler than them 😎
Te be honest, I'm thorn between C and Rust, because I love C for it's simplicity, but also find the lack of proper package management, features like pattern matching, and borrow checking kind of discouraging. I mean, I love C until I have to build somethong bigger in it.
@@martinjakab use C++, inheritance can help simplify things. just don't go overboard with it
That's their way of saying " I can't do it, so you can't either." Pay no heed to him and do your thing.
Easy, you win
Telling somebody that they limit their learning potential by not using an engine is wild. This is probably obvious but by increasing the depth of your knowledge you gain a proper understanding of why and how something works and you will be able to debug more easily. Yes, you will be less productive, but in my opinion the knowledge gained is more than worth it.
Because everyone uses game engines and assets store new games look alike, run poor and are boring
yes, I think he thought there isn't much to learn there and that's even wilder :))
Honestly, for a simple game.... you will be less productive trying to learn an engine to make it.
Learning a simple framework will let you make the game quicker. In higher quality. And let you learn more on top of all that.
I appreciate the testimonial long live AlmondEngine
Game engines are made in c++.
From my point of view, having 'no engine' just gives you the space to make everything you want because there is nothing limiting you.
Writing an engine helps you even if you end up using a commercial engine later.
I wrote several toy engines in the past.
Now I am using Godot, not by choice, but because my team wanted to. All my experience writing my own engines in the past helped me see what Godot was trying to do, I was productive in Godot in like an hour, meanwhile everyone else was struggling lol.
Which professional company is using Godot? Sounds cool, but also not very serious.
@@SnakeEngineAll it takes is a good game coming out of it for it to be considered serious
@@SnakeEngine Mega Crit is using Godot to make Slay the Spire 2.
@nicolaspace1182 Note: Unity's run-time fiasco made them run-away.
@@TankLCDx They probably have then a professional engineer dedicated a full time job for exploring and bug fixing the engine. In that case, I can imagine how it is used for serious business.
AAA Game engine dev here. In all seriousness, if you want a job in the games industry - you need C++ and you need to have a pretty decent idea of how to write game engine code. Make a portfolio of projects, games, renderers, audio engines etc. Whatever it is - but make just make it. Do use engines - you need to understand the problems they solve. But custom engines are still a (big) thing in the games industry - and even if a studio isn't using a custom engine, I've seen studios rewrite Unity's renderer, and I know most UE studios will eventually have to add features / plugins or fix engine bugs in UE. If anyone tells you not to use C++ - ignore them.
thank you for the comment bro 💪
Currently I'm learning and using ue5 for my graduation project after that I'll go deep with C++ and making low level stuff, thanks for your advice!
It seems like the entire industry is consolidating onto UE5. This is somewhat disappointing as it seems that using inhouse engines encouraged more out of the box thinking.
the only problem is finding time for it especially if you have other responsibilities too
very true
Unless all your time is already spent on your responsibilities and necessities to survive, there is always time you can make for it. Now, whether you want to repurpose that time is a different matter, but then the issue isn't a lack of time, but whether you actually care enough about making games to use your time for it.
That's my main problem too. Right now, I am trying to build my Medium account and a gaming UA-cam channel for the future as a side income just in order for me to be able to quit overtime in the long term. And after that I will continue with my other plans and continue to build another UA-cam account. And slowly build my freedom and my exit to do the "Quit quitting".
I used to believe this, too. I finally solved it by not being hard on myself based on the "amount" I get done every day. Even if I don't get something done every day, I make it a point to at least look at what I've done, and try to do at least one thing no matter how big or small. I find that if I sit down to do at least do one thing, more often than not I end up doing more. And if I don't that's fine, too. As long as you learn something every day you gradually become better than you were. You progress even if your project doesn't.
Close the UA-cam
"I took the one less travelled by,
And that has made all the difference."
- Robert Frost
C++ Indie devs will one day be recognized, trust me.
What's complicated is the garbage you have to write using unity or unreal. You are a hero.
thank you 💪💪
Bro chill
Right I feel like you spend MORE time just learning how to use a tool. To make something than you do actualy just making the thing your wanting to create.
@Cactusman-e1d exactly
top truth.
Building a game without an engine (a framework is ok) teach us the fundamentals of how games works behind the scenes, letting us solve problems faster and in more efficient ways.
I have seen the source of a few small games made using a engine and they are often a huge mess, exactly because the devs didn't really knew what they were doing, resulting in a software full of bugs, poor performing, and hard to mantain.
I am still tryin to make my own engine but ppl discouraged me thank you I will keep going
Here's the problem I am facing. I like C++, AND I want to make games for a living one day. I don't like game engines like unity, godot or unreal (I've given each a fair shot), but I worry I may spend too much time reinventing the wheel (also, I don't like raylib either lol).
Try looking up handmade hero. He shows how to do stuff, from the ground up without using any libraries at all. It might help you reinvent the wheel quicker.
As for your worries spending too much time reinventing the wheel:
As long as you are not reinventing algorithms for well established problems, you aren't spending too much time. You are investing time going slowly at first to go quick later. And on the case you are reinventing algorithms... that will be valuable experience for once you encounter a problem the common solution don't work for, because some nuanced condition makes them not viable.
Basically, spend the time you spend worrying about it by doing more work on/thinking on how to advance your project(s) instead. Because that time... is definitely being wasted.
How can you not like Raylib what ?
@@alexale5488 Simple: I don't like it
Raw dog OpenGL my guy
@@cweasegaming2692 I think they were hoping for an explanation of why you don't like it rather than you simply repeating what you already said. If you were to explain why you don't like it, you might just give someone else an important insight into something that they hadn't considered before.
Ppl who think C++ will be replaced are goofy.
goofy ahh developers 💀😫
Thank you!
I feel like I've been searching for this video for years!
Excellent info, subscribed!
Finally, someone who tells it how it is. I am so tired of seeing C++ gamedev youtubers boast about how difficult it is. That mindset is so harmful to beginners, because it increases the intimidation factor 10 fold. Love your videos man!
I am 60k loc of C++ into my own game engine I wrote in raw vulkan. That includes my own matrix algebra lib and a functional windowed UI. Doing it is like accelerating freight train - at first it is hard and progress is slow, but as features and systems get added, it starts to take shape pretty quickly. After a year from writing 'main' I now have a complete content editor and now am implementing actual game systems.
Super valuable advice. Good managers would hire someone who has built a game using an engine, but great managers hire people who have built their own game engine (even if more simple) from scratch.
It just means you understand what goes into the game engine, rather than just being able to use one. Then when you run into problems just using one, you understand the background processes and could likely debug way faster.
The good thing of knowing how things work under the hood is that when you use high level langs/frameworks you really understand what you are doing, you are a much better programmer. People who do not know the math involved here and/or the low level implementation details have no a clue what they are doing.
Currently learning OpenGL (GLFW) in VSCode, finally able to render TrueType text using a texture atlas to display an FPS counter, moving an object with the keyboard and making input independent of frame rate, V-sync, and screen recording with FFmpeg. Just this seemingly basic stuff took so long to implement, the learning was a massive uphill battle, getting all the dependencies, header files and static library files linked was a nightmare, and the debugging was painful, but in the end it feels much more useful and I feel I’ve learnt way more than had I used an engine.
This is a reassuring video. I decided to focus my learning efforts in C programming because I'm interested in low level programming but was worried about if I should be spending my learning time on other things, but I'm sure now that I want to focus on C and then eventually move on to C++
Learning for fun is usually different from learning to obtain a marketable skill. For example, I learn game programming for fun, and I earn my living with enterprise databases. It is important not to confuse what the market demands with what you find amusing to learn.
@@clray123 Yeah youre right. The main reason I was worried is that, as how I have just begun my course, im still far away from a job, so its not like I have any stable income or anything yet. But going to continue down this path for fun while doing my best on my degree
Good video :D Maybe I will try create game in C++, but right now want to finish my first game in UE ;) Maybe I will back to this video and channel in February when my first game will be finished :)
I kind of want to make my own game engine using c++ and opengl, i just think it would be a massive flex and really cool to make your own way of doing things.
Instead of jumping in head first, you should first learn making a game using a regular graphics Library like raylib. Once you understand how it works you can make your own using opengl
yes that is true, but you should also make a game from scratch with it or make a game from scratch first as the other comment here says, because you will make a better engine like so
I've spent the morning learning raylib, I'm making snake with it and I'm already making notes on how my engine will do rendering, once I've finished my game in raylib, I will try to make a basic engine that can make simple games like snake and pong.@@lowlevelgamedev9330
I think the stigma against making your own engine is dying off now that people really saw the danger of being a slave to a commercial engine's license terms. And C++ is now easier to use than ever, and there's a ton a very useful open source libraries for every game system that can get you running in a day with a good amount of those having friendly licenses (not all for sure). Also having access to the full source is so useful, I've worked Unity jobs for many years and it always came to trying to hack around the black box trying to get it to do something custom.
As someone who does use game engines, hearing that "not using a engine limits your learning potential" blew me away because even I know that making things from scratch makes you learn a lot.
I stick to engines typically because I want to focus on game making and not re-invent the wheel but I've entertained (and tried) doing graphics rendering in different languages.
I didn't succeed but I did learn a lot from it.
Thank you for the reminder. I really enjoy Unity and Unreal, but some things are overcomplicated. Before making games I worked professionally in C++ and this is a great reminder that a certain 2D project I'd ike to do but dread doing in an engine would be FAR simpler to build with C++ and SDL.
I agree with the idea at 3:20, but measuring a projects worth in lines of code isn't always indicative of it's learning value. For example, I'm working on a simple interpreter in Go which isn't even 500 lines yet, but I've still learned heaps and have a functioning project.
I use zig for my, still very early in development engine but I 100% have to agree, the skills you learn will help you learn a lot more than just running Unity or Godot since you also learn how each engine feature works under the hood, it helps that engine dev is also pretty fun
I agree. I miss the old days when every game studio had their own game engine !
I was literally trying to figure out how to make my first c++ project with glfw when i got hte notification for this, i was fighting for my life in visiual studio when i get this smug notification telling me it wasent hard. I started crying immediately of course.
Genuine question though, do you still use libraries like GLFW or GLUT in your larger projects or do you swap it out for something else?
Generally GLFW and GLUT are pretty good for any level of low-level game development. Sure, you may have those guys telling you "use VULKAN it's more performant" but honestly? If you get a good system in place, OpenGL can get you anywhere. Plus, it looks really damn good on any programming portfolio.
The lack of clarity of some of these concepts online and YT is actually a slight blessing. It makes things harder but it also means less competition. The more "complicated" something is, the less the common, time wasters who want a good paying job rather than enjoying the field invade our market and saturate it. Spoon feeding and excessive abstractions have invited shortcut developers into our field. This is something low level game dev here doesnt do thankfully otherwise he could only be making Unreal Engine 5 videos and pulling many views for virtually nothing.
If you're struggling just take time to find out what each function or concept does in the documentation. Maybe test it independantly in a small practice project rather than trying to use it in your main one.
@@Solar_Messenger So true, ive been using blender for a long time and going from every tutorial being 90% nothing and 10% stuff i allready knew to, actual useful information? crazy
can hard relate to the nightmare that was setting up my first glfw project haha, this channel has some cmake setup videos that are helpful and you can also find github repos that come with glfw and glew/glad already setup which saves a lot of time
yess I use glfw, glut isn't really used anymore. I have a video called something like I linked all the libraries for you, you might want to check that out ;)
A dev that sticks to only learn how to use tools like Unity or React, will almost always get stuck when facing a problem that requires going outside the comfort zone of their chosen tools. Performance optimizations, silent failures in the build system that introduces failures, bugs that require knowledge of internal work to understand why they happen and how to fix them, and so on. It is good to always invest in knowledge we can transfer across our tooling
true words spoken here 💪💪
"it will be replaced by rust" People who are in the industry less that 10 yrs think that this is first Cpp killer. In next 10 yrs we barely will remember Rust.
Maybe not, I think rust will be the future soon
It's not about if it or if it isn't a cpp killer. Even if it is, there's so much C++ code out there that it will take a very very very long time to replace it (if ever). It hardly makes economic sense to re-write projects in another language if they already work with current language. Also new projects might stop using C++ altogether (unlikely) but old projects will not vanish into thin air either.
C++ will just assimilate Rust like it has other languages.
@What-he5pr yes I'm been watching over , maybe safety be coming soon in C++
both c++ and rust have weakness points and strength points, there are always use cases where c++ will be better and the other time rust might be better. rust is just fresh and it doesnt make sense to guess if it's going to be better than a language born a lot earlier
I feel like the reason why people think you're wrong for not using something like unity or godot, is because they're thinking of it in the context of just "making a game" and not learning how rendering works and not learning the many great techniques and skills you learn from doing it at a lower level and implementing your own optimisations and stuff
My intersect is also same as u. My plan for right now is to make 2d games using c++(custom engine). Iam very very sure that with enough experience we can easily able to match the commercial engines in 2d. As far as 3d is concern, i have no idea apart from the basics. But i really to go into 3d games. I guess that in future i will be able to go into 3d also.
For the video I gather that you're simply a C++ masochist. Welcome to the club.
😂😂 lmao It's not even hard to code in cpp
@@lowlevelgamedev9330 That's what a C++ dev would say! lol
PS: I had taken ~2 weeks break from C++ and I coded in another language entirely. When I came back, C++ syntax horrors hit me like a brick wall.
@@lowlevelgamedev9330 sounds like something that C++ masochist would say
@@lowlevelgamedev9330 You probably have this perspective because of years of coding in C++. Imagine the people who just discovered for loops in python and try to learn what a class is in C++ lol.
I've made all my games from scratch and everything has worked out for me! Knowing how game engines work is invaluable and it isn't something you can learn through just slapping together pieces in Unity or Unreal. +1 to all solo engine makers!
I will never regret not starting game dev learning without an engine
you used 3 negations I don't really understand 😂😂
@lowlevelgamedev9330 correction I don't regret starting game dev by using pygame
good vlog. interested on how do you handle UI? it's hard to do ui without drag and drop tools. also how do you handle porting to many different platforms? such as android, web, ios. If we wanted to target web, wasm is gonna take insane amount of compile time. The game mechanic itself is the easiest one in c++
ui is ineed hard, I have my own ui library, for menu stuff it is a declarative style where you just say you want buttons amd they appear all responsive and stuff, the other option I have is to specify wjat percentage to use. And yes I can port to other platforms because all the things I use are cross platforms but I never tried anything else except linux
I work fulltime as a webdev and I'm trying to be a fulltime indie dev, so its take a lot of my free time, unfortunately I have to use an engine to maximize my productivity and realease small games while I cant afford a bigger game, but I do mess around with a little cmake and c++ whenever I get more time, untimely I want to be onwer of inhouse products and making my engine is the way
I've identified myself with your path. Good luck, bro! Also fulltime webdev, also have this dream.
it is very hard to succeed in gamedev I'll tell you that but good luck bro 💪 also you should probably also do yt or something so people can see your games
If you like programming and want to learn a lot of stuff, while also trying to make a game, working on your own engine is a great thing to do.
If you wanna **just** make games, I wouldn't recommend it though. Remember, the user doesn't cares about how you make the game, but rather what you make.
omg tysm for this video i need it soo much
A wise developer once said: "Every game engine is sh*t". Whether you use Unreal, Unity or others, each of these engines have their own quirks.
While making your own is fun and all if you really want to open up a business in the gaming space, you better use an existing engine. This way you get easier access to developer and artists to build the game your company wants to build. The current trend is moving away from custom game engines, especially in larger teams.
I would add though - that doesn’t mean the need for game engine specialists is reducing. Because of these quirks you mentioned, you often still need to fix, replace or optimize features in those engines - and you need a solid understanding of engine architecture to do that. Also - while the industry is “moving away” from custom engines… there are companies today writing engines that will be in use for the next ten years or so.
For me there is only one excuse why I still use Unity. Sometimes you want to protipe some abscure shit, like, for example, minecraft terraian generation but using cellural automatos and while you still have motivation to write this stuff it's better to spend your time on realising algorithm nether the setuping 3D scene using openGL. Also it's where cool to have posobility to inspect your game from other angles and tweak varibles in run time from editor. But, let's be honest, you need that stuff to balance and make your game fun, not to write it right
Love the vid i have horrid flashbacks of C++ mem errors, but this made me want to jump back in. Just for clarification you are telling folks no engine, just use my lib instead? I would be interested to know what libs you use, you mentioned opengl ( which was the case 20 years ago still the same?) what are you using for physics? Would love to take a look at your git if its publicly available. Keep up the good work!
glad to have tou back on my team 💪, I have my own libraries and stuff and I hage videos about them but my point is not for people to use them, but ratjer use any library or make their own 💪
People will forever want to bring other people down to their level. As you pointed out, being able to understand the things that go into making something like Unreal Engine makes a person more valuable than just using Unreal Engine. We've already reached a point where things are so bloated it takes a PC space heater running on 800W of power to do what should be possible in 200W or less because everyone's just trying to make generic tools for people who have no technical background.
Making a 2D terraria-like game is by no means easy. The AABB collision requires a lot of tuning. It's not the usual "if maxX > minX and ... etc.", you have to take into account the last position, and then you have to take into account jumping near a wall, if you jump diagonally and you hit the edge of a wall, you must disable last position temporarily so that you avoid getting stuck, etc. There's a lot of tuning that goes into a 2D game. Calculating the radius to engage/disengage enemies, creating dynamic spells, etc. is easy conceptually or it might seem easy conceptually but in practice it requires a lot of thought and effort. I speak from experience.
I agree with you but I think people cam start with such a project and solve this big problems one by one eventually 💪
@@lowlevelgamedev9330 That's true, low level programming as opposed to using an engine is more straight forward as it forces you to be aware of all details and build everything from the ground up. With an engine however things can get harder as you have to glue your code to the engine's functionality/editor and that takes a long time to learn. Nice vid.
I agree that making a game engine is not a requirement to make a game, neither it will be better because of it, but as you've said, someone has to learn how to make a game engine in order to improve existing engines or creating new ones, and making a game from scratch is a good way to learn the basics, and there are dozens of libraries if you want to skip parts like the physics or networking.
Utterly bizarre to me that people would be opposed to writing game engines, and making them in C++. Our industry is so dogmatic, it burns.
This is why i like using pygame i definitely learned more when i was using that instead of godot but man i just really needed a good way way to get into multiplayer development and godot's got a really decent multiplayer integration with steam
Rust isn't even a contender to replace C++. Zig and Odin are.
Not sure about that. The thing is, MS is rewriting a lot of core systems in Rust. If they ever get around to rewriting DirectX it will likely be in Rust, which will be a push in that direction.
Otherwise, I don't see Zig and Odin getting much traction in game dev outside hobbyists because of the closed nature of most platforms. Odin is pretty cool though.
@@zoeherriot Do research on Rust build times. There is NO WAY that Rust is replacing C++. Just not happening. I wanted to love Rust, but upon deeper dive it just isn't the language. I agree with you, Odin is super cool.
@ I work with rust. Rust is already being used in AAA gaming in tool chains, we are aware of build times. You should try doing an UE build if a large project sometime. One hour of code, 8 hours of cook time… really gets up there. ;)
@@dragonalong6860 I don't need to do research on Rust build times, I've experienced them myself.
The extra time spent building (which is *not that long*, by the way) is more than worth the runtime errors that are avoided by ensuring safety at compile time.
@@ultrasquid579 People more experienced than me will say that the safety features are easily avoidable once you do it long enough or design your code effectively. I've seen people compile Rust projects for relatively simple projects, and they took a long time. There's also no way to EVER optimize the front end of the compiler (even if you do optimize the back end of the compiler), so you're stuck with slow build times. Jonathan Blow (whom I despise politically), Ginger Bill, and Ryan Fleury have all talked about Rust not being ideal for game dev.
What's your opinion on frameworks? I'm a coder first and foremost and I gravitate more towards frameworks. I've used XNA, libgdx, and love2D, and I've learned to code in C#, Java, Kotlin and Lua as a result. I think it's a good middle of the road approach: I don't have to do everything from scratch, but it also doesn't hold my hand.
yess I agree with that, I made my own framework but it is the same thing as using a different one. Usually there os no need to do everything from scratch
c++ will never be replace and i would argue than if you a cs student c++ js python and java are the most important to learn
useless
to me it seems like a lot of the time, it's easier to make your games from scratch instead of using a game engine because you have more control over problems with the game
Best. Keep it up bro
I started programming in rust before C++ but rust has like 10x the friction. I fell for the meme 💀. I love reinventing the wheel!!! And no one can stop me
glad to have you on my team 💪
I'm stuck in Python, but to advance my career in robotics I really need to brushup my C++ skills!
Good video as always! I have a question do you use Object oriented C++ or do you code in a C way but using C++ ?
I love to deep down. I would love someday I could try to make a game in assembly.
maaaaaaaaaaaaaaaaaaaaaaaaaaan....
can we get ONE video like this without an accent please?! GOOD LORD.
I'd say that it really matters what your goal is, if you want to make a game engine in C++, you're better off not doing it if it's not for the right reasons. I think there is a clip from Pirate Software on the same topic.
good points bro 💪
"Quality in a service or product is not what you put into it. It's what the customer gets out of it." - Peter Drucker
I have far more respect for someone who has actually released something on Steam than for someone who spends their time creating low-level tech demos and claims superiority because of it.
you're missing the bigger picture
@Vivi-xn9iz how so?
What palette did you use for the pixel art in the thumbnail?
Learning how to write the game from scratch is definitely the way to go if you care about the programming aspect of game dev more than the design aspect. But C++ isn't really the best way to do it, imo. During the little time I spent doing c++, I tried my best not to do what people nowadays call "modern c++" (extensive use of templates, embracing oop and the rest of the mess that is c++). You could say I mostly did C with just a few some C++ features. I think some of the new "data-oriented" systems programming languages that emerged during the past decade (no, not rust) would be much better suited (tens of times more pleasant to work it, after all, the joy of programming is the main reason we do this in the first place).
You mentioned that companies have an incentive (be it technical, monetary or something in between) to use their own engines. However, we are seeing a shift where giant publishers like CDPR are switching to Unreal for their future titles. I'd like to know what your opinion is on that.
Personally, I feel like it's a double-edged sword. UE5 is definitely pushing the boundaries to what makes a good engine, but I feel that the games that have recently come out have not utilized the architecture to its full potential. It could be due to a need for shift in the philosophy of certain aspects of game development that would be needed to actually make use of these newer features. What's instead happening is that the developers are being very sloppy with their collective work. The end result is an unoptimized homogeneous experience.
This needs to change. Either through developers fully embracing what UE5 has to offer, or by realizing that just slapping the Unreal tag isn't going to make their games automatically better - and that it would be more optimal for them to engineer a workflow that specializes in delivering the vision of the games in question. Both of those routes involve taking financial risks that most companies aren't willing to make. They're giving the general audience this fake perception of them pushing the limits by shifting to UE5, but behind that veil of false marketing it's all the same safe tried and tested traditional practices. It's a lose-lose.
I loved your channel's Logo 👏👏
This is not about games. Systems programming (using language like C/++ or Rust) is a different discipline than application programming (using a high-level language, or in case of games, a game engine). Most people who do system programming are not all that interested in applications. Most people who do applications are not at all skilled in systems programming. It does not hurt to know a bit of both, especially to know how engine works under the hood for troubleshooting of application issues, but realistically you focus on one area or another. And if you set out to write applications using a systems programming language, sooner or later you will find yourself implementing your OWN engine, thus wasting effort and potentially quality compared to what dedicated engines are already capable of.
I have no problem to write game engine or write code in graphics API. It isn't that hard.
But I'm curious to know, if I made game in C++ with own engine top of SDL and wrapping graphics API, can I outsource game porting to consoles?
What I mean is that is there capability of any company that ports game to consoles, to use custom engines. Sure I know how to make sure that C++ compiles (I do have tricks to ensure that), I can use rendering framework to get multiple rendering backends, I can document game engine but.. I don't know what the porting companies answer I don't use some "established" game engine like Unreal Engine, Godot or Unity.
If custom engine requires porting & testing myself, that is issue.
There is no way my guy said not using an engine is limiting your learning 😭 dawg was jealous or smth lmao
my issue is not how difficult is, but how long it takes to do something, even if you taking already designed patterns or include existing libraries, it still takes so much work to make something that is already included in a major engine. I guess aside from the scope of the game you're intent to make, it depends on if you want to make games or you want to learn graphics programming.
What 3d enginer game base for c++ you will suggest?
0:34 point of order, web dev can also be from scratch game development. You can write your own engine to use with html canvas or WebGL and this way you already have native networking and browser support.
I highly disagree with the "it isnt that difficult" on the collisions, if you really want to make a game you'll have to avoid your way or checking collisions, by implementing this like a quadtree, spatial hashing, do things like swept AABB to avoid collisions tunneling and so on.
I'm kinda doing this too, except with Rust. I wanna make a game, but also want to learn Rust for my career, and figured, why not do both? Learn Rust and make a terminal game to start. Then go from there.
saw you mentioned midnight arrow...so i went and bought it (it's on sale 70% off though)
thanks bro I hope you like it 💪
Personally I see not much good reason to make games without an engine. I use Godot and think that's mostly optimised enough for my needs, and don't get me wrong I do have respect for Devs who use no engine. Even though I do think programming is an art in if itself, I prefer using games as a medium to present something artistically, where the programming itself isn't that obviously artistic to the player when compared to the 3d modelling, texturing, lighting, animation, and story I have presented. Although code is just a means to an end I still find it deeply enjoyable, yet I do not have the patience for c++ from scratch development just for my silly horror game.
As a web developer I can totally relate to this. So many web developers insist on using frameworks like React or Vue. Using a web framework is like using a game engine and it has lots of cool features, but I just like building things in vanilla JavaScript. To me using a framework or a game engine is just taking all the fun parts out of development and leaving the boring and mundane things in.
glad to hear people from web dev also agree 💪
I never liked game engines. They feel like a "black box" where every time I *drag and drop* I feel like I'm copy-pasting 1+ million lines into my script which I barely understand.
Sure there's documentation, but there's also way too many hidden rules.
As John Blow once said, "You don't need a 10 million line game engine to make a 5000 line game"
if someone is going to show me a game they made and they open visual studio I would be impressed as f, that is not a easy task to do.
Have you checked at Handmade Hero videos? You will levelup your c++ gamedev skills considerably.
0:52 and that is why we should not respect opinions. People pull those kind of statements out of their behinds.
It's hard if u do it in Unreal 🤕... As a Beginner the absence of documentation makes Harder than it should be 😵💫
You should take a jab at implementing the mono C# vm
For me learning how to make an engine, for me is for the challange and learning etc. That and because I get full control and do not owe fees towards companies or have to worry about them all the suden droping support or what have you.
Plus to me building your own engine is what i feel like is what makes yoru game stand out from the TWO monoplostic engines out there..... aka unity and unreal that ALL the tripple AAA games are doing...... instead of making it unique by making there own engines..... etc. That and the experncince you get from it allows you to work in higher postions or work for your self over time.
don't take someone who's inexperienced in your field's opinions about it.
the most stupid thing i heard is someone disliking a game because it wasn't made using an engine and that limits your knowledge, every single person in the gamedev industry knows it's the exact opposite
Would you like to become a race car driver or a race car mechanic?
At first I thought he was kidding about talking like a indian but then I realized.
Low level stuff just sails over my brain.
I think that saying it's easy is kinda disingenuous. It may be a very valuable skill to make your own engine, but don't go around saying it's easy
I'm not saying it is easy to make an engine, but to make doodle jump in cpp I think anyone can do that 😎
Google: Playstation and Xbox are using C++.
Me: What can I learn on UA-cam, then?
UA-cam: Is C++ a dead language?
😂😂
Hah hah, well, it's no longer the best/most popular language for applications (desktop applications shifted to languages like C# then essentially died as web apps become more popular). But in games, finance, systems programming - C++ is still king.
C++ and Easy should not be used in the same sentance.
I built a game in two weeks using c++ for my final project, no libraries except the graphics.h (some deprecated graphics library with very limited functionality).
I have no idea how you managed to make graphics.h work because I also tried but props to you good stuff, I like the simplicity of it 💪💪
tldr: start from the middle out, not top to bottom
I know this feeling so bad, though! If someone would just kindly tell me what I need to know, I could make wonderful things.
Me, who is using C for my Calculator.
Are actually this good projects? Like f.e. I go to an Interview and they ask: "what have you done?" And I answer then: "I made a 3D libary for my Calculator".
Like is this even good?
I honestly think it is cool so yes 💪
Hello! Friend, tell me you have not worked with UWP start menu start. I wanted to try to integrate my game or application. so that it starts together with the start window. Do you know how to do this?
yo never did things like this but it has to do with registers probably and maybe install kits can help but Inever used any. Search the web and also chat gpt might actually know how to do things like this 💪
making a graphic engine in the console
using cpp
@@zipiro8942 hey i have a question i tried to do that once but how do you clear or go to the start of the console?
So, there are some codes for the console, " \033[H " this puts the cursor of the console (the white flickering line) to top left corner (resetting it). Now this works for window terminal, because there is the plain old cmd and I think it's another code you can ask ChatGPT. With that code you type cout
I have the code on github, If you want I will give you the link
Forgot to say that I std::cout
It's hard to make games in anything other than Scratch
bro idk but is there any tutorial for cpp game for mobile??
0:56 average python kid advice (Learning hard is Waste of time)
People who say learning or using something that is fundamental or foundational useless, are usually useless themselves lmao.
Well, you write it, build it, test it, and it kinda works. Great. Then it's time to deploy it for linux, windows, mac, psX, xbox, web, etc, etc...
That's where your real pain begins.
that is actually the main reason big companies use inhouse engines. If you have a very big game and your engine has a performance or a bug on xbox for example, you need some low level acces to fix it, also that isn't that hard to do, you can for example use railib that ports to everything
@@lowlevelgamedev9330 I just mean that multi-platform build (which is for granted in general purpose engines) implies doing a lot again for each target platform, if you create your own engine. Yes, raylib makes it easier, but it is indeed a tradeoff if you need full control. So, it's wise to be aware of it ahead, and plan the targets accordingly.
But this only has sense if one really wants to publish (to various platforms) a game on self-made engine. I agree 100% that the main pros of creating an engine from scratch are really skill-set and understanding 'the ropes'. If this is the main goal then nothing can give more than such an exercise.
this is a great video. But the music in the backround is a bit too much.
More than this i will create a CPU and GPU then will create a Code Language for my CPU and GPU then will make my game...I want to eat a pizza; i will learn agriculture, then cerate wheat, Before agriculture i will study learn all Botanics, Botanics isn't enough because animals bugs birds eat seeded agriculture for that i will learn to create anti-bug for my farm, for that i will learn all chemistry then i will produce my anti-bug poisons, this is not enough, for that i will learn to create anti-bug poisons not to affect humans, i wll seed my farm then will get flavour, oh here for making flavour i must learn to make machines for tons of wheat, For that i will learn machine engineering etc. etc...
It may not be, but it will be fucking impossible to actually finish and ship. You will not be willing to implement the immense amount of work needed to make the game actually production ready. People are not stupid for choosing engines. No real studios use raw code.
the problem with the engine is precisely the finishing part, because it is very hard to modify an engine or fix some problems that might arise, so actually the finishing part is where not using an engine is easier, while the first part of the project is easier done with an engine
also I'm not claiming that studios don't use anything, but rather they use their inhouse engine, tho there are games made without an engine like Minecraft Terraria, Stardew Valey, Celeste