@@ika_666 if project is big, debugger won't help you ('cause it cannot scale), but good logging and unit tests will. I personally don't use a debugger. Instead I just look at the code + sometimes use prints. If project grows, I'll just implement proper logging. So you can live without a debugger, because it is for specific uses, which I don't really mind spending more time on.
in JS we have console.log and just opening the developer console is pretty much a debugger but without the checkpoints (you'll still need to console.log manually inside a loop, but honestly I never needed to learn proper debugging in JS (and I did wild stuff in JS: back end and even on the front end I do all the abstract professing (easy to translate into any other interpreted language - in C/C++ I'd have to worry about memory, but interpreted languages are all the same at this abstraction level) that never hooks into the DOM, API stuff), similar story with Python (I do way less Python, but the same logic applies): instead of running the program as regular, I run the Python interpreter and import the app - from that point on, I have access to everything (remember the namespaces, tho! )) I don't have the problems of all big boy programmers cos I'm just a cute lil soydev, writing my JS cutely while wearing a skirt and thigh highs, sipping on my soymilk choccy (actually carob cos I can't do cocoa 😂 my lil soydev tummy can't handle many things)
Debugging is the most valuable skill all engineers can learn at all levels of abstraction (maybe after "being passionate"). If you are staring at code, or administrating a network service, or supporting some complex distributed cloud behemoth, or reverse engineering weird vendor products and protocols -- the skill of picturing & isolating components and being familiar with the tools to do so (be that a debugger or whatever else helps you see what's actually happening) always makes life less painful.
I love using a debugger specifically for gameplay stuff where there are lots of different variables that may or may not be causing the issue and instead of writing loads of print statements and reloading I can just test lots of different things on the fly.
What specifically needs to be improved about gdb GUI? I know people will make a laundry list the size of the Eiffel Tower, but still, I'd love to know exactly how we can make a better gdb GUI for all.
"Never assume you know what the problem is" and related: find and fix the real problem. When searching for a problem, it tends to happen that you will find the symptoms of problem and it will be supereasy to just put an end to the effects caused by the bug instead of actually fixing the root cause. Fix the real problem!
Can't be a coincidence that I spent 1 hour today because I forgot I copy pasted code that increment 'i' inside the for loop and inside the loop statement so I skipped half of the items...
Hi LowLevelGameDev. May I ask how you are handling different resolutions in your games? Like for example, I have a 1440p monitor and my 2d pixel art game looks good. But my friend for example has a 1080p monitor so everything looks zoomed in on his machine. How can I make it look the same on both resolutions without making it look scuffed.
Yo so this is actually harder than it seems. For 2D it is actually harder than in 3D. In my Steam game I gave the player the option to zoom in and out from the settings. Other games automatically zoom for you so you all get the same experience. You need to do something like that. Start from 1080p amd zoom in for higher rezolutions. Other games request a sepcific aspect ratio so they just black out parts of the screen to get that aspect ratio, and than zoom you in to get the desired result. You can also set the screen resolution in full screen mode to your wanted aspect ratio, tho you need to mess with winapi for that, but I can show you how if you message me on discord.
@@lowlevelgamedev9330 Thanks a lot for your response. May I ask how I can find the value for the zoom? Dividing width by height only gives me the aspect ratio. (I dont want to mess with the win api since I mainly use Linux) Thanks again
I always ask my self is there a memory viewing tool for Linux like the one from visual Studio (maybe a Video about replacing visual Studio - removing Microsoft from your live)
@@lowlevelgamedev9330 the observer perturbed the mesure, Heisenbug cease to exist the moment you look at it, it only exist when you don't, then it exist everywhere at once. That's quantic programming.
I just don't get the anti debugger stance and insistence on adding printf statements that seems to be prevalent among certain circles. It's like not using oscilloscopes and multimeters when debugging a complex circuit board and instead staring at the pcb and soldering LEDs onto random spots. When I was just starting out I didn't use debuggers, mainly because I had no idea what they could do for me and did not know how to use them effectively. Two decades later and the debugger has become an indispensable tool. Learn to use both, learn when to use which and learn how to debug efficiently. Logging and debugging are not mutually exclusive, they go hand in hand.
@@lowlevelgamedev9330 Visual Studio's debugger is slow as fuck. It is _good enough_ which is why most Windows programmers aren't motivated to learn about better tools.
i'd argue that not using an IDE scales terrible for Real World Software where you need to keep track of 100s or 1000s of Files and 1000s upon 1000s Lines of Code, i highly doubt they're creating GTA6 in Neovim :D
"dear beginners, please learn to use the debugger"
bold of you to assume that my program compiles successfully
🤣😂 I also have a video for that 😎
the printf method is based 💯
sometimes real debugging is more convenient and precise for checking complicated logic
@@ika_666 i know but my dummy brain just chooses the simplest solution
@@ika_666 print debugging is based though
@@ika_666 if project is big, debugger won't help you ('cause it cannot scale), but good logging and unit tests will. I personally don't use a debugger. Instead I just look at the code + sometimes use prints. If project grows, I'll just implement proper logging.
So you can live without a debugger, because it is for specific uses, which I don't really mind spending more time on.
in JS we have console.log and just opening the developer console is pretty much a debugger but without the checkpoints (you'll still need to console.log manually inside a loop, but honestly I never needed to learn proper debugging in JS (and I did wild stuff in JS: back end and even on the front end I do all the abstract professing (easy to translate into any other interpreted language - in C/C++ I'd have to worry about memory, but interpreted languages are all the same at this abstraction level) that never hooks into the DOM, API stuff), similar story with Python (I do way less Python, but the same logic applies): instead of running the program as regular, I run the Python interpreter and import the app - from that point on, I have access to everything (remember the namespaces, tho! ))
I don't have the problems of all big boy programmers cos I'm just a cute lil soydev, writing my JS cutely while wearing a skirt and thigh highs, sipping on my soymilk choccy (actually carob cos I can't do cocoa 😂 my lil soydev tummy can't handle many things)
Debugging is the most valuable skill all engineers can learn at all levels of abstraction (maybe after "being passionate").
If you are staring at code, or administrating a network service, or supporting some complex distributed cloud behemoth, or reverse engineering weird vendor products and protocols -- the skill of picturing & isolating components and being familiar with the tools to do so (be that a debugger or whatever else helps you see what's actually happening) always makes life less painful.
I love using a debugger specifically for gameplay stuff where there are lots of different variables that may or may not be causing the issue and instead of writing loads of print statements and reloading I can just test lots of different things on the fly.
Write proper logging instead.
i just use it to measure which function takes the most time and optimise it
that's the profiler tho, its different
@@lowlevelgamedev9330 or is it 🤨
Stalin debugging: rasstrelyat that bug
Debuggers are the holy grail of programming
The background music🔥🔥🔥
Holy grail GDB,would've wasted much more hours than i should without it.
"nothing the g'old print debugging cant fix"
GDB people could benefit by using some of them GDB GUIs but I can't assure you their quality.
how is that an improvement
What specifically needs to be improved about gdb GUI? I know people will make a laundry list the size of the Eiffel Tower, but still, I'd love to know exactly how we can make a better gdb GUI for all.
giga chad moment
yes indeed
"Never assume you know what the problem is"
and related: find and fix the real problem.
When searching for a problem, it tends to happen that you will find the symptoms of problem and it will be supereasy to just put an end to the effects caused by the bug instead of actually fixing the root cause.
Fix the real problem!
I use gdb for things but my goto is still printing and asserts
non-debuggers when "Segmentation Error"
Great video
Is rust even good for game dev?
nope imo
Can't be a coincidence that I spent 1 hour today because I forgot I copy pasted code that increment 'i' inside the for loop and inside the loop statement so I skipped half of the items...
What compiler to you use
Microsoft Visual Studio
Hi LowLevelGameDev.
May I ask how you are handling different resolutions in your games?
Like for example, I have a 1440p monitor and my 2d pixel art game looks good. But my friend for example has a 1080p monitor so everything looks zoomed in on his machine.
How can I make it look the same on both resolutions without making it look scuffed.
Yo so this is actually harder than it seems. For 2D it is actually harder than in 3D. In my Steam game I gave the player the option to zoom in and out from the settings. Other games automatically zoom for you so you all get the same experience. You need to do something like that. Start from 1080p amd zoom in for higher rezolutions. Other games request a sepcific aspect ratio so they just black out parts of the screen to get that aspect ratio, and than zoom you in to get the desired result. You can also set the screen resolution in full screen mode to your wanted aspect ratio, tho you need to mess with winapi for that, but I can show you how if you message me on discord.
@@lowlevelgamedev9330 Thanks a lot for your response.
May I ask how I can find the value for the zoom? Dividing width by height only gives me the aspect ratio.
(I dont want to mess with the win api since I mainly use Linux)
Thanks again
How much years of blood and sacrifice it takes to become beast Chad c++ coder
hmm, a few years of doing cpp every day should get you there for sure 💪💪
I always ask my self is there a memory viewing tool for Linux like the one from visual Studio (maybe a Video about replacing visual Studio - removing Microsoft from your live)
idk I don't use linux :)) there probably is. Clion has a debugger that had probably all the features that vs has.
Well that's fair
@@lowlevelgamedev9330 CLion's debugger is great (it's essentially just a frontend to gdb or lldb) but it's not quite on par with the vs debugger
@@lowlevelgamedev9330 but clion is paid i guess
that's also my current goal.
Do you know any good resources to learn gdb? In my experience, Those old tools have very sparse resources.
nope and I honestly recomand using a gui debugger, but maybe try searching on yt
What font do you use? It looks awesome! (as subtitle)
Kg second chances 💪
@@lowlevelgamedev9330 thank you mister :)
Heisenbug want to know your location
I want to know its location 😂😂
@@lowlevelgamedev9330 the observer perturbed the mesure, Heisenbug cease to exist the moment you look at it, it only exist when you don't, then it exist everywhere at once. That's quantic programming.
I just don't get the anti debugger stance and insistence on adding printf statements that seems to be prevalent among certain circles. It's like not using oscilloscopes and multimeters when debugging a complex circuit board and instead staring at the pcb and soldering LEDs onto random spots. When I was just starting out I didn't use debuggers, mainly because I had no idea what they could do for me and did not know how to use them effectively. Two decades later and the debugger has become an indispensable tool. Learn to use both, learn when to use which and learn how to debug efficiently. Logging and debugging are not mutually exclusive, they go hand in hand.
yes, thers no need to exclude any of them, the debugger is essential, and printt is very convinient for small things
The comparison with LEDs is brilliant XD
Debugger is hard to setup in c++
I use neovim and I'm not leaving it. Guess I am going with gdb
you can have the debugger sepparate from your ide
printf gang
//FIXME: This.
Never been fixed.
Visual Stalin Debugger? Is there also a Hitler Debugger?
maybe we should make one
Sooo did u learn debugger? How is your vector class?😂
precisely that was wat my problem with that thing there, you can't know that it is implementer right even with a debugger
no🗿
Meow
hehehe i not ise any of these i rocking without CMake hehehehehehe
uno
dos
Tres 🌲 @@stick101x2
as a rust developer, i only need the debugger when i call extern c functions (vulkan)
the debugger is not used only for null pointer exceptions, your program is not free of bugs because you use rust :))
@@lowlevelgamedev9330the print methods works great for the other bugs🙃
dont use ide debugger wrappers, use a proper debugger instead. more generally, dont use an ide.
how is visual studio not a debugger? I think its considered one of the best debuggers out there
@@lowlevelgamedev9330 Visual Studio's debugger is slow as fuck. It is _good enough_ which is why most Windows programmers aren't motivated to learn about better tools.
@@lowlevelgamedev9330 i think this guy is advocating for a command line text editor + gdb or lldb
i'd argue that not using an IDE scales terrible for Real World Software where you need to keep track of 100s or 1000s of Files and 1000s upon 1000s Lines of Code, i highly doubt they're creating GTA6 in Neovim :D
@@lowlevelgamedev9330 ua-cam.com/video/r9eQth4Q5jg/v-deo.html
In 3:00 it says geam instead of game