I’ve made a decent Minecraft clone using OpenGL and C++. I am asking you, “Is graphics programming for you?” because if you answered no, I want you to know I answered no as well at one point. Some of you may be right that it’s not for you; it can’t be for everyone. But some of you are lying to yourselves. For some of you, giving graphics programming an honest shot will be one of the best decisions you’ve ever made in your life.
Three months ago, I gave OpenGL an honest shot(will go over what that looks like in another email). Before that, I had tried various areas of software development - making websites, browser extensions, game development, and desktop applications. There wasn’t one in particular that I would prefer more than the other. A jack of all trades but master of none. Being average doesn’t make you stand out, and nobody wants to be invisible.
How can someone like me, who now loves graphics programming, have been convinced at one point that it was not for me? The answer is pretty simple once you read what I have learned about comfort and discomfort these past few months.
At any moment, you are feeling either comfort or discomfort. At lunchtime, watching your favorite YouTuber while eating your favorite meal is comfort. Getting up at 6:00 am for school after staying late last night is discomfort. You already know this. What you may have overlooked is the price of comfort and the value of discomfort. For comfort, the value is obvious, for the lunch example, it’s the immense pleasure for the mind. But the cost is what’s overlooked. What is it? Then for the getting up early example, the cost is obvious - it sucks waking up so early, the feeling is awful. But here the value is overlooked.
The same applies when I first attempted to learn graphics programming and was convinced it wasn’t for me. There was a lot of discomfort. And the main problem back then - all my focus was on the cost of this discomfort. I gave so many hours of my time, read through pages of tutorials, had to problem-solve random issues that I shouldn’t be having, and in the end, I barely managed to render a triangle on the screen. All of this, just for a single triangle on the screen? That I can’t even move right now? When will I be able to make cool projects like the ones I’ve seen, the ones that inspired me to embark on this journey in the first place? At that moment, I had convinced myself that the value of all that work was the single triangle on the screen. A huge cost just for this, a triangle I have no care about. And I gave up, it’s not for me obviously, right?
But then I gave it another shot, a serious one. And three months later, I had a decent Minecraft clone. Something changed. My perception of the cost of the discomfort changed. I was looking at another Minecraft clone, and as I thought about it, I realized I know more than just how to render a triangle on the screen. I think I can manage to render a rectangle, and probably a cube too. There was a tutorial on how to add textures, so if I add a dirt texture, I will have a dirt block. I think I can do that. I got hyped quite fast, I gave it another shot, this time with a better understanding of the value of the discomfort of the first attempt. The value wasn’t just learning to draw a triangle on the screen.
The rest is history. The rest are the videos you’ve already seen on my YouTube channel. The rest is the serious start of your graphics programming journey. Give it an honest shot, and be more aware of the value of the discomfort. At worst, you will at least be certain it’s not for you. At best, it will change your life, like it changed mine.
Hope I see you again in the next email,
PecaCS