Both premature optimization and generalization, yes. I gave up on two projects for these reasons. First time was me trying to build the "perfect class hierarchy for every system that could ever exist that does all the things all the time and is infinitely extendable" before I even knew the problem I was trying to solve. Second time was trying to write a big SIMD library for my game engine with A) zero clue how to write AVX intrinsics and B) not having anything else working beforehand.
Dont bother guys, i allready beat coding and made the best code ever written, its a blank file. Infinitely readable, infinitally preformant and infinitely expandable. Its so easy guys, to make perfect code just dont code
It's so hard to just make projects for me, I lack creativity, and whenever I decided "okay you know what, let's just make something that already exist" something ends up happening that makes me stop
@@subgivtara same here. Even with meds (and probably because I'm 31 and have life going on) I struggle a lot to sit down more than 1 hours and do stuff
I actually kind of want to learn Assembly as I seriously know almost nothing about how CPUs work, but I am worried that I will get into a year-long rabbit hole on CPUs, GPUs and optimising everything little fiddly bit based on how it runs as simple machine instructions. I am also worried that I will then spend two more years on a custom compiler optimised to handle my specific coding style to produce the most efficient executable possible.
@thesun___ I would recommend learning riscv assembly first as imo it's the cleanest. When I say demystified, I mean you can finally be able to see exactly what the stack is, what calling conventions are, how functions store their args and return values, how syscalls communicate with the kernel etc. I haven't been doing assembly for long, only a few months, but it's expanded my knowledge so much it's insane and definitely worth it.
That is one of the best advice I think. I had to go through a lot of those things myself and would say that you're 100% right on all of the points. And the best advice was "Stop waiting for someone to teach you, just learn yourself". Yes, you make mistakes and at the same time, you learn a lot from that.
I remember starting coding when I was 14, doing just random stuff in Javascript on my phone, nowdays i'm working in a lot of projects, some done in C++, some in Lua, and to this day I'm still learning new stuff, also more programming languages A big project would be that port of Lua to Godot I'm doing
@thesun___ The app i was using was called "DroidScript", it's sort of a weird mix of javascript and native android interfaces Then i moved to a cordova project, it was just an app that loaded my scripts in my sdcard, started to code using Acode editor, then copy the files to my pc and build it using android studio
@@thesun___ Termux + Neovim is one way if you're on Android, and I heard nowadays you can sideload some app on an iPhone, so with a terminal emulator you should be able to do the same thing. Granted, nvim is not VS, but on android there's an app called ACode iirc? For example, personally, since I'm about to move and give away my pc, I bought a Samsung Galaxy Tab, so that's android, with the Termux app I installed Debian under proot and run VSCodium, there's multiple way to do so when you don't have any other choice than to code on a phone ^^
About the algos: Just learn what they do what they are supposed to solve. Then use one of the myriad (open source) implementations out there if you think you need one particular algo. Finally, learn what the C++ STL provides and use wherever possible. Don't roll your own. You'll save time and the STL implementation is probably way more correct and performant than you'll ever get your own version.
CS student here. Sometimes you don't use the data structures and algorithms that teach in the university/YT courses. But you gain so much confidence and knowledge in a language and programming in general, by learning and practicing with data structures and algorithms. It helps you solve problems that you'll face in game development. Also a little bit of math, just basic stuff, for small projects.
one more tips: write unit tests! Unit tests is finally small and simple functions -> you are still coding and it helps focus on important parts of your project. Bonus: will save lot of time when updating code!
On your over abstracting point. I remember when I used to make games where I would sit here and spend weeks upon weeks on my player character and debugging his abilities. And I gave him all the abilities I wanted. All Before I gave him an enemy to fight, his ability to die and his ability to change rooms. I became a bit happier when I started just Coding the game with all the basics and also be able to complete my game from title screen to ending credits without spending all the time debugging stuff. Without over abstracting, My enemies are SQUARES, and not Sprites. And while I plan to make a more complicated game, for now, All I need to complete the game is to Jump, walk left and right and attack and destroy the square enemies.
yes that if very true, imagine after adidng all of those abilities, you add an enemy and you discover that they aren't fuj and you need to change the gameplay completely; better to just take things step by step 💪
i don't know what kind of universities you people go to, but in my case, i would not be as good of an engineer as i am today if i didn't get my degree. 80% of subjects were useful in some way - even it is wasn't related to the exact problem i had to solve, it taught me something which became useful eventually (that being hardware, parallelization, concurrency or optimizations, for example). regarding tip 3, the best way to get experience is to code as much as possible (and, a lot of time, coding the things you don't care about is even better than doing only what you want). in my case, i had to make roughly 20 projects in 4 years, most of which required at least 50 hours to finish. that kind of work can teach you a lot about code maintaining, debugging, reading other people's code, finding resources online etc. and finally, maybe the most important thing, it will teach you the discipline. you won't always do what you like (even in gamedev, there's a lot of tedious crap you don't feel like doing, but you have to). that kind of experience is best gathered in college. of course, if you are wise enough, you should always have some personal projects you are doing in your free time. the best thing about that is, you will feel yourself becoming better in both your project and your studies as you do them in parallel. i, for example, made 3 games during college, only in my free time. and finally, my advice to anybody reading this: ditch C++, it's a hell of a language. just switch to C and learn how to code properly.
I like Casey Muratori's idea of Compression-Oriented Programming. (The article is titled Semantic Compression.) "Just write the code that does the thing" (which by the way is the exact same idea in his "Non-Pessimization" performance concept). You write the code as simply as possible first, and then your brain automatically notices any patterns in it that can be extracted out (semantic compression).
Another good option is to grab an open source project like Doom and get that set up so it compiles and then study and mess around with it. You'll learn how others go about doing specific things and learn a lot of things you might not known about.
Super random, but you have inspired me to create my own renderers and to not give up. I now have a working raycaster in JavaScript that runs smoothly. The next step is a full 3D software renderer like the one used in Quake and I have no idea where to start, but that's the fun part.
Now give advice to those who started learning this at 28. In nice cases, they will become cool in 5-8 years. In worst 10 years. And unfortunately, they need to spend time creating a family and how not to die of hunger. 2000s graphics are much easier to learn than today.
I really wanna goto the gym, but the food at my university is so shitty that its better to eat actual shit, so i am eating really less so i am scared of damaging my body
Is the idea of damaging youris body the truth or just a belief that limits you? I don't know your physical condition, but if you're somewhat healthy, a little of excercising will only build your body up. As a tip for now: The 15 min of working out will give you the most of the benefits from working out, you don't even need to go to the gym. Just do some push ups on the knees, and squats. If you can't workout for 15 min - do 10 or even 5. The most important thing is sticking with it every day. And I actually wont recommend doing more than 15 min at the beggining. It's better to slide in slowly, and increase the workout time or intensity as you become more accustomed to the current plan. Tracking is also important. Put a little paper on the wall and set a checkmark when you did worked out. Anyway, do whatever the hell you think is right. There is no rules.
@@padlivniyit is partially true and partially in my mind, I have been going to the gym for 6 months before joining uni, after joining my whole schedule got fucked up and I eat very less stuff rn and I lost a ton of weight
@@padlivniymost of that was cuz I was in a cyber security club that was really demanding (7 days a week) 9am to 10 pm in the weekends and 5 - 10pm during weekdays. It's a good place and all and I was doing reverse engineering, and I was enjoying it but this tight schedule fucked me up a lot and I quit after a year
I made that mistake too. School mentioned nothing about promises and frameworks. Not even jQuery. There was very little emphasis on database. So when I got a job in the IT field, I wasn't able to keep that job.
I want to study low-level programming so much, but all IT colleges rejected me now i am in a geology college and i dont have a lot of time to start my projects 😢
if ur turkish like me, yes discord is banned in our country 😭 but you can fix it! change your dns settings and then u can able to open every site you want. For process just ask chatgpt or watch some tutorials.
5:52 In my opinion, If you are a newbe developer, there are two simple things you may think about. Is the code you write testable? When and how often will the code need to be changed? This is enough to write not bad code.
Hello master Gigachad Low Level Gamedev, I sincerely thank you for the advice. But I'm having problems finding sources to learn opengl with c, not c++. C++ is not interesting for me and I don't want to get STD. May you help me master?
Opengl is a library, so it works the same way in C and C++. Just replace any C++ specific stuff with corresponding C stuff. Most of the time the C++ is just strings, vectors, sorting or other basic data structures and algorithms so replacing them shouldn't be too hard even if you don't know how exactly they work in C++.
Doing OOP with C is a pain and a waste of time. If you don't like C++ then choose another compiled language that offers higher level abstractions. IMO, I consider C too low level to code anything big in it. It is feasible but a huge sink of time which can be spent elsewhere and be more productive.
@sledgex9 nope, it's my choice good sir. You go use your classes and namespaces and get STD. I love c's simplicity and opengl is originally a c library also I'm not going to implement oop in c from scratch, if I wanted that I would've just used c++ I know it's tiresome
Opengl is procedural api so it does not have any cpp specific things and there is plenty of tutorials about it. ~I can admit that I also like c simplicity.
Thank you for nice tips. Could you recommend me some c++ gui library, which is 1)simple 2)cross-platform 3)able to create static executables, so you don't need to recompile or update your drivers/gui libs just to run on another machine 4)your gui is editable. Thank you in advance.
So for people that are interested in coding at their late 20s early 30s, do you recommend not pursued this carreer? I have already the fundamentals but taking recommendations for a lot younger people, may be its not worth this career change. (Sorry my english it's not that good)
really depends, it is possible so it really depends if you like it more than your older career and how fast you manage to learn it compared to other people, so you should ask yourself this questions because it can still be a good option
btw i use pencil and cardboard (edit: jk) (edit2: u said that if i started in high school then i will be ahead of most ppl but im 9......) (edit3: im not kidding im 9) (edit4: coding is also one of the most fun things for me and i sometimes spend 10 hours coding)
But in your place I would pick something least abstracted which is raylib, because you can learn more how game engines works under the hood, which I hope it can help you later.
@@lowlevelgamedev9330 i totally misinterpreted the start of the video , u said that your first game engine was at the age of 21 and that you have been learning c++ for 10 years and i somehow interpreted it as if you started coding at 21. my bad.
#1 programming tip: become Chad.
So true, with each project I make it feels like my skills improved by 10x (especially if it's a "harder" project)
"I have a ton of people on my discord server who are like 14"
pdiddy level quote.
Sit down Americans
Premature optimization kills many projects and I truly feel this in my soul.
Both premature optimization and generalization, yes. I gave up on two projects for these reasons. First time was me trying to build the "perfect class hierarchy for every system that could ever exist that does all the things all the time and is infinitely extendable" before I even knew the problem I was trying to solve. Second time was trying to write a big SIMD library for my game engine with A) zero clue how to write AVX intrinsics and B) not having anything else working beforehand.
Dont bother guys, i allready beat coding and made the best code ever written, its a blank file. Infinitely readable, infinitally preformant and infinitely expandable. Its so easy guys, to make perfect code just dont code
It's so hard to just make projects for me, I lack creativity, and whenever I decided "okay you know what, let's just make something that already exist" something ends up happening that makes me stop
just start doing it bro, make a terraria clone, it is very fun I prommise
I have adhd and i stuggle with anything. This video gave me some motivation to try again coding anything(this time in c++, not c or java)
@@subgivtara same here. Even with meds (and probably because I'm 31 and have life going on) I struggle a lot to sit down more than 1 hours and do stuff
Pure wisdom right here
Yooooooo
unironically learn assembly as it will demystify how cpus work.
I actually kind of want to learn Assembly as I seriously know almost nothing about how CPUs work, but I am worried that I will get into a year-long rabbit hole on CPUs, GPUs and optimising everything little fiddly bit based on how it runs as simple machine instructions. I am also worried that I will then spend two more years on a custom compiler optimised to handle my specific coding style to produce the most efficient executable possible.
@thesun___ I would recommend learning riscv assembly first as imo it's the cleanest. When I say demystified, I mean you can finally be able to see exactly what the stack is, what calling conventions are, how functions store their args and return values, how syscalls communicate with the kernel etc.
I haven't been doing assembly for long, only a few months, but it's expanded my knowledge so much it's insane and definitely worth it.
@@thesun___ watch @CoreDumpped before even learning assembler 🙂
@@thesun___ oddly specific
@thesun__ stop worrying and start studying then.
That is one of the best advice I think. I had to go through a lot of those things myself and would say that you're 100% right on all of the points. And the best advice was "Stop waiting for someone to teach you, just learn yourself". Yes, you make mistakes and at the same time, you learn a lot from that.
To my younger self: Enjoy the process over the product.
You will not be playing your game 20-40 hours a week - you will be developing it.
I remember starting coding when I was 14, doing just random stuff in Javascript on my phone, nowdays i'm working in a lot of projects, some done in C++, some in Lua, and to this day I'm still learning new stuff, also more programming languages
A big project would be that port of Lua to Godot I'm doing
What do you mean by "phone"? How did you code on your phone?
@thesun___ The app i was using was called "DroidScript", it's sort of a weird mix of javascript and native android interfaces
Then i moved to a cordova project, it was just an app that loaded my scripts in my sdcard, started to code using Acode editor, then copy the files to my pc and build it using android studio
@@thesun___ Termux + Neovim is one way if you're on Android, and I heard nowadays you can sideload some app on an iPhone, so with a terminal emulator you should be able to do the same thing. Granted, nvim is not VS, but on android there's an app called ACode iirc? For example, personally, since I'm about to move and give away my pc, I bought a Samsung Galaxy Tab, so that's android, with the Termux app I installed Debian under proot and run VSCodium, there's multiple way to do so when you don't have any other choice than to code on a phone ^^
You can install the replit app on your phone
About the algos: Just learn what they do what they are supposed to solve. Then use one of the myriad (open source) implementations out there if you think you need one particular algo. Finally, learn what the C++ STL provides and use wherever possible. Don't roll your own. You'll save time and the STL implementation is probably way more correct and performant than you'll ever get your own version.
CS student here. Sometimes you don't use the data structures and algorithms that teach in the university/YT courses. But you gain so much confidence and knowledge in a language and programming in general, by learning and practicing with data structures and algorithms. It helps you solve problems that you'll face in game development.
Also a little bit of math, just basic stuff, for small projects.
Great tips!
Thanks for these wise advices 🙏
one more tips: write unit tests!
Unit tests is finally small and simple functions -> you are still coding and it helps focus on important parts of your project.
Bonus: will save lot of time when updating code!
On your over abstracting point. I remember when I used to make games where I would sit here and spend weeks upon weeks on my player character and debugging his abilities. And I gave him all the abilities I wanted. All Before I gave him an enemy to fight, his ability to die and his ability to change rooms. I became a bit happier when I started just Coding the game with all the basics and also be able to complete my game from title screen to ending credits without spending all the time debugging stuff. Without over abstracting, My enemies are SQUARES, and not Sprites. And while I plan to make a more complicated game, for now, All I need to complete the game is to Jump, walk left and right and attack and destroy the square enemies.
yes that if very true, imagine after adidng all of those abilities, you add an enemy and you discover that they aren't fuj and you need to change the gameplay completely; better to just take things step by step 💪
смотрю это как будто уже этого не делаю, настолько интересная подача
i don't know what kind of universities you people go to, but in my case, i would not be as good of an engineer as i am today if i didn't get my degree. 80% of subjects were useful in some way - even it is wasn't related to the exact problem i had to solve, it taught me something which became useful eventually (that being hardware, parallelization, concurrency or optimizations, for example).
regarding tip 3, the best way to get experience is to code as much as possible (and, a lot of time, coding the things you don't care about is even better than doing only what you want). in my case, i had to make roughly 20 projects in 4 years, most of which required at least 50 hours to finish. that kind of work can teach you a lot about code maintaining, debugging, reading other people's code, finding resources online etc. and finally, maybe the most important thing, it will teach you the discipline. you won't always do what you like (even in gamedev, there's a lot of tedious crap you don't feel like doing, but you have to). that kind of experience is best gathered in college.
of course, if you are wise enough, you should always have some personal projects you are doing in your free time. the best thing about that is, you will feel yourself becoming better in both your project and your studies as you do them in parallel. i, for example, made 3 games during college, only in my free time.
and finally, my advice to anybody reading this: ditch C++, it's a hell of a language. just switch to C and learn how to code properly.
I like Casey Muratori's idea of Compression-Oriented Programming. (The article is titled Semantic Compression.)
"Just write the code that does the thing" (which by the way is the exact same idea in his "Non-Pessimization" performance concept).
You write the code as simply as possible first, and then your brain automatically notices any patterns in it that can be extracted out (semantic compression).
Ok, the hardest part would be only going to the gym.
But thanks man, you gave me a stable base for my mindset.
Another good option is to grab an open source project like Doom and get that set up so it compiles and then study and mess around with it. You'll learn how others go about doing specific things and learn a lot of things you might not known about.
love u bro
Super random, but you have inspired me to create my own renderers and to not give up. I now have a working raycaster in JavaScript that runs smoothly. The next step is a full 3D software renderer like the one used in Quake and I have no idea where to start, but that's the fun part.
bro this sounds very cool, keep it up 💪
Didn't expect the gym advice. After code is done, let's go for the pump 💪🏿
true words here 💪
Now give advice to those who started learning this at 28. In nice cases, they will become cool in 5-8 years. In worst 10 years. And unfortunately, they need to spend time creating a family and how not to die of hunger. 2000s graphics are much easier to learn than today.
100%. All great advice.
I really wanna goto the gym, but the food at my university is so shitty that its better to eat actual shit, so i am eating really less so i am scared of damaging my body
Is the idea of damaging youris body the truth or just a belief that limits you? I don't know your physical condition, but if you're somewhat healthy, a little of excercising will only build your body up.
As a tip for now:
The 15 min of working out will give you the most of the benefits from working out, you don't even need to go to the gym. Just do some push ups on the knees, and squats.
If you can't workout for 15 min - do 10 or even 5. The most important thing is sticking with it every day.
And I actually wont recommend doing more than 15 min at the beggining. It's better to slide in slowly, and increase the workout time or intensity as you become more accustomed to the current plan.
Tracking is also important. Put a little paper on the wall and set a checkmark when you did worked out.
Anyway, do whatever the hell you think is right. There is no rules.
Then why don't you cook for yourself instead?
@@padlivniyit is partially true and partially in my mind, I have been going to the gym for 6 months before joining uni, after joining my whole schedule got fucked up and I eat very less stuff rn and I lost a ton of weight
@@padlivniymost of that was cuz I was in a cyber security club that was really demanding (7 days a week) 9am to 10 pm in the weekends and 5 - 10pm during weekdays. It's a good place and all and I was doing reverse engineering, and I was enjoying it but this tight schedule fucked me up a lot and I quit after a year
shout out to Squibiladoodoo
I made that mistake too. School mentioned nothing about promises and frameworks. Not even jQuery. There was very little emphasis on database. So when I got a job in the IT field, I wasn't able to keep that job.
Honestly, I wouldn't trust a school that can make maths seem boring teach me how to properly programme.
I want to study low-level programming so much, but
all IT colleges rejected me now i am in a geology college and i dont have a lot of time to start my projects 😢
sorry to hear that bro... you should just learn coding by yourself, what's the point to be in a geology college if you don't want to do that
fine…. I will do that flappy bird clone
let's goo
1:05 well... discord is kind of banned in my country
if ur turkish like me, yes discord is banned in our country 😭 but you can fix it! change your dns settings and then u can able to open every site you want. For process just ask chatgpt or watch some tutorials.
5:52 In my opinion, If you are a newbe developer, there are two simple things you may think about. Is the code you write testable? When and how often will the code need to be changed? This is enough to write not bad code.
Only maths is holding me back i really dont know anything
solid advice.
Hello master Gigachad Low Level Gamedev, I sincerely thank you for the advice. But I'm having problems finding sources to learn opengl with c, not c++. C++ is not interesting for me and I don't want to get STD. May you help me master?
Opengl is a library, so it works the same way in C and C++. Just replace any C++ specific stuff with corresponding C stuff. Most of the time the C++ is just strings, vectors, sorting or other basic data structures and algorithms so replacing them shouldn't be too hard even if you don't know how exactly they work in C++.
Doing OOP with C is a pain and a waste of time. If you don't like C++ then choose another compiled language that offers higher level abstractions. IMO, I consider C too low level to code anything big in it. It is feasible but a huge sink of time which can be spent elsewhere and be more productive.
@sledgex9 nope, it's my choice good sir. You go use your classes and namespaces and get STD. I love c's simplicity and opengl is originally a c library also I'm not going to implement oop in c from scratch, if I wanted that I would've just used c++ I know it's tiresome
@@hullukana214 well, I'm too stupid for that. I'm trying to replace the c++ stuff but I just suck
Opengl is procedural api so it does not have any cpp specific things and there is plenty of tutorials about it. ~I can admit that I also like c simplicity.
Easier said than done to someone with autism and adhd 😢
As long as it's not plain impossible, it's doable. Just harder.
@blackcitadel37 yeah i do push myself thru often but its hard
Stop downplaying yourself, and move on. The more time you spend saying you can't do it, the more time you waste
Thank you for nice tips.
Could you recommend me some c++ gui library, which is 1)simple 2)cross-platform 3)able to create static executables, so you don't need to recompile or update your drivers/gui libs just to run on another machine 4)your gui is editable.
Thank you in advance.
I usually use imgui but if you need gui for the game itself I just wrote my own gui library. You could also look into tgui it seems cool
All game devs eventually become unemployed youtubers
I actually skipped the step of getting employed and just became a youtuber full time from the start
So according to you what's the most ideal way to market yourself and your games to general public??
Talking about game dev is one of the best ways to make money as a game dev.
So for people that are interested in coding at their late 20s early 30s, do you recommend not pursued this carreer?
I have already the fundamentals but taking recommendations for a lot younger people, may be its not worth this career change. (Sorry my english it's not that good)
really depends, it is possible so it really depends if you like it more than your older career and how fast you manage to learn it compared to other people, so you should ask yourself this questions because it can still be a good option
Do you recommend Handmade hero ?
yess it is very good, it is indeed long but you will learn a ton of stuff so do soke episodes at least 💪
hey i am on mac andi want to star grapjhics programing any help?
You can use metal or OpenGL
use chatgpt to ask questions something like this
you can use opengl on mac, the learn opengl tutorial coveres that 💪
btw i use pencil and cardboard (edit: jk) (edit2: u said that if i started in high school then i will be ahead of most ppl but im 9......) (edit3: im not kidding im 9) (edit4: coding is also one of the most fun things for me and i sometimes spend 10 hours coding)
I have no idea how you have as much free time as you do, for I can barely get ten hours on weekends. 😔
I can relate I have Georgian school but I barely speak Georgian remember once it took me 10 hours to do the homework (not completely’
@@AlexTsaava You could probably pick up the language quickly as long as you always be around people who speak the language.
@ yeah that wat I do I mean not rlly but like I do… wait I’m lying in edit1 bc I remember how in class I wrote a c++ script in my notebook
Godot or Raylib(C++) i study in middle hight school (14 years old ) ho is better for me
Whatever you want. It does not work in a way that something is better than other when you are 14 yo. Just pick something.
But in your place I would pick something least abstracted which is raylib, because you can learn more how game engines works under the hood, which I hope it can help you later.
@@patryk3772 haaaah thank you
@@patryk3772 THX
But my parents want me to Uni
man ure 31?? u look like ur are 23-24 damm ure chad.
I am 23 that's why I look like that 😂
@@lowlevelgamedev9330 i totally misinterpreted the start of the video , u said that your first game engine was at the age of 21 and that you have been learning c++ for 10 years and i somehow interpreted it as if you started coding at 21. my bad.
hello
I'm 11 years old
Instant click
55 second old video!
He Chad bro ! Did you know ?
Read more...
🎉🎉🎉🎉 You have been Rickrolled 🎉🎉🎉🎉
bruh 💀
@@lowlevelgamedev9330
Hey here is a tips
Read more
NEVER GONNA GIVE UP