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.
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.
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
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.
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
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.
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 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).
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
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.
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 😢
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.
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
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.
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.
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)
@@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.
So true, with each project I make it feels like my skills improved by 10x (especially if it's a "harder" project)
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.
#1 programming tip: become Chad.
"I have a ton of people on my discord server who are like 14"
pdiddy level quote.
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.
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
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.
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
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.
Great tips!
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 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.
Thanks for these wise advices 🙏
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).
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.
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
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
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.
100%. All great advice.
Ok, the hardest part would be only going to the gym.
But thanks man, you gave me a stable base for my mindset.
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 💪
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.
love u bro
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
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.
shout out to Squibiladoodoo
solid 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
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.
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
fine…. I will do that flappy bird clone
let's goo
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
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
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
Instant click
I'm 11 years old
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